Php 刷新表单->;上传数据

Php 刷新表单->;上传数据,php,page-refresh,Php,Page Refresh,我的PHP表单有问题。每当我刷新页面时,旧数据就会自动插入到我的数据库中。我的代码是: <?php if(isset($_GET['send'])){ isset($_GET['name'])?$name = $_GET['name']:""; isset($_GET['score'])?$score = $_GET['score']:0; $con = mysql_connect('localhost','root','') or die(my

我的PHP表单有问题。每当我刷新页面时,旧数据就会自动插入到我的数据库中。我的代码是:

<?php
   if(isset($_GET['send'])){
      isset($_GET['name'])?$name = $_GET['name']:"";
      isset($_GET['score'])?$score = $_GET['score']:0;

      $con = mysql_connect('localhost','root','') or die(mysql_error());
             mysql_select-db('student',$con) or die(mysql_error());
      $qry = mysql_query('INSERT INTO student(name, score) VALUES('$name', $score)') or die(mysql_error());

      $display = mysql_query('SELECT * FROM student',$con) or die(mysql_error());
      echo '<table border=1>';
      while($rows = mysql_fetch_array($display)){
          echo '<tr>';
          echo "<td>$rows['id']</td>";
          echo "<td>$rows['name']</td>";
          echo "<td>$rows['score']</td>";
          echo '</tr>';
      } 
      echo '</table>';
    }
    ?>


请帮助我解决此问题。

防止重复提交表单的常见方法是使用

然后,您需要将表单方法更改为Post。表单提交成功后,您再次重定向到表单,但使重定向成为get请求。然后将重置表单(空值)

编辑:

在我看来,您的脚本实际上可以执行类似的操作:在插入mysql数据库后,您可以将其重定向到自身,删除get参数:

<?php
if(isset($_GET['send'])){
  isset($_GET['name'])?$name = $_GET['name']:"";
  isset($_GET['score'])?$score = $_GET['score']:0;

  $con = mysql_connect('localhost','root','') or die(mysql_error());
         mysql_select-db('student',$con) or die(mysql_error());
  $qry = mysql_query('INSERT INTO student(name, score) VALUES('$name', $score)') or die(mysql_error());
  header('Location: myscriptsurl.php');
  exit;
}

$display = mysql_query('SELECT * FROM student',$con) or die(mysql_error());
echo '<table border=1>';
while($rows = mysql_fetch_array($display)){
  echo '<tr>';
  echo "<td>$rows['id']</td>";
  echo "<td>$rows['name']</td>";
  echo "<td>$rows['score']</td>";
  echo '</tr>';
} 
echo '</table>';
?>

防止重复提交表单的常见方法是使用

然后,您需要将表单方法更改为Post。表单提交成功后,您再次重定向到表单,但使重定向成为get请求。然后将重置表单(空值)

编辑:

在我看来,您的脚本实际上可以执行类似的操作:在插入mysql数据库后,您可以将其重定向到自身,删除get参数:

<?php
if(isset($_GET['send'])){
  isset($_GET['name'])?$name = $_GET['name']:"";
  isset($_GET['score'])?$score = $_GET['score']:0;

  $con = mysql_connect('localhost','root','') or die(mysql_error());
         mysql_select-db('student',$con) or die(mysql_error());
  $qry = mysql_query('INSERT INTO student(name, score) VALUES('$name', $score)') or die(mysql_error());
  header('Location: myscriptsurl.php');
  exit;
}

$display = mysql_query('SELECT * FROM student',$con) or die(mysql_error());
echo '<table border=1>';
while($rows = mysql_fetch_array($display)){
  echo '<tr>';
  echo "<td>$rows['id']</td>";
  echo "<td>$rows['name']</td>";
  echo "<td>$rows['score']</td>";
  echo '</tr>';
} 
echo '</table>';
?>

所以您遇到了一个问题。 既然你无法避免刷新屏幕

如果你在做表单,你可以考虑发送一个位置。 插入记录后的标题:

<form action="process.php" method="POST">
<input type="text" name="number">
<input type="sumbit">
</form>
这样,您的脚本将处理发布,然后重定向 浏览至
谢谢.php。
重新加载
Thank.php
不会导致新的数据库插入。

因此您有问题。 既然你无法避免刷新屏幕

如果你在做表单,你可以考虑发送一个位置。 插入记录后的标题:

<form action="process.php" method="POST">
<input type="text" name="number">
<input type="sumbit">
</form>
这样,您的脚本将处理发布,然后重定向 浏览至
谢谢.php。

重新加载
谢谢。php
不会导致新的数据库插入。

您使用了GET方法,因此每次页面刷新时,它都会从URL获取值。 尝试使用POST方法…它将解决您的问题,并且不要忘记为POST设置条件

if(isset($_POST))
{
   /* Your Insert Code */

}

U使用了GET方法,因此每次刷新页面时,它都会从URL获取值。 尝试使用POST方法…它将解决您的问题,并且不要忘记为POST设置条件

if(isset($_POST))
{
   /* Your Insert Code */

}

当然……每次刷新时都会执行插入查询。
如果满足某个条件,请尝试使其成为……执行插入查询。。。试着把它放在if中。我想你必须检查一下你的提交。当然……每次刷新时都会执行插入查询。
如果满足某个条件,请尝试使其成为……执行插入查询。。。试着把它放在if中。我想你必须检查一下你的提交。伙计,这好像是在另一个页面上显示结果。但是,我的目的是在同一台计算机上插入和显示结果page@tepkenvannkorn:您需要将页面链接放在那里。因为我不知道,我在里面放了一个占位符;)嗯,我试过了,但还是以另一种方式展示page@tepkenvannkorn:示例代码的前提是,假设它是“一”页面的一部分,该页面下面显示了表单和结果。如果不是这样的话,你仍然没有共享该页面的URL,我对此无能为力。伙计,这似乎是在另一个页面上显示结果。但是,我的目的是在同一台计算机上插入和显示结果page@tepkenvannkorn:您需要将页面链接放在那里。因为我不知道,我在里面放了一个占位符;)嗯,我试过了,但还是以另一种方式展示page@tepkenvannkorn:示例代码的前提是,假设它是“一”页面的一部分,该页面下面显示了表单和结果。如果情况并非如此,而且你仍然没有共享该页面的URL,我对此无能为力。