【发布时间】:2016-04-04 07:38:45
【问题描述】:
我尝试在数据库中记录数据,但数据库写入空白参数。发送此表单:site.com/inc/go.php?login=sdfdsf&pass=sddfffds**&login=&pass=**。为什么表单中的数据发送 2 次?
<form id="x" action="/inc/go.php" method=POST">
<div>
<span>
<label for="loginss">
Login<span class="tcs-form-field-requared">*</span>
</label>
</span>
<span>
<input type="text" form="x" name="login" id="login" accesskey="n" tabindex="1" id="loginx" title="login" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
</span>
</div>
<div>
<span>
<label for="passs" class="tcs-form-label">
password<span>*</span>
</label>
</span>
<span>
<input class="form-element-hidden form-mobile-hidden" class="form-element-hidden form-mobile-hidden">
<input form="x" type="password" name="pass" id="pass" accesskey="p" tabindex="2" id="passx" title="pass" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
</span>
</div>
<div>
<div>
<span>lost pass?</span>
</div>
<div>
<input form="x" class="button" type="submit" tabindex="3" value="log in">
</div>
</div>
</form>
PHP 动作文件:
<?php
include('connect.php');
mysql_query("INSERT INTO `u825237248_gold` (login , pass) VALUES ('".$_POST['login']."','".$_POST['pass']."')",$db);
?>
【问题讨论】:
-
因为您使用的是
method="POST", none of the inputs should be in the URL. That would only happen withmethod="GET"`。是否有任何 Javascript 提交表单? -
@barmar,我写了 GET 来显示发送数据,在脚本中一切正常。
-
如果您想查看表单发送的内容,请打开浏览器的控制台并转到“网络”选项卡。
-
如果数据被两次发送到数据库是由于您很可能刷新了所说的 php 操作页面。在您的
mysql_query之后,我会向您的索引页面添加一个标题重定向,这样您就可以避免刷新页面。header('Location: page_togoto.php'); -
@CarlosFerreira 他不是说 URL 被发送了两次,而是说 URL 中有重复的参数。