2013-10-20 2 views
0

로 설정 $ _SESSION에 로그인 후 작동하지 않았다 (이것은에서 로그인 양식 index.php를 불렀다) :는 isset() 나는이 코드 부분이 loginform.php이 유효

include("config.php"); 
if(isset($_POST['submit'])) 
{ 
    $username = $_POST['username']; 
    $password = $_POST['password']; 

    if($username == "" || $password == "") 
    { 
     echo "Either username or password field is empty."; 
     echo "<br/>"; 
     echo "<a href='index.php'>Go back</a>"; 
    } 
    else 
    { 
     $result = mysql_query("select * from users where user_username='$username' and user_password='$password'",$conn) 
     or die("Could not execute the select query."); 

     $row = mysql_fetch_assoc($result); 

     if(is_array($row) && !empty($row)) 
     { 
      $validuser = $row['username']; 
      $_SESSION['valid'] = $validuser; 
     } 
     else 
     { 
      echo "Username and password do not match."; 
      echo "<br/>"; 
      echo "<a href='index.php'>Go back</a>"; 
     } 

     if(isset($_SESSION['valid'])) 
     { 
      header("Location:index.php?"); 
     } 
    } 
} 

이 코드를 사용하여 로그인 양식을

<?php 
if(isset($_SESSION['valid'])) 
{ 
    include("config.php"); 
    $result = mysql_query("select * from users",$conn); 
    echo "Welcome ".$_SESSION['valid']. "! <a href='logout.php'>Logout</a><br/>"; 
} 
else 
{ 
    require('./loginform.php'); 
} 
?> 

하지 :는 로그인 양식없이 다시 index.php를 보여 했어야 그 후하지만

index.php에 성공적으로 로그인 후 사용자를 표시하려면이 코드를했다 나타 났지만 대신 쇼가 아니 었어. 날개 아무것도. 그것은 로그인 한 사용자를 표시해야합니다. 내가 무엇을 놓쳤는 지 알지 못합니다. 나는 PHP에서 초보자. 도와주세요. 죄송 합니다만, 모든 파일에 세션이 시작되었다고 가정하십시오.

+0

올바른 색인을 확인 하시겠습니까? –

+4

[session_start()] (http://php.net/manual/en/function.session-start.php)를하고 계십니까? –

+0

'

답변

1

세션 변수가 있는지 확인하기 전에 session_start()을 추가해야합니다.

<?php 
session_start(); 
if(isset($_SESSION['valid'])) 
.... 

session_start() 세션을 생성하거나 현재 재개.

+0

죄송합니다. 각 파일에 이미 session_start가 있다고 가정하는 것을 잊었습니다. – DeadLuck

+1

@ user2467945'print_r ($ _ SESSION)'을 사용하여'isset' 전에 무엇이 들어 있는지 확인하십시오. –

+0

나는 선생님을 시험했지만 아무 일도 없었습니다. undestand 그것은 아무것도 보여주지 못했지만 그것이 올바른지 그것은 로그인 폼을 보여주지 못했고, 그냥 아무것도 보이지 않았다. – DeadLuck