2015-03-27 4 views
0

Я работаю над проверкой подлинности для имени и пароля моих школ. Школа имеет собственный скрипт для использования в форме POST. Он позволяет использовать некоторые скрытые входы с определенными именами для настройки, например, перенаправление страницы на успех. Однако у меня не может быть session_start() или любого из моих php-кода на этой странице, потому что после login.php страница входа в систему перенаправляется на страницу школ, а затем перенаправляется обратно на мой index.php. Значение post передается до index.php, но при обновлении страницы оно возвращается на страницу входа, потому что сеанс не сохраняется с значением post.PHP Session не принимается

Любая помощь по этому вопросу очень полезна.

Index.php

<?php 
session_start(); 
$_SESSION['username'] = $_POST['sid']; 
if(!isset($_SESSION['username'])){ 
header("Location: login.php"); 
} else { 
?> 
// HTML here 
<?php 
} 
?> 

login.php

<form action="authenticator.pl" name="form1" method="POST"> 
    // Using hidden inputs I specify which page to redirect to... These are specific hidden inputs that are accepted. 
</form> 

ответ

3

Если вы не отправляете данные на страницу index.php, следующая строка очистит значение сеанса имени пользователя.

$_SESSION['username'] = $_POST['sid']; 
+0

Итак, каково было бы решение этой проблемы? – user4244510

+0

Если переменная сеанса имени пользователя задается файлом login.php, вы можете полностью удалить эту строку. – Gadget

0

Вы должны включить sessions_start(); в верхней части каждого файла, в котором вам нужно проверить, если они вошли в систему .

Поместите инструкцию if в верхней части login.php, чтобы проверить, Ey're сеанс существует. Если это произойдет, перенаправите его на index.php.

В верхней части index.php проверить, если они вошли в систему, используя оператор if. Если они затем переходят к rest. index.php, если нет (else {}), то перенаправляйте их на login.php

Установите СЕССУЮ после запуска проверок и аутентификаций в скрипте login.php. Вы можете установить сеанс так:

$_SESSION['userid']  = $id; 
$_SESSION['username'] = $name; 
$_SESSION['userpass'] = $pass; 

Просто не забудьте добавить session_start(); в верхней части index.php и проверить, если они сеансы приравнивают к вошедшему пользователю.

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