Php 我有3个未定义的索引错误

Php 我有3个未定义的索引错误,php,session,indexing,undefined-index,Php,Session,Indexing,Undefined Index,我有这个错误,我无法解决它: 注意:在C:\xampp\htdocs\store\header.php中未定义索引:id 行10 注意:未定义索引:上的C:\xampp\htdocs\store\header.php中的用户 行11 注意:未定义索引:C:\xampp\htdocs\store\header.php中的密码 在线12 我有一个登录页面,在那里我登录,设置会话的id、用户和密码。当我登录时,除了不断显示的错误外,一切正常 这是标题。php: <?php se

我有这个错误,我无法解决它:

注意:C:\xampp\htdocs\store\header.php中未定义索引:id 行10

注意:未定义索引:上的C:\xampp\htdocs\store\header.php中的用户 行11

注意:未定义索引:C:\xampp\htdocs\store\header.php中的密码 在线12


我有一个登录页面,在那里我登录,设置会话的id、用户和密码。当我登录时,除了不断显示的错误外,一切正常

这是
标题。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>
我希望有人能解释我出了什么问题。
谢谢

正如错误所示,这三行

$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"]);
问题就在这里。脚本正在
$\u会话
数组中查找
id
地址,但由于某种原因它不在那里,因此它报告索引未定义

要修复它,您可以使用

if (isset($_SESSION['id']) { ... }
或者确保在需要之前设置好

编辑

您的登录页面在$\u会话中设置id、用户和密码。在调用页面之前,这些索引将不存在


header.php
需要知道这些值,所以要么提前设置它们,要么使用
isset
一切都非常简单,php已经告诉您错误所在

你所需要的只是阅读。它告诉您没有定义索引
id
user
password

因此,未定义
$\u会话[“id”]
$\u会话[“用户”]
$\u会话[“密码”]


让您的生活更简单的几句话:不要粘贴两页代码。尽量把问题局部化,因为我认为你会被严重否决

过了一段时间,我得到了它

解决办法是:

   if(isset($_SESSION['id'])){
      if(isset($_SESSION['user'])){
        if(isset($_SESSION['password'])){
        $log = 1;
        }
      }
   }
谢谢大家的帮助,我知道它看起来很基本,但我是一个初学者,正在学习


“请注意,这些不是错误!它们是由James->检查的通知”初始化变量的正常方式:

$userID = isset($_SESSION["id"]) ? $_SESSION["id"] : NULL;
在您准备使用
$userID
执行任何操作之后,您可以检查该值是否为null

if(!empty($userID)){
   //do something
}


请使用给定代码检查会话是否为空

var_dump($_SESSION);

无论它有什么样的回复,我都会让你知道问题出在哪里。

$\u SESSION[“id”]
$\u SESSION[“user”]
$\u SESSION[“password”]
都不是setHi Afzal,欢迎使用。我在登录页面上设置了SESSION,带有id、user和password。当我登录时一切正常。我忘了告诉你。。我将编辑问题以添加此信息。。。对不起that@Afzal-您的登录页面在
$\u会话中设置id、用户和密码。在调用页面之前,这些索引将不存在。我在回答中加了这个。
var_dump($_SESSION);