Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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
使用POST进行php处理的奇怪之处_Php_Post - Fatal编程技术网

使用POST进行php处理的奇怪之处

使用POST进行php处理的奇怪之处,php,post,Php,Post,我有一个在测试服务器上工作的项目,但在转移到另一个服务器上时停止工作。 我认为主要是PHP,但我想在这里征求你的意见。 因此,我的主页是一个用于登录的HTML,它有一个带有POST的表单,可以调用php脚本文件,如下所示: <form method="POST" action="prologin.php"> Name: <input type="text" name="nam"><br> Password: <input type="pa

我有一个在测试服务器上工作的项目,但在转移到另一个服务器上时停止工作。 我认为主要是PHP,但我想在这里征求你的意见。 因此,我的主页是一个用于登录的HTML,它有一个带有POST的表单,可以调用php脚本文件,如下所示:

<form method="POST" action="prologin.php">
    Name: <input type="text" name="nam"><br>
    Password: <input type="password" name="pas"><br>
    <input type="submit" value="Login" data-inline="true" data-icon="gear">
</form>
<?php
session_start();
include 'mycon.php';
$nume1=mysql_real_escape_string( $_REQUEST['nam'] );
$pass1=mysql_real_escape_string( $_REQUEST['pas'] );

$s = "SELECT * FROM uzers WHERE uzname = '$nume1' and pass = md5('$pass1')";

var_dump($s);
... followed by other validations and stuff.
有什么不对劲吗? 为什么php不接收请求变量?因为这就是我认为会发生的事情。
我能做些什么来修复它?

当您在提交表单之前首次加载页面时会发生这种情况,在这种情况下,$\u请求或$\u POST不存在,您可以通过检查变量来避免这种情况:

if(isset($_REQUEST['nam']) && isset($_REQUEST['pas'])){
  include 'mycon.php';
  $nume1=mysql_real_escape_string( $_REQUEST['nam'] );
  $pass1=mysql_real_escape_string( $_REQUEST['pas'] );

  $s = "SELECT * FROM uzers WHERE uzname = '$nume1' and pass = md5('$pass1')";
  //other staff
}

删除php,直到找到有问题的代码。我会将$\u REQUEST的实例替换为$\u POST,并在加载页面时回显它们,以确保它们被正确传递。您的查询使用空白参数进行响应,这一事实使我认为$\u请求是一个问题

<?php
 echo $_POST['nam'];
 echo $_POST['pas'];

显然我应该在表单中添加以下内容:

data-ajax="false" 
为了防止jQuery mobile劫持我的提交行为。 在我将此添加到表单后,POST工作正常。
谢谢你的时间和想法,但它们并没有帮助我解决我的问题。不过,您可能会发现这些信息在将来很有用

基本调试尝试的下一步是检查变量的值<代码>变量转储($\请求)变量转储($\u POST);`。然后,删除include并重复。您知道服务器上运行的PHP的哪个版本的代码不起作用吗?
$\u请求
superglobal仅在PHP版本4.1.0以后提供。出于好奇,为什么不使用
$\u POST
而使用
$\u请求
呢?为什么要启动会话?检查您对会话的权限我知道。这正是我的印象。然而,我不知道我做错了什么。我创建了一个名为prologin.php的新php文件,其中我只有以下内容:
,似乎POST中没有发布任何内容。这怎么可能?您可以在HTML中看到我的表单。看起来没有错。。。怎么了?你有使用jQuery Mobile和PHP的经验吗?我相信这是我的问题。如果我从HTML中删除jQuery.mobile脚本行,那么帖子就可以正常工作。但我不能这么做,因为这会毁了我的应用程序。。。那么该怎么办呢?我删除了所有其他代码,结果出现了一个问题:jQuery.mobile脚本正在这样做。如果我从HTML中删除对jquery.mobile.js的引用,那么帖子就会通过。如果我把它放在我的HTML中,那么帖子就会空到PHP中。这意味着什么,以及如何解决?好吧,我的朋友,我很高兴你解决了它,但在你的帖子中我们看不到你在使用jQuery
data-ajax="false"