簡體   English   中英

PHP會話回聲不再顯示?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM