Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для caesarnn
57 / 57 / 18
Регистрация: 22.05.2015
Сообщений: 607

Почему не происходит редирект?

07.12.2016, 14:46. Показов 790. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите, почему редиректа с неавторизованного браузера не происходит? На одной из страниц разместил такой код:
PHP
1
2
3
4
session_start();
if (isset($_SESSION['login'])) {
  header('Location: http://xxx/login.php');
}
который переадресовывает неавторизованных пользователей на страницу логина, но, почему-то, когда переменная $_SESSION['login'] пустая, редиректа не происходит. В чём может быть причина?
В скрипте авторизации переменная кладётся в сессию (проверял, всё работает)
PHP
1
2
3
4
5
6
session_start();
if ($userlogin!==1)  {
$_SESSION['login'] = $login;
    //переадресовываем его на "секретную" страницу
    header('Location: http://xxx');
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2016, 14:46
Ответы с готовыми решениями:

почему редирект выдает ошибку
Вот так я делаю редирект $url = "http://".$_SERVER."/moderation.php"; header('Location: ' . $url); exit;а вот что я получил...

Определить куда происходит редирект
Здравствуйте, я в пхп новичёк и даже не знаю в какую сторону думать. Существует список линков в txt файле формата...

Ini-файл: чтение происходит без проблем, но запись в файл не происходит, почему?
Пытаюсь научиться работать с ini файлам, чтение происходит без проблем но запись в файл не происходит, пишу на win7? почему та, всё же...

13
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
07.12.2016, 15:00
Цитата Сообщение от caesarnn Посмотреть сообщение
if (isset($_SESSION['login']))
Вы же проверяете на существование $_SESSION['login'].
Если надо, чтобы перебрасывало НЕ авторизованных, то проверяйте на НЕсуществование.
PHP
1
2
3
4
session_start();
if (!isset($_SESSION['login'])) {
  header('Location: http://xxx/login.php');
}
0
 Аватар для caesarnn
57 / 57 / 18
Регистрация: 22.05.2015
Сообщений: 607
07.12.2016, 15:32  [ТС]
У неавторизованного пользователя значение переменной login = NULL
PHP
1
2
3
4
5
6
<?php
session_start();
$login = $_SESSION['login'];
if ($login = 'NULL') {
  header('Location: http://xxx/login.php');
}
этот код также не работает
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.12.2016, 15:40
Цитата Сообщение от caesarnn Посмотреть сообщение
if ($login = 'NULL') {
не смешно уже
PHP
1
if (is_null($login))
0
 Аватар для caesarnn
57 / 57 / 18
Регистрация: 22.05.2015
Сообщений: 607
07.12.2016, 15:55  [ТС]
Тоже не работает
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
07.12.2016, 16:04
PHP
1
2
3
4
5
6
7
8
<?php
error_reporting(-1);
ini_set('display_errors', 1);
session_start();
if (empty($_SESSION['login'])) {
    header('Location: http://xxx/login.php');
    exit;
}
0
 Аватар для caesarnn
57 / 57 / 18
Регистрация: 22.05.2015
Сообщений: 607
07.12.2016, 16:08  [ТС]
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at php:206) in php on line 209

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at php:206) in php on line 209

Notice: Undefined index: login on line 210

Warning: Cannot modify header information - headers already sent by (output started at php:206) in php on line 212

Добавлено через 17 секунд
Это для неавторизованного пользователя
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.12.2016, 16:10
Что означает предупреждение "headers already sent"
0
 Аватар для caesarnn
57 / 57 / 18
Регистрация: 22.05.2015
Сообщений: 607
07.12.2016, 16:20  [ТС]
Строка 209:
PHP
1
session_start();
Строка 210:
PHP
1
$login = $_SESSION['login'];
Строка 212:
PHP
1
header('Location: http://xxx/login.php');
Добавлено через 4 минуты
Строка 206
PHP
1
<?php
Добавлено через 3 минуты
Вот так работает:
PHP
1
2
3
4
if (is_null($login)) {
 echo "<script>document.location.href='http://xxx/login.php';</script>";
  exit;
}
Добавлено через 2 минуты
Но что делать, если у человека отключена поддержка JS в браузере?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
07.12.2016, 16:26
Цитата Сообщение от caesarnn Посмотреть сообщение
Но что делать, если у человека отключена поддержка JS в браузере?
читать тему, которую дали по ссылке, и переносить код
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
07.12.2016, 18:14
Цитата Сообщение от caesarnn Посмотреть сообщение
Но что делать, если у человека отключена поддержка JS в браузере?
Это костыль из костылей. Используйте пример от KOPOJI. Откуда у вас там за 200 строк взялось? Включаем мозги. Иначе никак.
0
 Аватар для caesarnn
57 / 57 / 18
Регистрация: 22.05.2015
Сообщений: 607
07.12.2016, 18:20  [ТС]
Цитата Сообщение от miketomlin Посмотреть сообщение
Откуда у вас там за 200 строк взялось
Стили CSS я пока не вынес в отдельный файл, поэтому там 200 строк.
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
07.12.2016, 18:37
Цитата Сообщение от caesarnn Посмотреть сообщение
Стили CSS я пока не вынес в отдельный файл,
Цитата Сообщение от caesarnn Посмотреть сообщение
Строка 209:
PHP
1
session_start();
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
07.12.2016, 18:53
caesarnn, нельзя заголовки после тела сущности отправлять, да и делать наоборот здесь тоже крайне нежелательно. Поэтому после отправки заголовка делаем явно exit, не полагаясь на пых.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.12.2016, 18:53
Помогаю со студенческими работами здесь

При нажатии на вкладку с сайтом или на кнопку на сайте происходит редирект
Вообщем добавить нечего к названию темы... вот похожая тема. Проверял на вирусы с полной эвристикой и прочими темами. Проверял AVZ,...

Происходит редирект на сайты с рекламой после нажатия на кнопки или ссылки на других сайтах
Здравствуйте. Столкнулась с проблемой, когда после нажатия на какую-то ссылку или кнопку иногда открывается на запрашиваемая страница, а...

Почему так происходит?
По запросу в Я выдается куча каталогов на которых я регал свой сайт, причем выдаются те страницы на которых стоит моя ссылка, а...

Почему не происходит изменения
Вот такой простой примерчик. #include &lt;iostream&gt; using namespace std; static int a = 0, b = 3; int change_a() { return ++a; }...

Почему так происходит?
Привет, SEO'S... Посмотрите сайт www.kamdetal.ru В чем ошибка оптимизации по поисковым словам - запчасти камаз, автомобили камаз? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru