Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将每个用户重定向到不同的页面_Php_Redirect_Login - Fatal编程技术网

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

Php 将每个用户重定向到不同的页面,php,redirect,login,Php,Redirect,Login,我正在为一个朋友创建一个摄影网站。它的一部分是一个客户端登录区,客户端可以输入我的朋友给他们的用户名和密码,以查看他们拍摄/婚礼等的所有照片 我已经创建了客户端登录表单和login.php: $user = mysql_real_escape_string($_POST["username"]); $pass = mysql_real_escape_string($_POST["password"]); $clientdata = mysql_query("SELECT * FROM User

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

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

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

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

switch ($user) {

应该可以解决您的问题。

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

一个快速的解决办法是更换线路

$pageId = 'MarieWeddingGallery.php';

这与重定向到登录页面时使用的技术相同

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

要基于数据库字段加载页面,应使用替换开关

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

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

您只需向数据库中再添加一个字段:即targetPage。而不是在PHP中使用开关。然后在同一行记录集上执行一个简单的重定向。@MichaelMitch我已将该字段添加到数据库中。很抱歉,我对这个很陌生,因为你可能可以通过我混乱的代码猜到!我需要添加什么代码才能重定向到数据库中列出的文件?我像建议的那样将字段命名为“targetPage”。
header('Location: ' . $data['targetPage']);