用户登录后,会将其重定向到其个人资料页面。在该个人资料页面中,他们将能够看到他们的用户名,以及与该帐户相关联的电子邮件,如果其他人访问他们的个人资料,他们就可以看到该联系信息。
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>'; ?>
这就是我打印会话的方式,就像我之前所说的那样,只有用户名被打印出来我才有想法,我做错了什么?
答案 0 :(得分:0)
在你的php代码中启动php会话
<?php session_start(); ?>
然后在会话数组中设置值。
答案 1 :(得分:0)
您可以这样打印会话变量 -
<?php
session_start();
$NAME=$_SESSION['l_id'];
echo "Name is ".$NAME;
?>
答案 2 :(得分:0)
问题可能出在fetchColumn方法的参数中。试试这个:
$email = $stmt->fetchColumn(2);