用戶登錄後,他們被重定向到他們的個人資料頁面。在該個人資料頁面中,他們將能夠看到他們的用戶名,並在該屏幕上打印出與該帳戶相關聯的電子郵件,因此如果其他人訪問他們的個人資料,他們可以看到聯繫信息。如何打印從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(4);
$_SESSION["email"] = $email;
header('Location: http://www.mywebsite.com/dev/profile.php');
}else{
echo "Incorrect username or password please try again.";
}
}else{
echo "Must type a username and password to login.";
}
}
}//End of login function
這是不登錄的功能,它應該設置課程,現在實際上只在用戶名會話在配置文件被打印出來,電子郵件不顯示。
<?php echo '<h1>'.htmlentities($_SESSION["username"]).'</h1>'; ?>
<?php echo '<h1>'.htmlentities($_SESSION["email"]).'</h1>'; ?>
這是怎麼了打印會話,就像我只能是越來越打印的用戶名,我的想法之前說的,我究竟做錯了什麼?在你的PHP代碼
<?php session_start(); ?>
然後
這樣做的伎倆,但怎麼回事?我把4,因爲我認爲你必須計算我的數據庫中的列數和電子郵件碰巧是4. – phpnoob
fetchColumn參數是在您的查詢中寫入的字段的順序,而不是數據庫的列的順序。就我個人而言,我認爲將這種方法用於多個領域是一個糟糕的主意。 –