gpt4 book ai didi

php - 当其中一个条件不成立时如何避免在 php 中出现通知

转载 作者:行者123 更新时间:2023-12-03 21:24:41 27 4
gpt4 key购买 nike

我注意到当 php if 语句中的两个条件之一不为真时。对于不正确的语句,您会收到 undefined index 通知。在我的案例中,结果是一个扭曲的网页。例如,这段代码:

<?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 语句不为真。不正确的会给你一个通知,它是未定义的。在我的例子中,它表示 session “登录”未定义。如果使用 session “LoginAdmin”。你能推荐我做什么来避免这些 undefined index 通知。

编辑这是我检查输入的信息是否正确的地方,以供询问的人使用。它总是重定向到登录页面,即使登录信息是正确的:

$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.";
}

最佳答案

你的条件不对,应该是:

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');
}

&& 替换为 || 并将 != 替换为 ==

You get an undefined index notice for the statement that is not true.

事实并非如此,当您有一些 undefined variable 时,您会收到通知消息。您可以使用抑制运算符 @ 来避免这种情况,但使用它不是一个好主意,因为它会降低性能。

您还可以通过将其放在脚本顶部来隐藏通知消息:

error_reporting(E_ALL ^ E_NOTICE);

但是在开发过程中,您必须了解所有错误和注意事项,因此除非您确定自己在做什么,否则这也不是一个好主意。

关于php - 当其中一个条件不成立时如何避免在 php 中出现通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2903855/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com