0

私はphpが初めてで、次のことに問題があります。セッションのユーザー名をチェックして、それが url パラメーターと一致するかどうかを確認してから、いくつかのものを出力したい:

<?php

  // Check User
    if (isset($_SESSION['user_name'] == $_GET['name'])) {

        //print html

    }
?>

セッション名がURL名と一致する場合でも、これをテストすると空白のページが表示されます。

4

4 に答える 4

1

セッションを開始するのを忘れており、使用方法isset()が間違っています

<?php
  session_start();
  // Check User
    if ($_SESSION['user_name'] == $_GET['name']) {

        //print html

    }
?>

より優れた、より完全なソリューション:

<?php
  session_start();
  // Check User
    if (isset($_SESSION['user_name']) 
        && isset($_GET['name']) 
        && $_SESSION['user_name'] == $_GET['name']) {

        //print html

    }
?>
于 2013-02-03T00:19:57.423 に答える
0

このようにセッションをチェックする前にセッションを開始する

<?php
   session_start();
  // Check User
    if (isset($_SESSION['user_name']) == $_GET['name']) {

        //print html

    }
?>
于 2013-02-03T00:21:21.710 に答える
0

isset()関数に論理エラーがある場合は、次のようにします。

if (isset($_SESSION['user_name']) && isset($_GET['name']) && $_SESSION['user_name'] == $_GET['name']) {

    //print html

}

upd: 確かに、start_session()セッション変数を使用するアクションの前に

于 2013-02-03T00:22:35.347 に答える
0

isset 関数のブール値の結果を URL の文字列名と比較しているようです。

  // Check User
    if (isset($_SESSION['user_name'])&&isset($_GET['name'])) 
      if (($_SESSION['user_name'])==($_GET['name']))
{
        //print html
}

?>
于 2013-02-03T00:20:43.273 に答える