Php $请求不';行不通
我有密码Php $请求不';行不通,php,request,Php,Request,我有密码 <form action="insert1.php" form method="POST"> <input type="text" name="product" /></p> <input type="submit" value="Add"> 它添加没有文本的空字符串 请帮忙。 谢谢。我只修复了您代码中的一个错误,您需要这样写: $mysqli = configuration(); $product = $_REQUEST['pr
<form action="insert1.php" form method="POST">
<input type="text" name="product" /></p>
<input type="submit" value="Add">
它添加没有文本的空字符串
请帮忙。
谢谢。我只修复了您代码中的一个错误,您需要这样写:
$mysqli = configuration();
$product = $_REQUEST['product'];
$sql = "INSERT INTO Odiet (product) VALUES ('$product')";
if($mysqli ->query($sql)===TRUE){echo "ok";}
else{echo "not ok";}
$mysqli ->close();
您可以通过字段名从html表单中获取值,但之前没有dolar符号
请注意,您的代码是不安全的。不要将原始用户数据放入sql语句中,而是使用替换此字符串:
$product = $_REQUEST['$product'];
用这个
$product = $_REQUEST['product'];
您应该知道使用哪一个,请求会给您的数据库带来巨大的安全风险。也要使用预先准备好的语句
$sql = "INSERT INTO Odiet (product) VALUES (?)";
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param("s", $_POST['product']);
if($stmt->execute()){
echo "ok";
} else {
echo "not ok";
}
}
关闭db连接也没有什么用处,因为这是在脚本执行后自动完成的。不要使用请求,您应该知道使用哪一个。还要学习安全性,使用事先准备好的声明。请告诉我为什么不使用$_REQUEST@layvin我可以知道$product-to-product是否是问题所在,那么
它是如何添加没有文本的空字符串的。没有发送错误
?我不知道,它给出了“ok”的答案并添加了空字符串。现在,它起作用了。谢谢你的回答,我知道问题出在多拉标志上。这不安全!不要直接使用查询。您应该绑定参数/值。如果您直接在SQL查询中使用变量,有人可以在该变量中插入查询。@MAChitgarha是的,我刚刚复制了作者的代码并更改了错误的字段名称,我写了一条说明,他的代码不安全,他应该使用预备语句。谢谢,我将使用预备语句
$sql = "INSERT INTO Odiet (product) VALUES (?)";
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param("s", $_POST['product']);
if($stmt->execute()){
echo "ok";
} else {
echo "not ok";
}
}