我注意到,当一个php if语句中的两个条件不成立时。你得到一个未定义的索引通知,对于不正确的陈述。我的结果是一个扭曲的网页。 例如,下面的代码:如何避免通知在PHP中当其中一个条件不成立时
<?php
session_start();
if (!isset($_SESSION['loginAdmin']) && ($_SESSION['loginAdmin'] != '')) {
header ("Location: loginam.php");
} else {
include('head2.php');
}
if (!isset($_SESSION['login']) && ($_SESSION['login'] != '')) {
header ("Location: login.php");
} else {
include('head3.php');
}
?>
如果if语句之一是不正确的。不真实的会给你一个未定义的通知。 在我的情况下,它说会话'登录'没有定义。如果使用会话'LoginAdmin'。你可以推荐我做什么以避免这些未定义的索引通知。
编辑 这是我检查输入的信息是否正确,为那些谁问。它总是重定向到登录页面,即使登录信息是正确的:
$uname = mysql_real_escape_string($_POST['ausername']);
$pword = mysql_real_escape_string($_POST['apassword']);
$idnam= mysql_real_escape_string($_POST['aydi']);
$SQL = "SELECT * FROM admin WHERE ID= '$idnam' AND admin = '$uname' AND admin_password = '$pword'";
$result = mysql_query($SQL);
$num_rows = mysql_num_rows($result);
if ($result) {
if ($num_rows > 0) {
session_start();
$_SESSION['loginAdmin'] = "1";
header ("Location: ampage.php");
}
else {
session_start();
$_SESSION['loginAdmin'] = "";
header ("Location: loginam.php");
}
}
else {
$errorMessage = "Error logging on, please try again.";
}
为什么要测试变量的值(如果未设置)?未设置变量如何具有一个值? – 2010-05-25 10:49:14
你可以使用'if(empty($ _ SESSION ['loginAdmin'])){...'来代替,它会使代码更加清晰可读 – 2010-05-25 10:54:25