表单未在服务器上传递

我的网站上有一个注册表单,它通过JQuery Post传递输入到PHP文件中。 这一切在我运行PHP 5.2的localhost上工作正常,但是当我将它上传到我的服务器(5.4)时,我遇到的问题是表单没有被处理。

这是我正在使用的代码:

$time = time(); $id= time().'-'.mt_rand(100000000, 999999999); $type= mysqli_real_escape_string($con, $_REQUEST["type"]); $subtype= mysqli_real_escape_string($con, $_REQUEST["subtype"]); $name= mysqli_real_escape_string($con, $_REQUEST["name"]); $name = ucwords(strtolower($name)); $email= mysqli_real_escape_string($con, $_REQUEST["email"]); $relative= mysqli_real_escape_string($con, $_REQUEST["relative"]); $relative = ucwords(strtolower($relative)); $summary= mysqli_real_escape_string($con, $_REQUEST["bio"]); $postcode= mysqli_real_escape_string($con, $_REQUEST["postcode"]); $sendpassword= mysqli_real_escape_string($con, $_REQUEST["password"]); $password= md5(mysqli_real_escape_string($con, $_REQUEST["password"])); $hash = md5( rand(0,1000) ); 

首先,查看代码,您正在使用mysqli_real_escape_string()进行输入清理。 这不是一个好主意,因为如果你没有与MySQL数据库的活动mysqli连接,它将无法运行并抛出错误。

其次,看一下服务器上的PHP错误日志。 这应该会给你一个关于出了什么问题的线索。 如果您没有错误日志设置,或者不知道它在哪里,那么请查看php.ini配置文件(在Linux上,它通常位于/etc/php/apache2/php.ini – 某事像这样)并搜索看起来像这样的行:

 error_log =  

如果该行前面有分号(;),则将其删除。 此行/指令设置PHP写入错误消息的位置。 您可以将其设置为您想要的任何内容,然后记住重新启动Web服务器以应用更改。

然后再次尝试运行您的PHP代码,然后查看您指定为error_log的文件以查看出现了什么问题。 我的猜测是它与mysqli_real_escape_string()有关。

我希望这是有帮助的。

此致,拉尔夫