【问题标题】:Form Not Being Passed On Server表单未在服务器上传递
【发布时间】:2014-01-08 11:16:47
【问题描述】:

我的网站上有一个注册表单,它通过 JQuery Post 将输入传递到 PHP 文件中。这一切在我运行 PHP 5.2 的本地主机上运行良好,但是当我将它上传到我的服务器 (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) );

【问题讨论】:

  • 你在服务器上遇到什么错误?
  • php 没有在实时服务器上被处理,即使它在 localhost 上工作正常
  • 请直接运行一个带有一些php代码的php页面。如果这不起作用,可能您的主机没有 php 支持。
  • 检查 apache 错误日志中是否有任何警告/错误...(如果在 php.ini 中关闭了 display_errors)
  • 对不起,完全是我的错 - 我重新上传到服务器时忘记编辑数据库登录设置

标签: php jquery forms


【解决方案1】:

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

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

error_log = <something>

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

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

希望对你有帮助。

问候, 拉尔夫

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 2018-12-20
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多