2015-11-14 5 views
-1

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

session_start(); 
if(!$_SESSION['user']) { 

header("location: login.php"); 
} 
$conn = mysql_connect("localhost","root",""); 
mysql_select_db("dbname",$conn); 
$query = " 
    SELECT 
     id, 
     username, 
     firstname, 
     surname, 
     address1 
    FROM users 
    WHERE user = '".$_SESSION['user']['username']['firstname']['surname'] 
    ['address1']."' 
    "; 
    ?> 

    <label for="usermail">User Email</label> 
    <h7><?php echo $_SESSION['user']; ?></h7> 
    <label for="line2">Line 2</label> 
    <h7><?php echo $_SESSION['address1']; ?></h7> 

login.php файл:

session_start(); 
if($_SESSION['user']!=''){header("Location:welcome.php");} 
$dbh=new PDO('mysql:dbname='';localhost', 'root', ''); 

$email=$_POST['mail']; 
$password=$_POST['pass']; 
if(isset($_POST) && $email!='' && $password!=''){ 
    $sql=$dbh->prepare("SELECT id,password,psalt FROM users WHERE 
    username=?"); 
    $sql->execute(array($email)); 
    while($r=$sql->fetch()){ 
     $p=$r['password']; 
     $p_salt=$r['psalt']; 
     $id=$r['id']; 
    } 
    $site_salt="salt1";/ 
    $salted_hash = hash('sha256',$password.$site_salt.$p_salt); 
    if($p==$salted_hash){ 
     $_SESSION['user']=$id; 
     header("Location:welcome.php"); 
    }else{ 
     echo "Username OR Password is Incorrect..."; 
    } 
} 
+0

все пользовательские детали я имею в виду детали зарегистрированного пользователя только – Assy

+1

где вы задающие $ _SESSION [» user '], показать, что код –

+0

thats, потому что в вашем коде '$ _SESSION [' user ']' является массивом и вы не можете использовать эхо-массивы. – CodeGodie

ответ

0

Я предлагаю не усложнять, когда это может быть сделано в очень простом запросе. Welcome.php страница

<?php 
session_start(); 
if($_SESSION['user']){ 
$userid = $_SESSION['user']; 
}else{ 
//your redirection; 
} 
$conn = mysql_connect("localhost","root",""); 
mysql_select_db("dbname",$conn); 
$query = ("SELECT * FROM users WHERE id = '$userid'"); 
?> 

<label for="usermail">User Email</label> 
<h7><?php echo $query['yourcolumnname']; ?></h7> 

<label for="line2">Line 2</label> 
<h7><?php echo $query['yourcolumnname']; ?></h7> 
...... 

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

"SELECT * FROM user 
where id = '$userid' 
AND useremail = '$useremail' 
AND.........") 
+0

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

+0

отредактирован для соответствия login.php $ _SESSION ['user'], поскольку переменная сеанса задается с помощью столбца [id] –

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