0

php でセッションを学習するのはこれが初めてで、可能な限り最も単純なログイン ページに取り組んでいます。

$_SESSION['username']では、理論的には、ユーザーが Web ページを閉じない限り、任意の文字列 $username を常に保存しておくことができますか?

$_SESSION['username']これは、値を $usernameに設定するだけのダミー Web ページです。これを行って、自分の Web サイトで別のページを開いた場合$_SESSION['username']、Web ブラウザーを閉じるまで の値は保持されますか?

<?php
session_start();
<html>
<body>

...

$_SESSION['username'] =  $username;
?>

だから私の大きな質問は、$username が "CiniCraft" だった場合、Web ブラウザが閉じられるまで $_SESSION['username'] = "CiniCraft" になるのでしょうか? そうでない場合、ブラウザが閉じられるまで値を保持するために使用するのに最適な変数は何ですか?

上記のアプローチを試してみましたが、login.php から index.php に移動すると、$_SESSION['username'] が空白になります。

私にとってセキュリティはまったく問題ではありません。ユーザー アカウントが侵害された場合、ハッカーは時間を無駄にします。もちろん、バイアグラの広告をさらにスパムするメールを探しているのでなければ...

4

2 に答える 2

6

はい、いつでも

$_SESSION['username'] = $username;

セッションに$username値が割り当てられます。ただし、割り当てる前にセッションを開始することを忘れないでください。順序は次のようになります。

session_start();
$_SESSION['username'] = $username;

アクセスする必要があるすべてのページでセッションを開始します。これがおそらく index.php で利用できなかった理由です。

したがって、index.php では、次のようなことができます。

session_start();
echo $_SESSION['username'];

これは、あなたの例では、最初に login.php と index.php を後で呼び出すと、「CiniCraft」を出力するはずです。

セッションは Cookie を使用してブラウザーに保存されます。そのため、ブラウザーをリセットしたり長時間閉じたりしない限り、セッションは有効です。ただし、他のブラウザでは、セッションは利用できません。

PHP コンテキストでのセッションと一般的なセッションの詳細をお読みください。

セキュリティは私にとってまったく問題ではありません

注意 - このように見ないでください。セキュリティは全員の責任であり、遅かれ早かれ必要になります。

于 2013-03-06T02:29:19.167 に答える
0

古いブラウザをお使いのようですので、先にブラウザの更新をお願いしております。最新のブラウザーと同様に、セッションの処理は古いブラウザーよりも簡単です。

ページの開始点ですべてのページに session_start() を提供する必要があるもう 1 つのこと。

session_start は、ユーザーが Web サイトにアクセスしているときに、Web サイト全体で単一のセッションを維持するのに役立ちます。

于 2013-03-06T02:32:59.787 に答える