我真的试图找出这个问题,但没有成功。在我的网站上,我有两种基本形式。一个用于登录,一个用于注册。当我在Apache中测试代码时,它工作得非常好。表单可以将输入传递给另一个php页面并执行检查。但是当我将代码移动到托管服务器时,表单无法传递任何数据(我确保我输入了这些字段。)我真的没想到我做错了什么。 Apache中的PHP版本是5.4.7,托管中的php版本是5.2.17。以下是表格的代码:
<form action="register_check.php" method="post" style="text-align:center">
<input type="text" name="username" class="form-control" autocomplete="off" placeholder="Username"/>
<input type="password" name="password" class="form-control" placeholder="Password"/>
<input type="password" name="password_again" class="form-control" placeholder="Please type the password again"/>
<input type="text" name="email" class="form-control" placeholder="Email"/><br/>
<input type="hidden" name="token" value="">
<input type="submit" name="register" class="btn btn-primary"/>
</form>
<form action="login_check.php" method="post" style="text-align:center">
<input type="text" name="username" class="form-control" autocomplete="off" placeholder="Username"/>
<input type="password" name="password" class="form-control" placeholder="Password"/>
<input type="hidden" name="token" value="">
<label
<input type="checkbox" name="remember" id="remember"> Remember Me
</label>
<input type="submit" name="login" class="btn btn-primary"/>
</form>
当我在本地测试Apache时,数据可以成功传递给register_check.php或login_check.php取决于我按下的按钮。为了确保数据能够通过,我在register_check.php和login_check.php上写了这个:
var_dump($_POST);
die();
即使我在字段中输入任何内容,我也会得到一个数组:
array(6){[&#34; username&#34;] =&gt; string(0)&#34;&#34; [&#34;密码&#34;] =&GT; string(0)&#34;&#34; [&#34; password_again&#34;] =&GT; string(0)&#34;&#34; [&#34;电子邮件&#34;] =&GT; string(0)&#34;&#34; [&#34;令牌&#34;] =&GT; string(0)&#34;&#34; [&#34;寄存器&#34;] =&GT; string(6)&#34;提交&#34; }
但是现在我的头痛开始了。我将完全相同的代码移动到我的托管服务器。我在表单中没有输入任何内容,然后按下提交。 var_dump给了我这个结果:
array(0){}
即使我在输入字段中输入内容,它仍然会给我相同的结果:
array(0){}
我真的没想到会出现什么问题。在我怀疑php版本5.2.17可能太旧之前,但对我来说这有点不可能因为这只是一个表单处理。
所以我希望有人能告诉我出了什么问题。由于这个奇怪的问题,我无法入睡。非常感谢你!
答案 0 :(得分:1)
检查您的实时服务器的配置。 Apache基本配置为用于开发,因此几乎所有内容都已启用。也许您的Live Server阻止了必要的功能。
答案 1 :(得分:1)
您的实时服务器上是否有.htaccess
?如果是,请尝试删除它并再次发送数据。