Как создать пользовательское перенаправление входа в систему - PullRequest
0 голосов
/ 12 февраля 2012

Я пытаюсь создать страницу входа для моего сайта.Мне удалось создать базу данных с простым столбцом имени пользователя и пароля.И использовали Dreamweaver для создания формы входа.Моя проблема в том, что я хочу, чтобы пользователи перенаправлялись на разные страницы в зависимости от того, кто они есть.Пример: если Боб (имя пользователя: bob123) входит в систему, я хочу, чтобы он был перенаправлен на страницу x, но если Джо (имя пользователя: 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 ]

3 голосов
/ 12 февраля 2012

В 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 голос
/ 12 февраля 2012

Ну, я не использую DreamWeaver (у меня он установлен на моем устройстве, так как он поставляется с CS5 Web Premium ... ни разу не запускал его), но я предлагаю сохранить предпочитаемую страницу входа каждого пользователя вашей базы данных, получите значение из базы данных и соответственно измените $ MM_redirectLoginSuccess.

Это потребует некоторых знаний PHP и MySQL. Нет времени, как настоящее учиться: P

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...