提问人:Afzal 提问时间:9/26/2013 最后编辑:Leonid GlanzAfzal 更新时间:11/20/2015 访问量:3349
我有这个 3 未定义的索引错误
I have this 3 undefined index error
问:
我有这个错误,我无法解决它:
通知:未定义的索引:C:\xampp\htdocs\store\header.php 中的 id 10号线
通知:未定义的索引:C:\xampp\htdocs\store\header.php 中的用户 11号线
通知:未定义的索引:第 12 行 C:\xampp\htdocs\store\header.php 中的密码
我有一个登录页面,我在其中登录,设置会话的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>
这是索引.php
:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Store test</title>
<link rel="stylesheet" href="estilo/style.css" type="text/css" media="screen" />
</head>
<body>
<?php include_once("header.php");?>
<div id="main">
<hr>
<table border="0" cellspacing="10" cellpadding="10">
<tr>
<td width="35%" valign="top" style="border-right:3px solid green"> <h3>• Service</h3><br /><br />
<p>Benvindo .</p>
<p>gets some god stuff.<br /><br />
<p>é A store bla bla! <br />
<br />
Isto é test!</p></td>
<td width="65%" valign="top"><h3>• Os mais comprados</h3><br />
<p><?php echo $List; ?><br /></p>
</td>
<br />
<br />
</tr>
</table>
</div>
<?php include_once("footer.php");?>
</div>
</body>
</html>
我希望有人能解释我出了什么问题。 谢谢
答:
正如错误所暗示的那样,这三行
$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"]);
是问题所在。该脚本正在数组中查找地址,但由于某种原因它不存在,因此它报告索引未定义。id
$_SESSION
要修复它,您可以使用
if (isset($_SESSION['id']) { ... }
或者确保在需要之前设置它。
编辑
登录页面以 _SESSION 美元为单位设置 ID、用户和密码。在调用页面之前,这些索引将不存在。
header.php
但是需要知道这些值,因此请提前设置它们,或使用 .isset
一切都非常简单,PHP已经告诉您错误是什么。
您所需要的只是阅读。它告诉你 indecies ,并且没有被定义。id
user
password
所以 和 未定义。$_SESSION["id"]
$_SESSION["user"]
$_SESSION["password"]
几句话可以让你的生活更简单:不要粘贴 2 页代码。试着把问题定位出来,因为我认为你会被严重否决。
过了一段时间,我明白了。
解决方案是:
if(isset($_SESSION['id'])){
if(isset($_SESSION['user'])){
if(isset($_SESSION['password'])){
$log = 1;
}
}
}
感谢大家的帮助,我知道它看起来很基本,但我是初学者,正在学习!
“请注意,这些都不是错误!他们是通知。 by 詹姆斯 ->检查
初始化变量的常规方法:
$userID = isset($_SESSION["id"]) ? $_SESSION["id"] : NULL;
在你要进行任何操作之后,你可以检查这是否为空$userID
if(!empty($userID)){
//do something
}
请使用给定的代码检查您的会话是否为空
var_dump($_SESSION);
无论它对此的节目回复如何,我都会让你知道问题出在哪里。
评论
$_SESSION["id"]
,并且未设置$_SESSION["user"]
$_SESSION["password"]
$_SESSION