Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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_Mysql_Post - Fatal编程技术网

刷新=在php中提交时,如何修复它?

刷新=在php中提交时,如何修复它?,php,mysql,post,Php,Mysql,Post,我正在用php创建一个插入进程,但我的代码中有一个问题。当我刷新我的页面时,它还将提交和插入数据 这是我的密码: <form action="/drupal/node/1" method="post"> Name: <input type="text" name="name" /> Price: <input type="text" name="price" /> Minutes: <input type="text" name="minutes" /&

我正在用php创建一个插入进程,但我的代码中有一个问题。当我
刷新
我的页面时,它还将
提交
插入
数据

这是我的密码:

<form action="/drupal/node/1" method="post">
Name: <input type="text" name="name" />
Price: <input type="text" name="price" />
Minutes: <input type="text" name="minutes" />
<input type="submit" />
</form>
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// some code
mysql_select_db("zain", $con);
if (isset($_POST['name']) && isset($_POST['price']) && isset($_POST['minutes']))
{
 $val_name = $_POST['name'];
 $val_price = $_POST['price'];
 $val_min = $_POST['minutes'];
 $max_id_sql = mysql_query("SELECT MAX(id) FROM card_category");
 $data = mysql_fetch_array($max_id_sql);
 if ($data[0]==0)
 {
    $val_id = 1;
 }
 else
 {
    $val_id = $data[0] + 1;
 }

 mysql_query("INSERT INTO card_category (id, name, price, minutes) VALUES ($val_id,'$val_name',$val_price,$val_min )");
 $_POST['name'] == NULL;
 $_POST['price'] == NULL;
 $_POST['minutes'] == NULL;
}
$result = mysql_query("SELECT * FROM card_category");

echo "<table border='1'>
<tr>
<th>id</th>
<th>name</th>
<th>price</th>
<th>mins</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['id'] . "</td>";
  echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['price'] . "</td>";
  echo "<td>" . $row['minutes'] . "</td>";
  echo "</tr>";
  }
echo "</table>";
if (isset($_POST['lastname']))
{
print $_POST['lastname'];
}
mysql_close($con);
?>

姓名:
价格:
会议记录:
我的问题是,当我
刷新
页面时,它不会
提交
数据,我该如何处理


收到投稿后,请提前感谢:

  • 处理数据
  • 返回重定向响应
  • 从浏览器获取重定向到的URL上的Get请求
  • 用HTML回应这个问题
  • 如果浏览器被刷新,它将重新提交GET请求,PHP不会使用该请求修改数据库


    这是最新的。还有一些详细信息(注释中还有PHP代码示例)。

    如果查看$\u服务器['REQUEST\u METHOD']变量,当用户提交数据时,它会说'POST',当用户未提交数据时,它会说'GET'。因此:

    if($_SERVER['REQUEST_METHOD']=='POST')
    {
       // process the data
    }
    

    顺便说一下,您的代码非常容易受到SQLI攻击…

    如何修复刷新页面请不要使用php发布值:

    if ($_SERVER['HTTP_CACHE_CONTROL']=="")
    {
    // process the data
    }
    

    实际上,Quentin的意思是使用标题('Location:url');阅读他的链接这是一个你应该知道的概念。检查第一个答案-@gadss-你有。当浏览器刷新时,它将发出与获取页面相同的请求…这是一个post请求,因此不起作用。你能为你的代码添加一些注释吗?为什么你认为这是解决办法,请多解释一下。