AJAX呼び出しに使用する一般的なPHPスクリプトを作成しました。私はセッション変数に格納されているmysql接続のユーザ名とパスワードを持っています。このajaxスクリプトで同じセッションを開始するために、セッションIDをポスト経由でajaxスクリプトに渡します。変数が正しく渡されており、ユーザ名とパスワードのSESSION変数が正しい値であることを確認してerror_log
をチェックしました。ここにajax_script.phpがあります:ajaxで同じセッションIDを使用するとMySQL DBに接続できません
<?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を参照する同じセッションを開始しませんでした。私はポストを介してユーザー名とパスワードを渡し、接続が機能しました。
ありがとうございます!
** EDIT **申し訳ありませんが、私は間違ったIPをmysql接続に使用しました。次のコードは動作します:
<?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);
?>
ユーザーテーブルのユーザーデータを表示する可能性があります。設定したホスト名を忘れたり、localhostを設定したりしますか? – Vytautas