0

現在自分のサイトにいるユーザーの名前を $_SESSION['user'] に保存し、すべてのページに Hy "user" のようなメッセージを書きたい場合、どうすればよいですか? 私はもう試した:

<?php 
      session_start();
?>  
   <form> ... </form>

私が持っている検証ページに

     <?php  
      $_SESSION['user']=$_POST['user'];
      ...
    ?>

//そして私が持っている他のページ

 <?php
echo "Hy ".$_SESSION['user'];
...

?>

私のサイトでは、ユーザーがいない「Hy」しかありません。何が間違っていますか?

4

3 に答える 3

6

session_start()すべてのページの先頭で呼び出します。

于 2013-03-27T15:15:48.940 に答える
4

関数session_start()が、セッションを使用するすべてのページにあることを確認する必要があります。また、ヘッダー/出力がブラウザーに送信される前に、session_start() を使用する必要があります。

良い:

<?php
session_start();

//Do something with sessions
$_SESSION['user'] = $username;

悪い:

<?php
echo 'Hi';
session_start();

悪い:

<head>
    <title>Page Title</title>
</head>
<?php
session_start();

また、現在の実装では、出力をサニタイズしないとセキュリティ リスクが生じます。ユーザー名を出力するときは、必ずhtmlspecialcharsを使用してください。そうしないと、XSS 攻撃を受けやすくなります。

echo htmlspecialchars($_SESSION['user'], ENT_QUOTES, "utf-8");
于 2013-03-27T15:16:10.810 に答える
1

session_start()特定のページでセッションを開始すると、セッション値にアクセスできるようになります。

于 2013-03-27T15:16:35.280 に答える