gpt4 book ai didi

php - HTML/PHP 表单不向 MySQL 数据库发送数据

转载 作者:行者123 更新时间:2023-12-01 00:41:55 25 4
gpt4 key购买 nike

我是 PHP 的新手,所以这对我来说是新的。不管怎样,我正在创建一个网站,这样我就可以在线访问我的收据了。

这是表格:

<form action="Form.php" method="post" class="basic-grey">
<h1><a href="index.html">Receita</a>
<span>Aqui podes adicionar uma nova receita</span>
</h1>
<label>
<span>Titulo :</span>
<input id="titulo" type="text" size="20" maxlength="100" name="titulo" placeholder="Introduza o Titulo" />
</label>

<label>
<span>Categoria :</span><select maxlength="10" name="categoria">
<option value="categoria">--- Seleccione aqui a Categoria ---</option>
<option name=" " value="sopa">Sopa</option>
<option name="entrada" value="entrada">Entrada</option>
<option name="carne" value="carne">Carne</option>
<option name="peixe" value="peixe">Peixe</option>
<option name="salada" value="salada">Salada</option>
<option name="sobremesa" value="sobremesa">Sobremesa</option>
</select>

</label>

<label>
<span>Ingredientes :</span>
<textarea id="ingredientes" size="20" maxlength="1000" name="ingredientes" placeholder="Introduza os ingredientes"></textarea>
</label>
<label>
<span>Preparação :</span>
<textarea id="preparacao" size="20" maxlength="1000" name="preparacao" placeholder="Introduza o modo de preparação"></textarea>
</label>
<label>
<span>Notas :</span>
<textarea id="notas" size="20" maxlength="1000" name="notas" placeholder="Aqui pode adicionar uma nota"></textarea>
</label>
<label>
<span>&nbsp;</span>
<input type="submit" class="button" value="Enviar" />
</label>

</form>

这是处理表单的代码:

<?php
// processing form values


if ($_SERVER['REQUEST_METHOD'] == 'POST'){

$titulo = $_POST['titulo'];
$categoria = $_POST['categoria'];
$ingredientes = $_POST['ingredientes'];
$preparacao = $_POST['preparacao'];
$notas = $_POST['notas'];


if(!empty($titulo) && !empty($categoria) && !empty($ingredientes) && !empty($preparacao) && !empty($notas)){

include('connection.php');

mysqli_query($dbc, "INSERT INTO receita(Titulo,Categoria,Ingredientes,Preparacao,Notas) VALUES ('$titulo','$categoria','$ingredientes','$preparacao','$notas')");
$registered = mysqli_affected_rows($dbc);
echo $registered." row is affected, everything worked fine!";
}else{
echo "Please fill all values on the form";
}

}else{

echo "No form has been submitted";

}

?>

结果是,如果我输入这样的内容,它不起作用:

标题:Açorda de camarao

类别:Peixe

成分:800 克 de camarao; 4 颗 dentry ; 1 份 ramo de salsa ou coentros; 3 个内部卵; 1.5 dl de Azeite; 1.5 pão por pessoa;萨尔;皮里皮里

准备工作:Coze-se o camarão com sal e piri-piri e reserva-se a agua。 De seguida demolha-se o pão na agua do camarão。 Aquece-se o azeite com os alhos e os coentros e de seguida junta-se o camarão e por ultimo o pão。 Mexe-se tudo para cozer o pão e ganhar consistencia。 Por ultimo junta-se os ovos e envolve-se tudo。

备注:Receita para 4 pessoas

但是如果我这样输入它就可以了:

标题:gfdsfdsa

类别:Peixe

成分:hudsbfbdsf fdsfidsfidsfsd, fdsjifjdsifdis 0palpdsandnsaud jkdosakodsakodmnsa jidsjaidsa

准备工作:nfjdbshfbhdbjfdjs dsajijdisandiabuu fjndoisjfojidsanfds

备注:fbhdubsufbndsnfs

我的数据库表:

Nome    Tipo    Agrupamento (Collation) Atributos   Nulo    Omissao Extra   

1 ID bigint(50) Não None AUTO_INCREMENT Muda Muda Elimina
2 Titulo varchar(100) utf8_general_ci Não None Muda Muda Elimina3 类别 varchar(10) utf8_general_ci Não None Muda Muda
4 成分 varchar(1000) utf8_general_ci Não None Muda5 Preparacao varchar(1000) utf8_general_ci Não None Muda Muda 6 Notas varchar(1000) utf8_general_ci Não None Muda Muda

抱歉,如果这篇文章太长了。有什么解决办法吗?

最佳答案

输入中可能存在特殊字符,导致查询出现语法错误。

您需要先转义您的输入,然后再将其替换到查询中。在 include ('connection.php');

之后添加
$titulo = mysqli_real_escape_string($dbc, $titulo);
$categoria = mysqli_real_escape_string($dbc, $categoria);
// and so on for all the other variables

或(更好)使用准备好的语句。使用它代替您对 mysqli_query 的调用:

$stmt = mysqli_prepare($dbc, "INSERT INTO receita(Titulo,Categoria,Ingredientes,Preparacao,Notas) VALUES (?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, "sssss", $titulo, $categoria, $ingredientes, $preparacao, $notas);
mysqli_stmt_execute($stmt);
$registered = mysqli_stmt_affected_rows($stmt);

关于php - HTML/PHP 表单不向 MySQL 数据库发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30081680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com