0

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

我已经创建了客户端登录表单和 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');}

开关部分应该根据用户提供的用户名重定向用户,但它不起作用。有什么建议么?

4

2 回答 2

1

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

一个快速的解决方案是更换生产线

$pageId = 'MarieWeddingGallery.php';

header('Location: MarieWeddingGallery.php');

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

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

要基于数据库字段加载页面,您应该将开关替换为

header('Location: ' . $data['targetPage']);

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

于 2013-09-15T00:08:51.363 回答
0

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

switch ($user) {

应该可以解决您的问题。

于 2013-09-15T00:06:14.443 回答