将每个用户重定向到不同的页面

时间:2013-09-14 23:58:19

标签: php redirect login username

我正在为朋友创建一个摄影网站。部分是客户登录区域,客户可以输入我的朋友给他们的用户名和密码,以查看拍摄/婚礼等所有照片。

我创建了客户端登录表单和login.php:

$user = mysql_real_escape_string($_POST["username"]);
$pass = mysql_real_escape_string($_POST["password"]);

$clientdata = mysql_query("SELECT * FROM Users WHERE username='$user' and     password='$pass'")
     or die (mysql_error());


$data = mysql_fetch_array($clientdata, MYSQL_ASSOC);


if(mysql_num_rows($clientdata) == 1){

    session_start();

    $_SESSION['username'] = $user;

    $username = $hook->getValue('username');

    $pageId = 'index';

    switch ($username) {
      case 'Marie&Peter':
              $pageId = 'MarieWeddingGallery.php';
              break;
    }

$landingPage = $modx->makeUrl($pageId, "", "", 'full');
$modx->sendRedirect($landingPage);

}else{header('Location: clientLogin.html');}

交换机部分应该根据用户提供的用户名重定向用户,但不起作用。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

首先,要完全回答这个问题,我们需要知道$ modx是什么。看来问题出在$ modx-> makeUrl()或$ modx-> sendRedirect()。

快速解决方案是替换

$pageId = 'MarieWeddingGallery.php';

header('Location: MarieWeddingGallery.php');

这与您用于重定向到登录页面的技术相同。

最后,使用开关根据用户名加载页面不是一个好方法。每个新用户都会要求您添加代码以支持它们。您应该为数据库中的库页面添加一个字段。也可以使用其他技术。

要根据数据库字段加载页面,您应该用

替换开关
header('Location: ' . $data['targetPage']);

这要求数据库中的targetPage字段包含php文件的全名(例如'MarieWeddingGallery.php')。

答案 1 :(得分:0)

为什么你从$ hook获得$ username?您已在变量$ user中拥有用户名。

switch ($user) {

应该解决你的问题。