我对AJAX有一个非常奇怪的问题。 这是带有js代码和post方法的文件片段,它通过AJAX将params发送到php文件:
var params = $('#add').serializeArray();
$.post('code/bg/adding_c.php', params, function(ret) {
//body of success function
}, 'json');
这是php代码的片段(adding_c.php):
<?php
require "functions.php";
//irrelevant operations
$return = array(
'status' => $status,
'msg' => $msg,
'id' => $id
);
echo json_encode($return);
?>
当我使用require指令评论或删除该行时,一切正常,但当它处于活动状态时,不会触发成功函数。
为什么与AJAX无关的指令导致了这个问题?
编辑。
的functions.php:
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'dbname';
$conn = new mysqli($host, $user, $pass, $db);
function querySQL($query)
{
global $conn;
$result = $conn->query($query);
return $result;
}
function cleanSQL($conn, $string)
{
return htmlentities(fixSQL($conn, $string), ENT_COMPAT, 'UTF-8');
}
function fixSQL($conn, $string)
{
if(get_magic_quotes_gpc())
$string = stripslashes($string);
return $conn->real_escape_string($string);
}
function fPassword($pass)
{
$salt1 = 'salt1';
$salt2 = 'salt2';
$token = hash('ripemd128', "$salt1$pass$salt2");
return $token;
}
?>
EDIT2。
没有错误,当我将函数从functions.php粘贴到index.php时,一切正常。我现在不知道该怎么办。这似乎需要单词是一个问题。我无法将这些函数添加到我需要它们的每个文件中。
答案 0 :(得分:0)
functions.php
内可能是错误。
编辑:如果您未在php.ini文件中设置display_errors = On
,请在代码中使用以下行:
ini_set("display_errors", "1");
error_reporting(E_ALL);
另外,您确定它不是解析/语法错误吗?如果是这种情况,您可以做一些事情:
确保使用的是检查语法的IDE(例如,Netbeans)。
将文件分成两部分,如下所示:
<强>的index.php 强>
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
include 'error.php';
<强> error.php 强>
require "functions.php";
//irrelevant operations
$return = array(
'status' => $status,
'msg' => $msg,
'id' => $id
);
echo json_encode($return);
在浏览器窗口中运行它,这可以让您了解您正在处理的内容。