[英]Undefined variable: _SESSION php login script
我是PHP的新手,並且在會話方面更是初學者。 我有index.php頁面,用戶可以在其中注冊和登錄。 表單分別發布到submit.php,用於注冊和登錄。
這是dashboard.php文件,我在其中顯示了用戶名和他登錄時使用的電子郵件地址。
<?php
session_start();
include "includes/config.php";
include "layouts/header.php";
$s_title = "Superior Results";
if(isset($_SESSION['id'])) {
$username = $_SESSION['username'];
$email = $_SESSION['email'];
$id = $_SESSION['id'];
} else {
header('Location: index.php');
die();
}
$sql = "SELECT email, username FROM members";
$result = mysqli_query($dbCon, $sql);
$row = mysqli_fetch_assoc($result);
?>
這就是我如何在dashboard.php文件中調用這些會話變量的方式
<?php echo $_SESSION['username'];?>
<?php echo $_SESSION['email'];?>
用戶名有效,但電子郵件不起作用,它顯示提示: 未定義索引:電子郵件
出現此錯誤的原因是您正在嘗試讀取不存在的數組鍵。 isset()
函數在那里,因此您可以對此進行測試。 無需進行空檢查,因為您永遠不會將null分配給元素:
// check that the 'email' key exists
if (isset($_SESSION['email'])) {
// it does; output the message
echo $_SESSION['email'];
// remove the key so we don't keep outputting the message
unset($_SESSION['email']);
}
好吧,僅出於您在下面的評論,我不確定我是否了解您的需求,但是您想執行以下操作:?
$username = $_POST['username'];
$sql = "SELECT email FROM users WHERE username = '$username'";
if(($result = mysqli_query($conn, $sql) != false){
if(($row = $result->fetch_assoc() !== null)){
$_SESSION['email'] = $row;
} else {
echo 'no rows in database';
}
} else {
echo 'You have an error in you mysql syntax';
}
//.. work with concrete user
用戶登錄后,需要設置會話變量
$sql = "SELECT email, username FROM members WHERE id = '".$confirmed login id from the login process."' ";
$result = mysqli_query($dbCon, $sql);
$row = mysqli_fetch_assoc($result);
$SESSION['id'] = $row['id'];
$SESSION['email'] = $row['email'];
$SESSION['username'] = $row['username'];
登錄后設置了這些會話變量后,即可在該會話的任何其他頁面上使用它們(第一行具有session_start())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.