リモートでログインするための簡単なPHPログインシステムを作成しましたが、SESSIONはデータを保存しません。下記の疑似コードをご覧ください。 mainserverとremoteserverは実際には実際のWebアドレスであることに注意してください。リモートでログインしてセッションを有効にしてください
ファイル::私はちょうど2つのリンクを投稿するのに十分な評判を持っていないmainserver/login.php
$username = $_POST[ "username" ];
$userpassword = $_POST[ "password" ];
$result = check_logIn($username, $password);
if ($result) {
$_SESSION[ "is_loggedIn" ] = true;
die (true);
} else die(false);
ファイル:remoteserverは/ remoteLogin.php
$http_query = http_build_query(array(
"username" => "Username goes here",
"password" => "Password goes here"
));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"mainserver/login.php");
curl_setopt($ch, CURLOPT_COOKIEJAR, md5(rand()) .".txt");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $http_query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);
curl_close($ch);
でもメインサーバがtrueを返すと(ログインが成功した後)、私はhttp://mainserver.com/にアクセスしますが、$_SESSION[ "is_loggedIn" ]
はまだそこにはありません。技術的には、私はまだログアウトした人として扱われています。
私は対処すべきものがありますか?
session_start()を使用しましたか? (http://php.net/manual/en/function.session-start.php) –
はい。やった。それは単なる擬似コードです。リモートサイトからデータを受け取っていないときは、すべてが正常に実行され、テストされました。 – user3622260
私はあなたが何を意味しているのかを見て、問題はこれです:あなたがクロームを介してログインしたときと同じように、あなたはfirefoxにログインしていません。スクリプトを実行しているサーバーでも同じことが起こりますが、メインサーバーのセッションはremoteserverにリンクされています。たとえIPや物理マシンを共有していても。 –