[英]Php session echo not showing anymore?
我有這個php,它是一個登錄屏幕,然后轉到個人資料頁面,並且應該在其中回顯用戶。 屏幕上的用戶名和電子郵件。 在沒有任何更改之前,我一直在使用它,但是現在只打印出用戶名。
這是登錄php:
public function Login($username, $password){
if(!empty($username) && !empty($password)){
$stmt = $this->db->prepare("SELECT username, password, email FROM users WHERE BINARY username = ? AND BINARY password = ?");
$stmt->bindParam(1,$username);
$stmt->bindParam(2,$password);
$stmt->execute();
if($stmt->rowCount() == 1){
$_SESSION['username'] = $username;
$email = $stmt->fetchColumn(2);
$email = $_SESSION['email'];
header('Location: http://www.mywebsite.com/dev/profile.php');
}else{
echo "Incorrect username or password please try again.";
}
}else{
echo "Must type username or password.";
}
}
這是配置文件php:
<?php
session_start();
$username = $_SESSION["username"];
$email = $_SESSION["email"];
if(!$_SESSION["username"]){
header("Location: http://www.mywebsitelogin.com/dev/");
}
這就是即時通訊呼應的方式:
<?php echo '<h1>'.htmlentities($username).'</h1>'; ?>
<?php echo '<h3>'.htmlentities($email).'</h3>'; ?>
還有一個問題是,除了include_once()之外,還有一種更恆定的方式在php中包含文件。 因為刷新或進入頁面時,PHP代碼的那部分毫無原因地失敗了。
您沒有將電子郵件放入會話中。 您正在做相反的事情:
$email = $stmt->fetchColumn(2);
$email = $_SESSION['email'];
更改為:
$_SESSION['email'] = $stmt->fetchColumn(2);
也許它似乎以前可以工作,因為在調試過程中,您已經在會話中存儲了email變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.