2012-07-01 43 views
0

此登錄腳本有什麼問題?我有一個模式樣式的iframe登錄框,這是/login.php,我有一個/index.php會話無法在一個PHP頁面上工作

登錄後,login.php重定向到index.php,但我沒有看到用戶名。只是Hello Guest。當我嘗試登錄時說you, username, are already logged in

的login.php:

<?php session_start(); require_once('connections/Main.php'); 

if(isset($_SESSION['username'])) { 

    echo '<div class="error_message">Attention! You, '.$_SESSION['username'].' are already logged in.</div>'; 
    echo "<br />"; 
    echo "Go <a href='javascript:history.go(-1)'>back</a> to the page you were viewing before this.</li>"; 

    exit(); 
} 
?> 

的index.php:

<?php session_start(); 
    require_once('connections/Main.php'); 
    ?> 

<div> Hello <?php if(isset($_SESSION['username'])) { 
      echo $_SESSION['username']; } 
        else{ echo 'Guest'; } ?></div> 
+0

它不重定向回來,它說'回到歷史'。很多瀏覽器緩存DOM,並且返回不會導致服務器上發出新的請求。如果你鏈接到'/ index.php'而不是那個javascript的thingamayig,你會得到想要的行爲嗎? – Wrikken

+0

是的,它將iframe重定向到index.php,並顯示正確的用戶名,但我怎樣才能使主頁面重定向 – kezi

+0

如果你在'frame'(brrr)中,可以設置'target =「top」',或者可能'的onclick = 「window.top.location.reload(真)」'。 – Wrikken

回答

-2

與此啓動會話。

$_SESSION["im_going_in"]=true; 
$_SESSION["username"]=$username;//get data from db. 

的index.php

<?php 
if($_SESSION["im_going_in"]) { 
?> 

    <?=strtoupper($_SESSION["username"])?>// welcome dear bla bla... 

<? 
} 
?> 
+2

我真的很驚訝這工作大聲笑 – kezi

0

要調用session_start()兩次,這是不必要的。一旦你登錄,有一個會話變量logged_in設置true。然後使用

if($_SESSION['logged_in']){ 
//Do what you want for the logged in user 
} 

說實話,你可以在一個單一的login.php中完成這一切。有這樣的事情:

//if reached from login form 
if ($_POST['email']){ 
    //validate the user 
    // if validates, log him in by: 
    $_SESSION['logged_in'] = true; 
    $_SESSION['email']= $_POST['email']; 
    //do other fancy database save stuff 
} 
//else show him login form 
else{ 
    <form> 
    //<input />.. etc 
    </form> 
} 
相關問題