2014-02-25 161 views
0

我最近开始处理表单验证和登录/注册。但是,我遇到了一个问题,当我单击具有现有用户名和密码的登录按钮时,我想要转到同一页面(登录页面)或起始页面,并显示消息:“您已成功登录”。我不知道该怎么做。我有除其他外,两个PHP文件,的login.php登录表单和注册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

可以包括loginform.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我使用的登录名。如果您愿意,也可以轻松转换为面向对象。