次のphpスクリプトを使用して自分のWebサイトにログインしています。スクリプトがログインパラメーターを含む別のphpファイルに投稿され、他のphpファイルがすべての接続を処理することがわかります(Cookie、セッションなどを登録します。)ログインphpファイルは、最初のphpファイルから投稿値を正常に取得しますが、Cookieもセッションも登録しません。問題なく Ajax.post でログインできます。
phpファイル番号1 -
<?php
$url = "http://myurl.org.il/login_exec.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"username=yarden&password=yarden");
$result= curl_exec ($ch);
curl_close ($ch);
?>
php ファイル番号 2 の Cookie とセッション登録を処理する部分 -
session_regenerate_id();
$member = mysql_fetch_assoc($result);
$_SESSION['SESS_MEMBER_ID'] = $member['mem_id'];
$_SESSION['SESS_FIRST_NAME'] = $member['username'];
$_SESSION['SESS_LAST_NAME'] = $member['password'];
if (isset($_POST['remember'])) {
$cookie_auth = rand_string(10) . $member['username'];
$auth_key = $cookie_auth;
$auth_query = mysql_query("UPDATE member SET auth_key = '" . $auth_key . "' WHERE username = '" . $member['username'] . "'");
setcookie("auth_key", $auth_key, time() + 60 * 60 * 24 * 7, "/", "myurl.org.il", false, true);
要するに、phpファイル番号1はphpファイル番号2にログイン値を投稿し、phpファイル番号2は投稿値を取得しますが、Cookieもセッションも登録しません..そして再び-phpファイル番号2に正常に投稿できますajaxを使用すると、Cookieが登録されます。私はグーグルとスタックオーバーフローを検索しようとしましたが、私が成功しなかった答えがたくさんあるので、私はちょっと迷っています。皆さん、ありがとうございました !:)