0

Web サイトのログイン システムを作成していますが、ユーザーがログインした後にユーザー名を出力できません。

データベースから確認した後、私はこれを行いました:

  $_SESSION['userName'];
  $_SESSION['password'];
  header("location:success.php");

これは、success.php ファイルにユーザー名を出力するコードです。

   session_start();
   if($_SESSION['userName']!='')
   {
    header("location:login_form.php");

    }
    else
    {
     echo '<h2>Successfully Login <br /> Welcome '.$userName.'</h2>';

     echo '<a href="logout.php"> Log Out</a>';
     }

ただし、ユーザー名は印刷されません。

4

4 に答える 4

2

私はあなたが欲しいと思います:

echo '<h2>Successfully Login <br /> Welcome '.$_SESSION['userName'].'</h2>';

if($_SESSION['userName']!='')

する必要があります

if($_SESSION['userName']=='')
于 2012-12-31T15:18:05.277 に答える
2

まず、セッションに値を割り当てていません。

$_SESSION['userName'];
$_SESSION['password'];

header("location:success.php");

次のようにする必要があります。

$_SESSION['userName'] = 'My Username';
$_SESSION['password'] = 'My Password';
header("location:success.php");

次に、変数を定義していません$userName。次のように変更します$_SESSION['userName']

補足として、セッションにパスワードを保存しないでください。また、ユーザーをリダイレクトした後にdie()またはを追加する必要があります。exit()header()

編集:

コードを読み直してください。私の前の回答者は、この行を変更することを提案しましたが:

if ($_SESSION['userName'] != '')

に:

if ($_SESSION['userName'] == '')

セッションが存在するかどうかを確認するために論理演算子を使用するのは、実際には悪い習慣です。正しい方法は、次のisset()関数を使用することです。

if (isset($_SESSION['userName']))

幸運を!

于 2012-12-31T15:20:53.353 に答える
0

他の場所でコードを省略しない限り、この変数は定義されていません。$userName

変数として定義していません。試す:

$userName= $_SESSION['userName'];
$password = $_SESSION['password'];
于 2012-12-31T15:35:26.727 に答える
0

この行:

if($_SESSION['userName']!='')

次のようにする必要があります。

if($_SESSION['userName']=='')
于 2012-12-31T15:18:01.787 に答える