2015-07-07 4 views
-1

В настоящее время я работаю на 2 php-страницах. страницу входа в систему и страницу портала клиента (login.php и portal.php).Перенаправление на страницу входа в php

У моего login.php есть ФОРМА action="portal.php". Поэтому, очевидно, когда учетные данные пользователя будут проверены, он перейдет на страницу portal.php.

Однако, если пользователь будет вводить непосредственно URL для portal.php, страница будет отображаться следующее:

Примечание: Undefined индекс: USER в C: \ XAMPP \ HTDOCS \ ECMS \ портала. PHP на линии 10 Примечание: Undefined индекс: PASS в C: \ XAMPP \ HTDOCS \ ECMS \ portal.php на линии 10

есть ли способ, где я могу автоматически перенаправить страницу login.php, вместо отображения этих ошибок - если они еще не вошли в систему?

Спасибо!

+0

Пожалуйста, сначала прочитайте книгу о php, чтобы понять, что вы делаете. –

ответ

0

В portal.php странице, проверьте, если запрос POST или нет, как

if($_SERVER['REQUEST_METHOD'] == 'POST' || $_SERVER['REQUEST_METHOD'] == 'post') { 
    // do your stuff 
} 
else{ 
    // redirect user to login page, if directly hit the page 
    header('location:login.php'); 
} 

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

+0

большое спасибо – Kimsoyens

+0

@ Kimsoyens, я рад, что это вам поможет .. – SHAZ

0

сеансовые при входе в систему и проверить следующим образом на вершине portal.php

session_start(); 
if($_SESSION['user_name'] =="" && $_POST['USER']=='') 
{ 
header("location:index.php"); 
} 
+0

Из вопроса Kimsoyens ясно, что учетные данные для входа будут проверены на портале.php (хотя это плохое решение сделать это). Сессия будет установлена ​​только после этой проверки. Так что это не поможет. –

+0

большое спасибо – Kimsoyens

0

Просто добавьте подтверждение в ваш portal.php. Проверьте, подключен ли кто-то, например, mysqli_num_rows, который подсчитывает количество возвращенных строк. Поэтому проверить, если есть строки не вернулся:

if (mysqli_num_rows(mysqli_query($db,"Select User from table WHERE Something like '".User."'")) == 0) 
{ 
// there is no user connected, so redirect him to the login.php 
} else { 
// What to do if the user is connected 
} 
0

В начале portal.php, аутентификации и проверки, если пост переменная задана и не пусто. Если одна из требований не fullfilled, перенаправлять login.php страница

if($_POST['username'] && $_POST['password'] matched with stored username & 
password AND !ISSET AND EMPTY) 
{  
    header("location:login.php"); 
} 

Таким образом, и будет достичь двух целей: аутентификации и перенаправление.

Если вы хотите сохранить имя пользователя и пароль на нескольких страницах, сохраните переменную POST в переменной SESSION. Вы можете прочитать о СЕССИИ здесь http://www.w3schools.com/php/php_sessions.asp

Смежные вопросы