AJAX呼び出しに使用する汎用PHPスクリプトを作成しました。mysql接続のユーザー名とパスワードをSESSION変数に保存しています。このajaxスクリプトで同じセッションを開始するために、セッションIDをpostを介して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);
?>