Я немного изучаю PHP, и по большей части все идет очень легко.Единственное, на чем я зациклен - это заставляю сессии работать.Google безжалостен в этом начинании.
Это может быть одной из двух причин;синтаксис или мое программное обеспечение.В настоящее время я создаю локальный веб-сайт с помощью EasyPHP 5.3.5.0 на компьютере, который не подключен к Интернету.Подключение его к интернету не вариант.
В настоящее время я знаю о сессиях, что многие синтаксисы, связанные с ними, устарели, заменены суперглобальным массивом $_SESSION
, который намного проще в использовании.start_session();
должно быть перед любым синтаксисом, относящимся к сеансам.Тем не менее, мой сценарий входа не устанавливает сеанс, так как быстрый !isset ($_SESSION['username'])
всегда возвращает true.
Мой сценарий настроен так:
PHP include для login.php, которыйэто форма.check_login.php - это то, что проверяет его, и если запрос возвращает одну строку, он перенаправляет на login_success.php, который устанавливает сеанс, выдает приветственное сообщение, а затем перенаправляет (используя JavaScript) на домашнюю страницу.
Любойидеи?
ПРАВКА, чтобы включить дополнительную информацию:
Вот краткий обзор моего кода:
index.php:
include 'main_login.php';
main_login.php:
if(!isset ($_SESSION['username'])){
...
Login form, action="cehcklogin.php" method="post"
...
}else{
var_dump ($_SESSION): // Just to see if it works
}
checklogin.php:
Connect to SQL
$username = $_POST['username'];
$password = $_POST['password'];
$username / $password stripslashes / mysql_real_escape_string
Query to find the username & password
$count = mysql_num_rows($result);
if($count = 1){
$_SESSION["username"] = $username;
$_SESSION["password"] = $password;
header("location:login_success.php");
}else{
echo "Wrong Username or Password."
}
login_success.php:
Процесс входа в систему проходит здесь до конца, перенаправляет домой, и вот гдепроблема в том.
session_start();
var_dump($_SESSION); //This works
if(!isset ($_SESSION['username'])){
header("location:index.php");
}
Javascript redirect, and a welcome message appears.
Все работает, пока вы не попадете на домашнюю страницу, которая должна быть установлена $_SESSION['username']
, и не должна отображать форму, но это так.