2012-07-01 3 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' 링크를 자바 스크립트 thingamayig 대신 링크하면 원하는 동작을 얻으실 수 있습니까? – Wrikken

+0

예 iframe을 index.php로 리디렉션하고 정확한 사용자 이름을 표시하지만 메인 페이지를 리다이렉션 할 수있는 방법 – kezi

+0

'frame' (brrr)에있는 경우'target = "top"'또는 'onclick = "window.top.location.reload (true)"'. – 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

나는 정말이 일한 LOL 놀랐어요. – kezi

0

당신은 필요하다, 두 번 session_start()을 요구하고있다. 그리고 일단 로그인하면 세션 변수 logged_intrue으로 설정하십시오. 그런 다음 사용하십시오

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> 
} 
관련 문제