php-login выбрать страницу после входа в систему

Я использую минимальную версию php-login из: http://www.php-login.net/ в Windows 7. Когда пользователь входит в систему, логин проверяется, а ответ проверки — True или False. Ответ возвращается в index.php, который имеет этот код

if ($login->isUserLoggedIn() == true) {
include("views/logged_in.php");

Я хотел бы дать пользователю возможность выбрать, на какую страницу он перейдет после входа в систему, но эта страница может быть доступна только тогда, когда пользователь вошел в систему. Есть идеи? Дайте мне знать, если вам нужна дополнительная информация или если то, что я пытаюсь сделать, неясно. Спасибо

======= ОБНОВЛЕНО НИЖЕ ========================== Я изменил приведенный ниже код, чтобы, если проверка входа пользователя возвращает true, пользователь перенаправляется на страницу с этими двумя ссылками <a href="views/logged_in_green.php">Green</a> <a href="views/logged_in_blue.php">Blue</a> когда пользователь щелкает ссылку, пользователь получает сообщение об ошибке "Доступ запрещен".

if ($login->isUserLoggedIn() == true) {
    include("views/choose-pages.htm");
} else {
    include("views/not_logged_in.php");
}

person user1218122    schedule 02.12.2014    source источник
comment
Включите другую страницу, а не logged_in.php, или переделайте logged_in.php, где у пользователя есть форма, и он может выбрать, куда перейти. Обработайте это и перенаправьте.   -  person vaso123    schedule 02.12.2014
comment
if ($login->isUserLoggedIn() == true) { уже убедился в этом. Включите другие страницы или создайте несколько hrefs   -  person Daan    schedule 02.12.2014
comment
Я не уверен, что понимаю основной процесс того, как страница включения становится ограниченной, ну, я понимаю, как эта страница имеет ограниченный доступ, но если я представляю форму со ссылками на другие страницы и представляю вошедшему в систему пользователю массив ссылок на различные страницы, например, показать ссылки на blue.php и green.php, эти две страницы php не будут ограничены только зарегистрированными пользователями, потому что они не проходят проверку входа в систему. По крайней мере, так они работают, насколько я понимаю процесс.   -  person user1218122    schedule 02.12.2014


Ответы (3)


Вы можете изменить not_logged_in.php и иметь 2 кнопки отправки, такие как Google, обычный «Поиск Google» и «Мне повезет».

 <input type="submit" name="login" value="Log in green" />
 <input type="submit" name="login" value="Log in blue" />

затем измените index.php

if ($login->isUserLoggedIn() == true) {

if ($_POST["login"] == "Log in green") {
include("green.php");
} else {
include("blue.php");
}

}
person user3173104    schedule 02.12.2014
comment
Мне нравится этот подход, у меня есть истинный ответ от проверки входа в систему, но откуда я могу получить ответ ($_POST[login]? Есть ли способ получить больше, чем просто True/False от проверки входа в систему? Я мог бы использовать отдельные страницы входа, такие как login-green.php и login-blue.php, и поместите переменную или что-то в эту страницу, но я не знаю, как передать это вместе с True / False. - person user1218122; 02.12.2014
comment
Просто создайте 2 кнопки отправки с одинаковыми именами и разными значениями в not_logged_in.php или на странице пользовательской формы входа. - person user3173104; 02.12.2014
comment
Я пробовал это, когда пользователь входит в систему, он переходит к проверке и возвращает true в index.php. Даже если это разные кнопки, возвращаемый результат является истинным, например, он не возвращает истинный зеленый цвет, который можно использовать для определения того, какая кнопка была нажата. Он возвращает только ответ о том, что логин действителен. Возможно, php-login нельзя изменить для этой цели. Может быть, мне нужно использовать другой сценарий регистрации и входа в систему? - person user1218122; 02.12.2014
comment
Отлично работает на phptesting.orgfree.com/index.php, войдите в систему с именем пользователя test и паролем 123456. - person user3173104; 03.12.2014
comment
Большое спасибо за отличный пример. Извините за задержку с ответом. Я только что внес изменения, которые вы рекомендовали, и это работает отлично. Я очень, очень ценю вашу помощь и советы, а также вашу настойчивость в том, чтобы помочь мне понять это. Спасибо за пример. - person user1218122; 03.12.2014

Ну попробуйте создать главную страницу (main.php), в этой странице написать код выбора страницы, это просто!!

if ($login->isUserLoggedIn() == true) {
include("views/main.php");
}
person Ahmad MOUSSA    schedule 02.12.2014
comment
Пожалуйста, поправьте меня, если я ошибаюсь, но насколько я понимаю, если я включу views/main.php и на этой странице есть ссылки на green.php и blue.php, эти две страницы php будут доступны независимо от того, вошел ли пользователь в систему? main.php доступен только для вошедшего в систему пользователя, но нельзя ли ограничить доступ к страницам, связанным с main.php? Это правильно? - person user1218122; 02.12.2014
comment
Успокойся, народ, пользователь не может получить доступ ни к одной странице, не войдя в систему правильно !! - person Ahmad MOUSSA; 02.12.2014

Вы можете сначала сохранить имена/ссылки страниц в базе данных mysql, а затем получить ссылки/имена страниц из базы данных mysql в массиве и поместить их сразу после кода, который будет выполнен после входа пользователей в систему. Вот так:

if ($login->isUserLoggedIn() == true) {
///Your array of pages here ///

РЕДАКТИРОВАТЬ:

Основываясь на вашем комментарии, вы можете сделать это:

if ($login->isUserLoggedIn() == false) {
header(location someotherpage.php)

Вы можете поместить этот код в blue.php, green.php и т.д.

Второе редактирование:

Надеюсь, я правильно понял, и если да, то вы можете использовать что-то вроде этого:

if ($login->isUserLoggedIn() == false) {
echo "access denied";

вы даже можете заполнить имена страниц и ссылки в виде раскрывающегося меню, чтобы пользователи могли выбрать одну из них и перейти на эту страницу.

person user3806613    schedule 02.12.2014
comment
Если я представлю вошедшему в систему пользователю массив ссылок на различные страницы, например, покажу ссылки на blue.php и green.php, эти две php-страницы не будут ограничены вошедшими пользователями только потому, что они не проходят через проверка входа. По крайней мере, так они работают, насколько я понимаю процесс. - person user1218122; 02.12.2014
comment
Спасибо, я ценю помощь. Код ниже был бы полезен, если бы я хотел, чтобы пользователь, который не вошел в систему, перешел на определенную страницу. Тем не менее, мне все еще нужно дать пользователю, который вошел в систему, возможность выбрать, на какой странице. Я пробовал: include(views/choose-pages.htm); и когда вошедший в систему пользователь щелкает ссылку на Choose-pages.htm, он получает сообщение об ошибке Access Forbidden. if ($login-›isUserLoggedIn() == false) { header(location someotherpage.php) - person user1218122; 02.12.2014