我试图让我的用户的用户名回显,但只看到userID,或者如果我尝试回显用户名,它会给我字符串长度而不是实际名称。
我在我的会话脚本中调用我的标题,该标题包含在所有页面中:
<?
session_start();
session_regenerate_id();
$_SESSION['username']=$email;
include ('../db_con.php');
?>
在header.php文件中的我想回显用户名,但当我尝试显示长度而不是实际名称时,不是如上所述:
<?php echo $_SESSION['username'];
var_dump($_SESSION);
?>
会话从我的登录脚本开始:
<?
session_start();
if(isset($_SESSION['user'])){
header("Location:home.php");
exit;
}
$dbh=new PDO('mysql:dbname=dashboardr;host=localhost', '******', '******');/*Change The Credentials to connect to database.*/
$email=$_POST['username'];
$password=$_POST['pass'];
if(isset($_POST) && $email!='' && $password!=''){
$sql=$dbh->prepare("SELECT id,password,psalt FROM user_login WHERE username=?");
$sql->execute(array($email));
while($r=$sql->fetch()){
$p=$r['password'];
$p_salt=$r['psalt'];
$id=$r['id'];
}
$site_salt="subinsblogsalt"; /*Common Salt used for password storing on site. You can't change it. If you want to change it, change it when you register a user.*/
$salted_hash = hash('sha256',$password.$site_salt.$p_salt);
if($p==$salted_hash){
$_SESSION['user']=$id;
$_SESSION['username']=$email;
header("Location:home.php");
}else{
echo "<h2>Username/Password is Incorrect.</h2>";
}
}
?>
答案 0 :(得分:1)
您在以下位置未看到用户名的原因:
$_SESSION['username']
是因为你从未把它放在那里。
您需要将用户名分配给会话,如下所示:
$_SESSION['username']=$email;
然后您可以echo $_SESSION['username'];
在任何地方显示用户名。
确保在任何输出前使用session_start();
会话的任何页面。