我正在为朋友创建一个摄影网站。部分是客户登录区域,客户可以输入我的朋友给他们的用户名和密码,以查看拍摄/婚礼等所有照片。
我创建了客户端登录表单和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');}
交换机部分应该根据用户提供的用户名重定向用户,但不起作用。有什么建议吗?
答案 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) {
应该解决你的问题。