如何创建用户特定的登录重定向

时间:2012-02-11 23:20:57

标签: php redirect login

我正在尝试为我的网站构建一个登录页面。我已设法使用简单的用户名和密码列创建数据库。并使用Dreamweaver创建登录表单。我的问题是我希望用户根据他们的身份重定向到不同的页面。示例:如果Bob(用户名:bob123)登录,我希望将其重定向到第x页,但如果Joe(用户名:joe123)登录,我希望将其重定向到第y页。 Dreamweaver只允许我指定一个页面。

是否有人知道根据用户名在数据库中重定向用户的任何代码。

我的HTML和CSS技能很不错,但在这类事情上我几乎一无所知。任何帮助将不胜感激。

谢谢!

这是我到目前为止的PHP代码(它是由Dreamweaver制作的,而不是我)。

<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['username'])) {
  $loginUsername=$_POST['username'];
  $password=$_POST['password'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "http://------------";
  $MM_redirectLoginFailed = "http://-------------";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_-------------, $---------);

  $LoginRS__query=sprintf("SELECT Username, Password FROM userdatabase WHERE Username=%s AND Password=%s",
    GetSQLValueString($loginUsername, "int"), GetSQLValueString($password, "int")); 

  $LoginRS = mysql_query($LoginRS__query, $----------------) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
 $loginStrGroup = "";

    if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;       

if (isset($_SESSION['PrevUrl']) && false) {
  $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];  
}
header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
header("Location: ". $MM_redirectLoginFailed );
  }
}
?>

2 个答案:

答案 0 :(得分:3)

在PHP中,您通过发送包含新位置的标题重定向到另一个页面:

header("Location: http://www.example.com");

一个简单但不太可扩展的解决方案是替换:

header("Location: " . $MM_redirectLoginSuccess );

使用:

if ($loginUsername === 'bob123') {
    header("Location: http://www.example.com/bobs_page.html");
} else if ($loginUsername === 'joe123') {
    header("Location: http://www.example.com/joes_page.html");
} else {
    header("Location: " . $MM_redirectLoginSuccess );
}

答案 1 :(得分:1)

好吧,我没有使用DreamWeaver(我确实已将它安装在我的盒子上,因为它附带了CS5 Web Premium ......从来没有一次解决它),但我的建议是将每个用户的首选登录页面存储在您的数据库,从数据库中获取值,并相应地更改$ MM_redirectLoginSuccess。

这需要一些PHP和MySQL的知识。没有时间像现在这样学习:P