2014-03-01 66 views
0

我有一個看起來很簡單的問題,但讓我發瘋。PHP中的會話問題

我正在嘗試做一個登錄系統(註冊系統已準備就緒並且工作正常)。代碼如下:

<!-- This is the form --> 

<form role="form" action="login.php" method="POST"> 
    <div class="form-group"> 
     <label style="color: #3E4D97">Correo electrónico</label><label style="color: red;">*</label> 
     <input name="username" class="form-control login-input" placeholder="Ingrese su correo electrónico"> 
    </div> 
    <div class="form-group"> 
     <label style="color: #3E4D97">Contraseña</label><label style="color: red;">*</label> 
     <input name="userpassword" type="password" class="form-control login-input" id="exampleInputPassword1" placeholder="Ingrese su contraseña aquí"> 
    </div> 
    <div class="form-group text-center" style="margin-bottom: 0px;">  
     <button type="submit" class="btn btn-default btn-submit">Ingresar</button><br> 
     <span class="register-label"><a href>¿Olvidaste tu contraseña?</a></span><br> 
     <span class="register-label"><a href="/clickpc.com.ve/web/register.php">¿No eres usuario aún? Regístrate</a></span> 
    </div> 
</form> 

<!-- This is the verification script --> 

<?php 
if(isset($_POST["username"])){ 
    $user_name = $_POST["username"]; 
    $user_password = $_POST["userpassword"]; 
    if(empty($user_password)){ 
    echo "Ingrese su correo electrónico y contraseña"; 
    } 
    else{ 
    $query_result = mysql_query("SELECT email, password FROM customer WHERE email='".$user_name."'"); 
    $user_db = mysql_fetch_assoc($query_result); 
    if(empty($user_db) || $user_password != $user_db["password"]){ 
     echo "Usuario invalido"; 
    } 
    else{ 
     $_SESSION["log"] = "true"; 
     $_SESSION["user_name"] = $user_name; 
     header("Location: index.php"); 
    } 
    } 
} 
?> 

如果我打印的會話變量,數據顯示正確的,但在index.php文件,不會啓動($ _SESSION數組爲空)。

<?php 
session_start(); 

if(isset($_SESSION){ 
    $user_name = $_SESSION["user_name"]; 
} 
else{ 
    $user_name = "Invitado"; 
} 
?> 

問題在哪裏?會話數據不會發送到index.php

問候

+2

你在登錄頁面的頂部有'session_start()'? – ElefantPhace

+0

會話數據不是「隨便發送」的,它存儲在服務器上 - 這就是與普通cookie不同的地方。 –

+0

'session_start();'必須在每一頁的第一行!確保'session_start();'在第一行,你應該沒問題。在你的情況''<?php session_start();' – sourRaspberri

回答

1

必須包括session_start()功能在您的登錄頁面的第一功能。