我有我的索引.php页面,用户可以在其中注册和登录会话。
这是我得到的错误:
注意:未定义的索引:用户名在 C:''wamp''www''CMS''admin''index.php 第 18 行。
我的代码有什么问题?
index.php
的简短片段:
源代码:
<?php include "includes/admin_header.php" ?>
<div id="wrapper">
<!-- Navigation -->
<?php include "includes/admin_navigation.php" ?>
<div id="page-wrapper">
<div class="container-fluid">
<!-- Page Heading -->
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">
Welcome To Admin
<small><?php echo $_SESSION['username'] ?></small>
</h1>
</div>
</div>
这是我的登录名.php
源代码:
<?php include "db.php"; ?>
<?php session_start(); ?>
<?php
if (isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
// For login security
$username = mysqli_real_escape_string($connection, $username);
$password = mysqli_real_escape_string($connection, $password);
$query = "SELECT * FROM users WHERE username = '{$username}' ";
$select_user_query = mysqli_query($connection, $query);
if(!$select_user_query){
die("QUERY FAILED: " . mysqli_error($connection));
}
while($row = mysqli_fetch_array($select_user_query)) {
$db_user_id = $row['user_id'];
$db_username = $row['username'];
$db_user_password = $row['user_password'];
$db_user_firstname = $row['user_firstname'];
$db_user_lastname = $row['user_lastname'];
$db_user_role = $row['user_role'];
}
if ($username !== $db_username && $password !== $db_user_password) {
header("Location: ../index.php");
} else if($username === $db_username &&
$password === $db_user_password) {
$_SESSION['username'] = $db_username;
$_SESSION['firstname'] = $db_user_firstname;
$_SESSION['lastname'] = $db_user_lastname;
$_SESSION['user_role'] = $db_user_role;
header("Location: ../admin");
}
else {
header("Location: ../index.php");
}
}
?>
在 PHP 脚本的第一行,写下以下内容:
if (session_status !== PHP_SESSION_ACTIVE) {
session_start();
}
出于调试目的,请添加
var_dump($_SESSION);
在 if { } 块之后。您还必须确保会话存在于要使用的每个文件中。为了简化过程,我给你一个简短的例子:
- 你创建一个头.php文件,你从上面放置 if {} 块。
每当要在脚本中使用会话时,只需将该头文件包含在脚本的第一行即可。
//标头.phpif (session_status !== PHP_SESSION_ACTIVE) { session_start();}
//索引.php包括"标题.php";回显 $_SESSION["用户名"];
登录.php包括"标题.php";$_SESSION['用户名'] = 'John Doe';