0

私はphpでセッションを使用し、session_startを使用して、ログインフォームから渡されたいくつかの変数を保存します。変数は、コードの先頭にある「user_name」と「user_role」です。これらの変数が設定されているかどうかを確認し、設定されていない場合はリダイレクトしますログイン画面。ここでの問題は、メニュー オプションを含むインクルード ファイルがあることです。ユーザーが特権ユーザーである場合、そうでない場合よりも多くのオプションが表示されます。私の問題は、インクルード ファイルが処理されるときにPHP Notice: Undefined index: user_name in C:\inetpub\wwwroot\2StarsGames.com\SomeGame v4.1\interface\HeaderMenu.php on line 20'user_name' が表示されることです。残りのファイルではエラーが発生しないため、この投稿にメニュー ファイルを含めました。別のファイル内にある場合、セッションの特別な扱いがあるかどうか誰かに教えてもらえますか?

<div id="page_header"> 
<img class="logoImage" src="./img/some1.png" align="left" />
SUPER B 
<img class="logoImage" src="./img/some2.png" align="right" />
</div>

<div id="page_menu">
<center>
    <a class="menu" href="./Contest.php">Contest</a>
    <a class="menu" href="./Cards.php">Cards</a>
    <a class="menu" href="./PlayersPoints.php">Players Points</a>   
    <a class="menu" href="./SBCardsCode.php">Card's Code</a> 
    <a class="menu" href="./Avatars.php">Avatars</a>   
    <a class="menu" href="./Sims.php">Sims</a>   
    <a class="menu" href="./Boards.php">Boards</a> <br/>   
    <a class="menu" href="./Charity.php">Charity</a>
    <?php 
        $username = strtolower($_SESSION['user_name']);
        if($username == 'some name1' ||
           $username == 'some name2' ||
           $username == 'some name3' ||
           $username == 'some name4')
        {
            echo "          
                <a class='menu' href='./PayoutsNoWin.php'>Payouts</a>  
                <a class='menu' href='./Payins.php'>Payins|</a>            
                <a class='menu' href='./Payments.php'>Payments</a>
                <a class='menu' href='./Tools.php'>Tools</a>  
                <a class='menu' href='./TransferData.php'>Transfer Data</a>
                <a class='menu' href='./Games.php'>Games</a>
                ";
        }
    ?>
</center>

session_start() を編集すると、これを含むファイルに含まれます。

4

2 に答える 2

1

エラー報告を抑制する必要があります。

$username = strtolower(@$_SESSION['user_name']);

または、変数を使用する前に isset($_SESSION['user_name']) を確認してください。

于 2012-11-22T08:37:21.577 に答える
0

The error seems to be occurring here:

$username = strtolower($_SESSION['user_name']);

"Undefined index" basically means that the 'user_name' index cannot be found in the $_SESSION variable.

Can you post your code where you're setting this?
And ensure this code runs before your check for $_SESSION['user_name'];

于 2012-11-22T08:39:02.967 に答える