2014-02-25 3 views
0

최근에 양식 유효성 검사 및 로그인/등록을 다루기 시작했습니다. 하지만 기존 사용자와 비밀번호로 로그인 버튼을 클릭 할 때 동일한 페이지 (로그인 페이지)로 이동하거나 "로그인되었습니다."라는 메시지와 함께 시작 페이지에 문제가 있습니다. 어떻게해야할지 모르겠다.로그인 폼 및 등록 PHP

if (loggedin()) { 
     $firstname = getuserfield('firstname'); 
     $surname = getuserfield('surname'); 
     echo 'You\'re logged in, '.$firstname.' '.$surname.'. <a href="logout.php">Log  out </a><br>'; 
    } else { 
    include 'loginform.inc.php'; 

    } 

loginform.inc.php

if (isset($_POST['username'])&&isset($_POST['password'])) { 
    $username = $_POST['username']; 
    $password = $_POST['password']; 

    $password_hash = md5($password); 
    if (!empty($username)&&!empty($password)) { 
     $query = "SELECT `id` FROM `users` WHERE `username`='".mysql_real_escape_string($username)."' AND `password`='".mysql_real_escape_string($password_hash)."'"; 
     if ($query_run = mysql_query($query)) { 
      $query_num_rows = mysql_num_rows($query_run); 
      if ($query_num_rows==0) { 
      ?> <div id = "a5"> <?php echo 'No such combination of username and password' ?> </div>; <?php 
      } else if ($query_num_rows==1){ 
      $user_id = mysql_result($query_run, 0, 'id'); 
      $_SESSION['user_id']=$user_id; 

      header('Location: login.php'); 
      } 
      } 
    } else { 
?> <div id="a"> <?php echo 'Please enter username and password!' ?> </div> 
+0

사용자의 자격 증명을 확인한 후 왜 성공 페이지로 리디렉션하지 않습니까 ??? 성공 페이지에서 세션 설정 여부를 확인하십시오 !! – NoobEditor

답변

-1

는 방법 : 1

당신은을 포함 할 수 있습니다 나는, 다른 사람의 사이에서 두 PHP 파일, login.phploginform.inc.php 성공 후 login.php에 로그인하면

if (loggedin()) { 
     $firstname = getuserfield('firstname'); 
     $surname = getuserfield('surname'); 
     echo 'You\'re logged in, '.$firstname.' '.$surname.'. <a href="logout.php">Log  out </a><br>'; 
     include 'loginform.inc.php'; // include here after successfully login 
    } else { 
    include 'loginform.inc.php'; 

    } 

방법 : 2

당신이 loginform.inc.php에 세션 변수 및 전송 헤더에 성공 메시지를 저장할 수 있습니다. 그런 다음 loginform.inc.php 페이지에서 세션을 인쇄 할 수 있습니다.

login.php는 :

session_start(); 
if (loggedin()) { 
      $firstname = getuserfield('firstname'); 
      $surname = getuserfield('surname'); 
      $_SESSION['msg_text'] = 'You\'re logged in, '.$firstname.' '.$surname.'. <a href="logout.php">Log  out </a><br>'; // set a session variable 

       header("location:loginform.inc.php"); // transfer header on the loginform.inc.php page 
       exit; 

     } else { 
     include 'loginform.inc.php'; 

     } 
+0

이미 시도했지만, 작동하지 않습니다. – user2517370

0

좀 더 고급 로그인을 사용합니다. 사용 된 로그인 양식은 완벽하게 작동하며 이해하기 쉽고 작동하기 쉽습니다. 내가 사용한 로그인에 대해이 login form을 방문하십시오. 원한다면 OO로 변환하기도 쉽습니다.