RU-CENTER : setcookie()
Такая ситуация. Лабал авторизацию на MAMP все работало как швейцарские часы. Перетащил движок на RU-CENTER - не могу авторизоваться.
Начал копать и наткнулся на такое вот дерьмо: В Корневом файле index.php работает setcookie('authorization', 1); header('Set-cookie: test=test; Path=/;'); header('Set-cookie: authorization='. 1 .'; Path=/;'); $_SESSION["authorization"] = 0; В общем все работает. К нему подключаешь класс Auth и в нем то же самое нихера не работает. Если в индекс добавить функцию и вызвать из этого класса то тоже нихера не работает. Кто знает как победить сие дерьмо? Код класса: class Auth { public static function login($token) { //setcookie('authorization', 1, time() + 10600, '/'); //setcookie('usertoken', $token, time() + 10600, '/'); //setcookie('authorization', 1); //setcookie('usertoken', $token); header('Set-cookie: test=test; Path=/;'); header('Set-cookie: authorization='. 1 .'; Path=/;'); header('Set-cookie: usertoken='. $token .'; Path=/;'); } public static function logout() { //setcookie('authorization', 0, time() + 10600, '/'); //setcookie('usertoken', '', time() + 10600, '/'); $_SESSION["authorization"] = 0; $_SESSION["usertoken"] = ''; setcookie('authorization', 0); setcookie('usertoken', ''); } } Ru-center сидит с печеньем в жопе и молчит. На реквест уже часов 12 нет ответа. |
Update. Странно себя ведет header location. Из index.php работает, а из include, require и require_once не работает ничего. Может какие-то ini есть?
|
Кароче протестировал еще на Reg.ru.
Виновата настройка сервера. Если заблокировать доступ ко всем PHP файлам и разрешить index.php в котором подключены через require_once библиотеки, то не работает модуль header нигде кроме самого index.php. Виновата дерьмовая Ubuntu OS со своей дерьмовой обвязкой. У меня нормально взлетела на Sprinthost. Че у них за сервера не узнавал, но судя по описанию что-то на Lua и видимо BSD. У меня кстати на Mac OS тоже все нормально работает. Кто знает что за настройка ломает headers? Может ENV не так настроен? |
Заголовок будет передан только в том случае, если до него не было вывода, каких то иных ограничений нет.
setcookie передается также с заголовками и на эту функцию также распространяются эти правила, так что не понятно зачем у вас в одном случае установка кук непосредственно передачей заголовка, а в другом случае функцией. Было дело и на RU-CENTER сайт писал, каких-то проблем при этом не было с заголовками. |
> если до него не было вывода
не было. > так что не понятно зачем у вас в одном случае установка кук непосредственно передачей заголовка, а в другом случае функцией. Я все перепробовал. Думал setckooie галюначит. Функцию в index.php создавал без класса с одним аргументом и вызывал из файлов подключенных к этому же index.php c помощью require_once - и не работало даже так. Срабатывала на Reg.ru и Ru-Center только инструкция прямо в index.php. Срабатывала любая и заголовком и API куки. Вот так. То есть дело даже было не в классе, а в говнячем хостинге с говнячими настройщиками. |
Причина ошибки функции header одна - вывод перед передачей заголовка. Если не передается, значит стоит проанализировать наличие ошибок. Можно проверить передачу заголовков - headers_sent.
Чего гадать на кофейной гуще? К данному хостеру у меня была только одна претензия - слишком они тянут с обновлением версий РНР. PS. Что касается кук, то скорее всего проблема с путями. |
Прошу прощения за оффтоп.
"ru-center" - это nic[dot]ru который? |
Nexus, да.
|
laimas, спасибо.
xShift, вряд ли проблема в настройках сервера, несколько сайтов клиентов у них хостится и никогда проблем с куками не было. Проверьте лог ошибок, он наверняка не пустой. |
Да это говно хостинг. Там на каждое хочу - дай денег. С SEO продвижением так вообще нае...лово. Платишь не за что, а эти суки еще и работают как улитки. Щас забираю все домены и переношу к другому регистратора. Какие защиты личных данных по сути даже не законно сделанные. SSL везде уже бесплатный - у этих он стоит как ядерная ракета. Кароче много чего. Не вывозят сервис за такие бабки.
|
Часовой пояс GMT +3, время: 08:03. |