2013-12-21 105 views
0

我有一個困難時期顯示用戶後,用戶的信息會話已登錄PDO:isset&不能正常顯示

這是我的index.php文件:

<?php 
require 'core/db/connect.php'; 

    if(isset($_SESSION['username'])){ 
     include 'includes/menu.php'; 
    } 
    else{ 
     echo '<a href="register.php">Register</a><br />'; 
     echo '<a href="login.php">Login</a><br />'; 
    } 
?> 

有關配置文件.php,只要我回應一些東西,它不回聲:

<?php 
if(isset($_SESSION['username'])){ 
    include 'core/db/connect.php'; 

    $username = $_SESSION['username']; 

    $query = dbConnect()->prepare("SELECT username FROM users WHERE username = :username"); 
    $query->execute(array(':username' => $username)); 
    $row = $query->fetch(); 

    echo 'Logged in as: ', $row['username']; 
} 

?> 

這是我的第一個腳本,很抱歉!

如果這會有所幫助,這裏是我的login.php:

<form method="POST"> 
<input type="text" name="username" placeholder="username"><br/> 
<input type="password" name="password" placeholder="password"><br /> 
<input type="submit"> 
</form> 

<?php 
    if(isset($_POST['username'], $_POST['password'])){ 
    require 'core/db/connect.php'; 

    $query = dbConnect()->prepare("SELECT username, password FROM users WHERE username = :username AND password = :password"); 
    $query->execute(array(
     ':username' => $_POST['username'], 
     ':password' => $_POST['password'] 
    )); 

    if($query){ 
     header('Location: index.php'); 
    } 
    else{ 
     echo 'Username or Password is wrong.'; 
    } 
} 
?> 
+2

你接着說:在session_start();'對你的PHP代碼頂部? –

+0

我已經添加了session_start();在connect.php文件 –

回答

1

之前,你在PHP中使用會話你必須調用session_start();

+0

的第一行,在html之前 –

0

在你的代碼中,你可以在connect.php中啓動session_start()。這意味着,您在會話開始之前閱讀$ _SESSION ['用戶名']。

要解決這個問題,您需要在讀取$ _SESSION變量之前調用session_start()。 嘗試從改變你的代碼:

<?php 
if(isset($_SESSION['username'])){ 
    include 'core/db/connect.php'; 

到:

<?php 

session_start(); 
if(isset($_SESSION['username'])){ 
    include 'core/db/connect.php';