表单字段发布到本地主机上的脚本,但在实时服务器上不会传递任何值


Form fields post to scripts on local host but on live server no values get passed

编辑:我将 post 方法更改为 get 方法,一切都按预期工作。我会进一步调查,如果我弄清楚为什么会这样,我会添加答案。我确实在其他地方使用帖子,所以我们会看到...

我已经四处寻找这个问题的答案,到目前为止还没有找到任何有帮助的东西。我有一个简单的表单,它使用 jquery 的 .submit 函数来序列化数据并通过 ajax 将其发布到 php 脚本中。这一切都在我的本地主机上运行良好,但是一旦我将其发布到服务器,字段值就不会发布。

这是表格:

<div id="loginDiv">
 <form  id="login" class="form-inline pull-right">
  <input id="loginVal" name="loginVal" type="password" class="input-small" />
   &nbsp;<button type="submit" class="btn btn-success">Log In</button>
 </form>
</div>

下面是提交函数和成功回调函数:

// ajax function to login to session
$(document).ready(function() {
 $("#login").submit(function() {
  $.post(
   "functions/sessionLogin.php",
   $("#login").serialize(),
   //{"loginVal":"CHAPMANADMIN"}, (this was just to troubleshoot)
   function(json) {
    parseReturnedLogin(json);
   }
  );
  return false;
 });
});
// login success handler
function parseReturnedLogin(data) {
 var obj = jQuery.parseJSON(data);
 $("#loginDiv").html("<p class='"navbar-text pull-right'">Logged in as <span 
  style='"color:#0088cc'">"+obj.priveleges+"</span></p>");
}

这是我在本地主机上得到的一些标头和响应的示例:

请求方式:开机自检 状态码:200 OK

接受:/

X-Request-with:XMLHttpRequest

表单数据:登录Val:CHAPMANADMIN

响应: {"user":"CHAPMANADMIN","priveleges":"Administrator","sessid":"pvigqmcfumlbiu13esiojg1n74"}

这是我在服务器上得到的一些标头和响应的示例:

请求方式:开机自检 状态码:200 OK

接受:/

X-Request-with:XMLHttpRequest

表单数据:登录Val:CHAPMANADMIN

响应: {"user":","priveleges":","sessid":"o2nf69vc2tdd8hc8n0usas4010"}

实时服务器上的查询正在使用空值运行。我在同一台服务器上还有其他 AJAX 应用程序,它们在类似的设置下可以正常工作,所以我不确定发生了什么,并希望专家提供一些建议/故障排除指导!

您的表单工作正常,但响应不正确。检查服务器上的服务器监控功能以及正常工作的数据库连接!

发布脚本以供进一步调查。

为了调试这些情况,我使用带有火虫扩展检查请求/响应的火狐。

最终成为在我的 $_POST 变量上使用 mysql_real_escape_string 的问题。我将代码从 mysql 转换为 PDO 函数,但没有删除需要 mysql 连接才能工作的mysql_real_escape_string函数,否则它们返回 false。

当我将此代码发布到服务器时,没有活动的 mysql 连接,因此该函数返回 false 并将我的变量值设置为 false。

希望这可以帮助将来有人摆脱同样的愚蠢错误。