为什么我的索引未定义

时间:2012-12-05 05:54:34

标签: php

  

可能重复:
  PHP: “Notice: Undefined variable” and “Notice: Undefined index”

我试图创建一个简单的login and register page并且我在index .php页面上收到这些错误,为什么我的索引未定义这些是我得到的错误

Notice: Undefined index: username in C:\xampp\htdocs\mysite\forum part two\index.php on line 7

Notice: Undefined index: password in C:\xampp\htdocs\mysite\forum part two\index.php on line 8

第7行和第8行的代码分别为

$username = $_SESSION['username'];
$password = $_SESSION['password'];

这是我的索引页

<?php
//This will start a session
session_start();

$username = $_SESSION['username'];
$password = $_SESSION['password'];

//Check do we have username and password
if(!$username && !$password){
echo "Welcome Guest! <br> <a href=login.php>Login</a> | <a href=register.php>Register</a>";
}else{
echo "Welcome ".$username." (<a href=logout.php>Logout</a>)";
}
?> 

3 个答案:

答案 0 :(得分:2)

您收到这些错误是因为您的会话尚未提前声明,因此您需要检查您的会话是否已提前声明。你可以使用php emptyisset函数

<?php
//This will start a session
session_start();
$username ='';$password ='';
if(!empty($_SESSION['username']))//check if it is defined
    $username = $_SESSION['username'];

if(!empty($_SESSION['password']))//check if it is defined
    $password = $_SESSION['password'];

//Check do we have username and password
if($username=='' && $password==''){
   echo "Welcome Guest! <br> <a href=login.php>Login</a> | <a href=register.php>Register</a>";
}else{
echo "Welcome ".$username." (<a href=logout.php>Logout</a>)";
}
?> 

答案 1 :(得分:2)

检查$_SESSION's是否存储任何值..

我会举个例子:

  <?php
 //This will start a session
 session_start();

 if(isset($_SESSION['username']))
 {
     $username = $_SESSION['username'];
}else{
  $username = null;
}
var_dump($username);

// Would return NULL. SESSION IS NOT SET.
// if I add $_SESSION['username'] = "Phorce" session set, will return phorce.
?> 

或者:var_dump($_SESSION['username']);

希望这会有所帮助:)可能是$_SESSION['username']没有注册。

答案 2 :(得分:1)

请在使用之前检查是否为会话变量分配了值。

<?php
//This will start a session
session_start();

$username ="";
$password ="";
if(isset($_SESSION['username']))
$username = $_SESSION['username'];

if(isset($_SESSION['password ']))
$password = $_SESSION['password'];

//Check do we have username and password
if(!$username && !$password){
echo "Welcome Guest! <br> <a href=login.php>Login</a> | <a href=register.php>Register</a>";
}else{
echo "Welcome ".$username." (<a href=logout.php>Logout</a>)";
}
?>