我是PHP的新手,并且在会话方面更是初学者。我有index.php页面,用户可以在其中注册和登录。表单分别发布到validate.php和loginvalidate.php页面,以进行注册和登录。
加载时在index.php上出现以下错误:
1)注意:未定义的索引:已注册2)注意:未定义的索引:从未使用
我已经尝试过多种方式来修改我的文字,但是我从来没有解决错误。
Index.php
<?php
if ($_SESSION['registered'] != NULL){
echo $_SESSION['registered'];
}
if ($_SESSION['badlogin'] != NULL){
echo $_SESSION['badlogin'];
}
if ($_SESSION['neverused'] != NULL) {
echo $_SESSION['neverused'];
}
?>
Validate.php(提交注册表后)
if (mysqli_num_rows($result) > 0) { //IF THERE IS A PASSWORD FOR THAT EMAIL IN DATABASE
$_SESSION['registered'] = "Email is already registered.";
mysqli_close($db_handle);
header('Location: index.php');
exit();
}
Loginvalidate.php(提交登录表单后)
if ($numrows!=0) //IF THERE IS A PASSWORD FOR THAT EMAIL IN THE DATABASE
{
if ($row['password'] == $password) { //IF THE PASSWORD MATCHES USER INPUT
header('Location: homepage.php');
echo "lol";
exit();
}
else{
$_SESSION['badlogin'] = "Email/password combination not valid.";
mysqli_close($db_handle);
header('Location: index.php');
exit();
}
}
else { //THERE IS NO PASSWORD FOR THAT EMAIL, SO THAT EMAIL IS NOT REGISTERED
$_SESSION['neverused'] = "Email is not registered.";
mysqli_close($db_handle);
header('Location: index.php');
exit();
}
好的,我的脚本可以完成预期的工作。我唯一无法解决的是这些会话错误。您是否看到会话滥用?当然,我已经在所有.php文件中启动了会话。
另外,请注意,我知道并没有受到黑客的保护。这仅用于将来的原型,其中将不包含任何重要数据。
这些错误的原因是您正在尝试读取不存在的数组键。该isset()函数的功能是存在的,所以你可以测试这个。对于每个元素,如下所示的东西都会起作用;无需进行空检查,因为您永远不会将null分配给元素:
// check that the 'registered' key exists
if (isset($_SESSION['registered'])) {
// it does; output the message
echo $_SESSION['registered'];
// remove the key so we don't keep outputting the message
unset($_SESSION['registered']);
}
您也可以在循环中使用它:
$keys = array('registered', 'badlogin', 'neverused');
//iterate over the keys to test
foreach($keys as $key) {
// test if $key exists in the $_SESSION global array
if (isset($_SESSION[$key])) {
// it does; output the value
echo $_SESSION[$key];
// remove the key so we don't keep outputting the message
unset($_SESSION[$key]);
}
}
问题内容: 这听起来真的很愚蠢,但我无法弄清楚为什么会收到此错误。 我创建了一个选择框,以我的html形式命名为“ query_age”: 在相应的php形式中,我有: 运行页面时,出现此错误: 注意:未定义的索引:第19行的index.php中的query_age 我不明白为什么会这样,我很想知道如何解决它。 问题答案: 我没有看到php文件,但是可能就是这样- 在您的php文件中替换: 与:
问题内容: 当我尝试在其他PHP服务器上运行脚本时,出现了一个新问题。 在我的旧服务器上,即使未声明任何参数,以下代码也可以正常工作。 但是现在,在本地计算机(XAMPP-Apache)上的本地服务器上,如果未定义for的值,则会出现以下错误。 如果为声明了值,但脚本要调用某些javascript函数会发生什么,但是如果未声明任何内容,我希望页面能够正常加载。 你能帮助我吗? 问题答案: 错误报告
我已经检查了register_argc_argv是否在我的php.ini文件中打开,我正在使用PHP-CLI。 这是我得到的错误消息: PHP致命错误:未捕获异常“ErrorException”,消息为“Undefined index:argv”phar:///var/www/html/composer.phar/vendor/symfony/console/Symfony/Component/C
问题内容: 我曾就同一问题经历过许多问题,但各种解决方案都无济于事。我正在使用Redis将会话存储在群集的NodeJS + ExpressJS应用程序中,但是该会话始终是未定义的。这是我的Express设置: 即使不使用Redis存储,我也会收到以下错误: 问题答案: 您必须在路由之前实例化会话。
我按照教程步骤尝试SBT: 有什么想法可以解决这个问题吗?
本文向大家介绍PHP 注意:未定义的索引 PHP Notice: Undefined index,包括了PHP 注意:未定义的索引 PHP Notice: Undefined index的使用技巧和注意事项,需要的朋友参考一下 示例 原因: 尝试通过数组中不存在的键访问数组 可能的解决方案: 访问前请检查可用性。采用: isset() array_key_exists()