Vahan
Новичок
Проблема с передачей данных на другие страницы при помощи Сессии
Ребят долго искал решения, и не смог найти.
Вот у меня система авторизации.
Всё работает отлично, при попытке войти на страницы без авторизации, выбрасывает на страницу авторизации.
Проблемы начались когда я решил сделать ранги пользователей.
Например: [5] это Админ, [1]-гость, [2]-пользователь.. итд..
Проверка идёт по запросу
При авторизации делаю так(Конечно после удачной авторизации):
Причём function login, в файле func.php который прикрепляется в начале при помощи require.
После авторизации всё пашет, пока я в странице "home.php",
страницы меняю при помощи switch. (Именно эти страницы проходят проверку ранга).
Но если я попробую войти на другую страницу, ну например "test.php", $_SESSION["user"] становится пустой (Проверял при помощи print_r).
При возвращении на страницу "home.php", меня не пускает на страницы и пишет "У вас нет доступа к данной странице!", так как $_SESSION["user"] пуста, и из за этого не проходит проверку.
Примечание:
1) В самом начале обеих файлов стоит session_start().
2) Оба файла (home.php, test.php), проверяются командой:
Вопрос: Почему при переходе на другую страницу, переменные из $_SESSION["user"], теряются, и как можно это исправить?
Ребят долго искал решения, и не смог найти.
Вот у меня система авторизации.
Всё работает отлично, при попытке войти на страницы без авторизации, выбрасывает на страницу авторизации.
Проблемы начались когда я решил сделать ранги пользователей.
Например: [5] это Админ, [1]-гость, [2]-пользователь.. итд..
Проверка идёт по запросу
PHP:
if($_SESSION["user"][2]==5){...}
else{$text="У вас нет доступа к данной странице!";}
PHP:
function login($name, $pass)
{
$query="select * from user where name='".$name."' and password='".$pass."'";
$result=mysql_query($query);
$row=mysql_fetch_row($result);
return $row;
}
$_SESSION["user"]=login($login,$pass);
После авторизации всё пашет, пока я в странице "home.php",
страницы меняю при помощи switch. (Именно эти страницы проходят проверку ранга).
Но если я попробую войти на другую страницу, ну например "test.php", $_SESSION["user"] становится пустой (Проверял при помощи print_r).
При возвращении на страницу "home.php", меня не пускает на страницы и пишет "У вас нет доступа к данной странице!", так как $_SESSION["user"] пуста, и из за этого не проходит проверку.
Примечание:
1) В самом начале обеих файлов стоит session_start().
2) Оба файла (home.php, test.php), проверяются командой:
PHP:
if(!isset($_SESSION["user"]))
{
echo '<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
location.href=".....";
</SCRIPT>';
}
else{..}