-1

ユーザーがログインできる簡単なWebサイトを作成しました。問題は、ユーザーがアドレスhttp://www.mysite.com/signin.phpを入力し、ログインに成功した後、手動でアドレスを入力したhttp://mysite.comが、そのページからセッション変数が取得されないことです。両方に同じセッションを作成するにはどうすればよいwww.mysite.com,mysite.comですか?php iniファイルに設定はありますか、または両方のアドレスに同じセッションを作成するにはどうすればよいですか?

if(verify($password,$pw['password']))
{   

    $uid=$pw['user_id'];
    $_SESSION['login_status']=true;
    $_SESSION['user']=$uid;

}私はページchecksession.phpを持っています

<?php 
session_start();
var_dump($_SESSION);
?>

http://www.mysite.com/signin.phpからログインし、http: //www.mysite.com/checksession.phpでセッション値が表示されていることを確認すると、 http://mysite.com/checksession.phpからログインします。何も表示されません(違いは、アドレス1にwwwがあり、別のアドレスにwwwがありません)

4

4 に答える 4

2

私は通常wwwを強制します。またはいいえwww。リダイレクトを使用して .htaccess ファイルに。

あなたの問題はおそらく、PHP_SESS_ID Cookie ドメインが「.」で始まっていないことです。

session_set_cookie_params ( 3600 , '/', '.example.com');

それを設定する必要があります。

于 2012-12-22T06:09:36.013 に答える
1

次の行を の前に追加しますsession_start();

ini_set('session.cookie_domain', '.mysite.com' );

これにより、「www」を含む mysite.com のすべてのサブドメインを同じセッションに含めるように PHP に指示する必要があります。ドメイン名の前のピリオドに注意してください。

于 2012-12-22T06:17:03.690 に答える
0

別のアプローチは、session_start(); を使用することです。config.php ファイル内で、セッションが必要なすべてのページのコードの先頭にそのファイルをインクルードしないと、SESSION 変数の値を取得できません..!!

于 2013-11-28T10:49:03.987 に答える