我制作了一个通用的 PHP 脚本,用于 AJAX 调用。我有存储在 SESSION 变量中的 mysql 连接的用户名和密码。为了在这个 ajax 脚本中启动相同的会话,我通过 post 将会话 ID 传递给 ajax 脚本。变量被正确传递,我使用error_log
用户名和密码 SESSION 变量检查是否正确值。这是 ajax_script.php:
<?php
session_id($_POST['session_id']);
session_start();
mysql_connect('10.X.X.X',$_SESSION['username'],$_SESSION['password']);
$results = mysql_query($_POST['query']);
echo json_encode($results);
?>
但是,无法建立连接。我检查了日志文件,这是错误:
PHP Warning: mysql_connect(): Access denied for user 'username'@'25.1.1.1' (using password: YES) in /ajax_script.php on line 6, referer: http://25.1.1.1/index.php?option=com_content&view=article&id=180
有谁知道为什么我不能这样连接?
以前我制作了一个类似的脚本,但没有像上面那样启动引用 session_id 的同一会话。我通过帖子传递了用户名和密码,并且连接正常。
谢谢!
** 编辑 ** 抱歉,我为 mysql 连接使用了错误的 IP。以下代码有效:
<?php
session_start();
$ajax_connection = mysql_connect('10.X.X.X',$_SESSION['username'],$_SESSION['password']);
$result_set = array();
while ($result_set[] = mysql_fetch_assoc($results)){
// do nothing
}
echo json_encode($results);
?>