Var.$ Logged определен в global.php, а не index.php
Я пытался следовать вместе с учебником на канале YouTube
когда я столкнулся с несколькими проблемами. Во-первых, его код выхода из урока № 5 больше не работает из-за изменения
if(session_is_registered()
Я думаю, что заменил это должным образом
if( isset($_SESSION[$username])){
Но теперь я получаю сообщение об ошибке "Примечание: неопределенная переменная: вошел в C:\xampp\htdocs\members \index.php в строке 2"
Когда я проверяю строку 2 индекса, это показывает, что я в первую очередь включаю global.php
<?php include_once('scripts/global.php');
if($logged==1){
header("Location:home.php");
exit();
}
?>
Затем я проверяю global.php, у которого $logged=1, так что он должен быть определен... если я не пропустил что-то. Я действительно пытаюсь узнать больше здесь, поэтому любая помощь будет полезна в объяснении, что не так и почему.... Спасибо.
<?php
session_start();
include_once('scripts/connect.php');
//checking if the sessions are set
if(isset($_SESSION['username'])){
$session_username=$_SESSION['username'];
$session_pass=$_SESSION['pass'];
$session_id=$_SESSION['id'];
//checking the member data
$query=mysql_query("SELECT * FROM members WHERE
id='id' AND password='pass' LIMIT 1")or die("Could not check member");
$count_count=mysql_num_rows($query);
if(count_count>0){
//logged in stuff here
$logged=1;
}else{
header('Location:logout.php');
exit();
}
}elseif(isset($_COOKIE['id_cookie'])){
$session_id=$_COOKIE['id_cookie'];
$session_pass=$_COOKIE['pass_cookie'];
//checking the member data
$query=mysql_query("SELECT * FROM members WHERE
id='$session_id' AND password='$session_pass' LIMIT 1")or die("Could not check member");
$count_count=mysql_num_rows($query);
if(count_count>0){
while($row=mysql_fetch_array($query)){
$session_username=$row['username'];
}
//create sessions
$_SESSION['username']=$session_username;
$_SESSION['id']=$session_id;
$_SESSION['pass']=$session_pass;
//logged in stuff here
$logged=1;
}else{
header('Location:logout.php');
exit();
}
}
?>
1 ответ
$logged установлен в условном выражении, поэтому проследите, чтобы вы не столкнулись со случайным перенаправлением (напоминает мне о сумасшедших "переходных" днях, через которые я прошел), и в итоге $logged не устанавливается. Или инициализируйте $logged в начале включенного скрипта.