Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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 - Fatal编程技术网

Php 浏览器返回按钮确认表单重新提交

Php 浏览器返回按钮确认表单重新提交,php,mysql,Php,Mysql,我的页面上有一个搜索表单 <form action='' method='post'> <input type='text' name='search' /> <input type='sumit' name='submit' value='submit'/> </form> 当用户单击表单上的submit按钮时,它应该运行mysql_查询并创建指向用户页面的链接 if(isset($_POST['search'])){

我的页面上有一个搜索表单

<form action='' method='post'>
    <input type='text' name='search' />
    <input type='sumit' name='submit' value='submit'/>
</form>

当用户单击表单上的submit按钮时,它应该运行mysql_查询并创建指向用户页面的链接

if(isset($_POST['search'])){
    $add = "city = {'$_POST['search']'}";
}

$res = mysql_query("SELECT * FROM user WHERE {$add}");
        while($rw=mysql_fetch_object($res)){
        echo "<a href=user.php?id={$rw->user_id}?>{$rw->name}</a>";
        }
if(isset($\u POST['search'])){
$add=“city={'$\u POST['search']}”;
}
$res=mysql_查询(“从用户那里选择*{$add}”);
而($rw=mysql\u fetch\u object($res)){
回声“;
}
当我点击链接
user.php?id=3
时,它会进入用户页面,一切正常。但当我在user.php页面上单击浏览器的后退按钮时,我遇到了问题。然后我有问题回到上一页。 确认表单重新提交。

更正以下内容:

<input type='sumit' name='submit' value='submit'/>


您正在编写
type='sumit'
而不是
type='submit'

您应该使用get方法而不是post。大多数浏览器都必须确认提交后的重新提交

注意:您不应该将用户输入直接传递到sql查询中,以防止sql注入的风险。

若要不显示“确认表单重新提交”警报,您是否必须更改提交(方法)以获取


...
如果(isset($\u GET['search'])){
$res=mysql\u query(sprintf(“SELECT*FROM user WHERE city='%s',mysql\u real\u escape\u string($\u GET['search'])));
而($rw=mysql\u fetch\u object($res)){
回声“;
}
}

这对SQL注入是完全开放的,在查询中的任何地方使用它之前,请仔细清理您的
$\u POST['search']
!没有什么能阻止我搜索
x';截断用户;'或类似的东西;)清除数据库。这只是一个示例。我使用的是mysql\u real\u escape\u string()可能是重复的,而不是重复的。提交后我无法刷新页面,因为在查询时创建扩展。这只是一个示例。在我的代码中,所有输入都是正确的。问题返回到上一页。确认表单重新提交如何防止确认表单重新提交?使用POST发送数据时,任何浏览器都会询问是否要使用“上一步”按钮重新提交该信息,或刷新页面。这是标准!。因此,你必须改变你的方法,使用,而不是张贴,得到!
<form action='' method='GET'>
    <input type='text' name='search' />
    <input type='sumit' name='submit' value='submit'/>
</form>

...

if(isset($_GET['search'])){
    $res = mysql_query(sprintf("SELECT * FROM user WHERE city='%s'", mysql_real_escape_string($_GET['search']) ));
    while($rw=mysql_fetch_object($res)){
      echo "<a href=user.php?id={$rw->user_id}?>{$rw->name}</a>";
    }
}