2015-05-11 5 views
0

Я пытаюсь получить имя пользователя моих пользователей, чтобы вывести его из себя, но только увидеть идентификатор пользователя, или если я попытаюсь повторить имя пользователя, он даст мне длину строки, а не фактическое имя.

Я звоню в моей сессии сценария в мой заголовок, который включен на всех страницах:

<? 
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

У вас есть ключ 'user' и' username', также проблема в том, где он установлен - который вы не указали –

+0

вам необходимо заполнить код для извлечения из базы данных – akr

+0

, вы должны подтвердить, что ваше имя пользователя установлено и в каком ключе. остальное в файле заголовка сначала напишите session_start, затем остальную часть кода. Также ваша часть запроса также не завершена. –

ответ

1

причине вы не видите имя пользователя в:

$_SESSION['username']

, потому что вы никогда не положил его туда.

вам нужно присвоить имя пользователя к сеансу следующим образом:

$_SESSION['username']=$email;

вы можете echo $_SESSION['username']; где вы хотите отображается имя пользователя.

убедитесь, что на любой странице, которую вы используете, у вас есть session_start(); перед любым выходом.

+0

Я действительно изо всех сил пытаюсь показать это – PhpDude

+0

не уверен, как сделать его более ясным. –

+0

Нет, в этом случае скрипт должен возвращать ошибку о некорректном индексе! @Dagon – SaidbakR

Смежные вопросы