2016-05-12 131 views
0

后,我有下面的代码:重定向到相同的URL登录

<?php 
require_once('includes/dbcon.php'); 

//Start the session 
session_start(); 

//Clear the error message 
$error_msg = ""; 
$x=""; 
$role_booking = trim("booking"); 
$role_admin = trim("admin"); 
if(!isset($_SESSION['username']) && !isset($_SESSION['role'])) 
{ 
    if (isset($_POST['submit'])) 
    { 
     //Connect to database 

     $dbc = mysqli_connect(SRKBS_SERVER, SRKBS_USER, SRKBS_PWD, SRKBS_DB) or die('error connecting to db : ' . mysqli_connect_error()); 
     $user_username = mysqli_real_escape_string($dbc, trim($_POST['txtUserName'])); 
     $user_password = mysqli_real_escape_string($dbc, trim($_POST['txtPassword'])); 
     $user_role = mysqli_real_escape_string($dbc, trim($_POST['domain'])); 


     if(!empty($user_username) && !empty($user_password) && !empty($user_role)) 
     { 
      $query = "Select username, password, role from users where username = '$user_username' and password = SHA('$user_password') and role = '$user_role'"; 

      $data = mysqli_query($dbc, $query); 

      if(mysqli_num_rows($data) == 1) 
      { 
       $row = mysqli_fetch_array($data); 
       $_SESSION['username'] = $row['username']; 
       $_SESSION['role'] = $row['role']; 

       if($_SESSION['role'] == $role_booking) 
       { 
        $home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . 'Booking/'; 
        header('Location: ' . $home_url); 
       } 

       elseif($_SESSION['role'] == $role_admin) 
       { 
        $home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . 'Admin/'; 
        header('Location: ' . $home_url); 
       } 
       else 
       { 
        $home_url = 'http://' . $_SERVER['HTTP_HOST']; 
        header('Location: ' . $home_url); 
       } 

      } 
      else 
      { 
       $error_msg = "Invalid Credentials."; 
       $x=1; 
      } 
      mysqli_close($dbc); 
     } 
     else 
     { 
      $error_msg = "Login Credentials cannot be empty!"; 
      $x=1; 
     } 
    } 
} 

>

上面的代码是主页登录屏幕的应用程序的一部分?发生了什么是,登录后我被扔回主页,而不是被重定向基于角色

请指教。提前致谢。

+0

将值赋给'$ _SESSION ['role']'的位置? –

+0

使用$ _SERVER [“HTTP_REFERER”]; –

+0

$ _SERVER [“HTTP_REFERER”]不可靠:http://stackoverflow.com/questions/12369615/serverhttp-referer-missing。假设用户来自特定于角色的主页的登录页面,我们知道他们没有登录页面,因为他们提交了登录页面的表单。 – UberDoodles

回答

0

看来我必须添加一个.htaccess文件来启用seo友好的子文件夹访问。我尝试使用PHP重定向。它不适用于我的托管服务提供商。

-1

u可以使用2方法:

  1. 用头(位置:....);在PHP
  2. 使用的.htaccess重定向301

,但如果你要创建的用户友好的网址,该网址的语法如www.mydomain.com/a/b/c并把它...在标题位置。