0

このエラーがあり、解決できません:

注意:未定義のインデックス: 10行目のC:\xampp\htdocs\store\header.phpの id

注意:未定義のインデックス: C:\xampp\htdocs\store\header.phpの11行目の user

注意:未定義のインデックス: 12 行目のC:\xampp\htdocs\store\header.phpのパスワード


ログインページがあり、ログインしてセッションのid、 user 、および password を設定します。ログインすると、表示され続けるエラーを除いて、すべて正常に動作します。

これは次のheader.phpとおりです。

    <?php
    session_start();
            if (isset($_SESSION["user"])) {
            $msg_logout = '<br />
               <div>                                              
                  <a href="logout.php">Log out</a>              
                </div>';        
            }
          // checking if this SESSION is in the DB
            $userID = preg_replace('#[^0-9]#i', '', $_SESSION["id"]); 
            $user = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["user"]);
            $password = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["password"]); 
                        // Connect to the MySQL database  
            include "conx_to_db.php"; 
            $result = mysqli_query($db_1,"SELECT * FROM fans WHERE username='$user' AND password='$password' LIMIT 1"); // query the person
                        // confirm user in DB
            $existCount = mysqli_num_rows($result);
            if ($existCount == 0) { // evaluate the count
            $msg_login = "<div>
                     <a href='login.php' style='text-decoration:none; color: #000;'>Login</a> </div>
                 <div id='bt_registar'>
                     <a href='registo.php' style='text-decoration:none; color: #000;'>Registar</a>
                 </div>";
                 }
     ?>
     <div id="head">
    <div id="logo">
        <a href="index.php"><img src="img/logo34.png" height="80" border="0">
    </div>      
    <div>
    <?php echo $msg_login; $msg_logout; ?>
        <br /><a href="cart.php"><img   src="img/cart.png" height="56" width="56" style="vertical-align:middle;"><strong>Cart</strong></a>

    </div>
</div>

これは次のindex.phpとおりです。

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>Store test</title>

    <link rel="stylesheet" href="estilo/style.css" type="text/css" media="screen" />

    </head>
    <body>

    <?php include_once("header.php");?>

    <div id="main"> 

<hr>

    <table border="0" cellspacing="10" cellpadding="10">
        <tr>
        <td width="35%" valign="top" style="border-right:3px solid green">     <h3>&#8226; Service</h3><br /><br />
        <p>Benvindo .</p>
        <p>gets some god stuff.<br /><br />

        <p>&eacute; A store bla bla! <br />
        <br />
            Isto &eacute;  test!</p></td>
        <td width="65%" valign="top"><h3>&#8226; Os mais comprados</h3><br   />
     <p><?php echo $List; ?><br /></p>
                  </td>
    <br />
    <br />
        </tr>
      </table>
      </div>

      <?php include_once("footer.php");?>
      </div>
      </body>
      </html>

何が間違っているのか誰かが私に説明してくれることを願っています。ありがとうございました

4

5 に答える 5

0

エラーが示唆するように、これらの3行

$userID = preg_replace('#[^0-9]#i', '', $_SESSION["id"]);
$user = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["user"]);
$password = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["password"]);

が問題です。idスクリプトは配列内のアドレスを探しています$_SESSIONが、何らかの理由でそこにないため、インデックスが未定義であると報告されます。

それを修正するには、使用できます

if (isset($_SESSION['id']) { ... }

または、必要になる前に設定されていることを確認してください。

編集

ログインページは、ID、ユーザー、およびパスワードを $_SESSION に設定します。これらのインデックスは、ページが呼び出されるまで存在しません。

header.phpただし、これらの値を知る必要があるため、事前に設定するか、 を使用しますisset

于 2013-09-26T00:08:59.630 に答える
0

セッションが空かどうかを特定のコードでセッションを確認してください

var_dump($_SESSION);

これに対するショーの返信が何であれ、問題がどこにあるかをお知らせします。

于 2015-01-16T06:40:04.923 に答える
0

すべてが非常にシンプルで、PHP はすでにエラーの内容を示しています。

必要なのは読むだけです。indecies iduserおよびpasswordが定義されていないことを示しています。

したがって$_SESSION["id"]$_SESSION["user"]$_SESSION["password"]は定義されていません。

あなたの生活をよりシンプルにするためのいくつかの言葉: コードの 2 ページを貼り付けないでください。あなたがひどく反対票を投じられると思うので、問題を局所化するようにしてください.

于 2013-09-26T00:11:03.277 に答える