Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $请求不';行不通_Php_Request - Fatal编程技术网

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";
  }
}