0

ページにメンバーのユーザー名を表示するか、ゲストにログインまたは登録を求めるメンバー スクリプトと組み合わせて使用​​する次のコードがあります。

PHP コード:

if ($_SESSION['username'])
{
echo "".$_SESSION['username'].", you are logged in.<br><small><a href=\"logout.php\">Click here to logout</a></small>";
}
else
echo "Welcome Guest!<br><small><a href=\"login.php\">Login</a> or <a href=\"register.php\">Register</a></small>";

それは完全にうまく機能しますが、管理者権限を持つユーザーがログインすると、ユーザー名を識別し、管理ページへのリンクを提供するように変更したいと思います。

だからここに私の修正されたコードがあります:

<? php
$validateadmin = $_SESSION['username'];
if ($validateadmin == "admin1" or $validateadmin == "admin2")
  {
echo "Hello $validateadmin, you have <a href=\"admin.php\">admin</a> privileges.<br><small><a href=\"logout.php\">Click here to logout</a></small>";
  }
else if ($_SESSION['username'])
  {
echo "".$_SESSION['username'].", you are logged in.<br><small><a href=\"logout.php\">Click here to logout</a></small>";
 }
else
  {
echo "Welcome Guest!<br><small><a href=\"login.php\">Login</a> or <a href=\"register.php\">Register</a></small>";
 }
 ?>

私が間違っていることは何ですか?空白のページまたはエラーが表示されます。おそらく初心者のエラーであることはわかっていますが、私の人生では、何が問題なのかわかりません。

4

2 に答える 2

2

通常、php では "else if" ではなく、elseif を使用する必要があります。これは、php パーサーが else if を else { if { .... }} と解釈し、奇妙なエラーが発生する可能性があるためです。

また、ぶら下がっている句を避けるために、常に制御ステートメントで中かっこを使用することをお勧めします。

また、配列インデックスに関する通知を避けるために、インデックスが存在しない可能性がある場合は、if($array[$index]) のようなチェックを行わないでください。array_key_exists、isset、empty など (すべてわずかに異なります) のいずれかを使用して、探しているキーが配列に含まれているかどうかを確認します。

于 2013-04-03T23:30:11.680 に答える
0

以下を試してください

<?php #removed space
session_start(); #you will need this on all pages otherwise remove it if already called
$validateadmin = $_SESSION['username'];

if($validateadmin == "admin1" || $validateadmin == "admin2"){
    echo "Hello $validateadmin, you have <a href=\"admin.php\">admin</a> privileges.<br><small><a href=\"logout.php\">Click here to logout</a></small>";
}elseif(isset($_SESSION['username'])){ #you should use isset to make sure some variable is set
    echo $_SESSION['username'].", you are logged in.<br><small><a href=\"logout.php\">Click here to logout</a></small>";
}else{
    echo "Welcome Guest!<br><small><a href=\"login.php\">Login</a> or <a href=\"register.php\">Register</a></small>";
}
?>
于 2013-04-03T23:32:27.343 に答える