Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   RU-CENTER : setcookie() (https://javascript.ru/forum/server/73839-ru-center-setcookie.html)

xShift 20.05.2018 11:11

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 нет ответа.

xShift 20.05.2018 11:22

Update. Странно себя ведет header location. Из index.php работает, а из include, require и require_once не работает ничего. Может какие-то ini есть?

xShift 23.05.2018 11:56

Кароче протестировал еще на Reg.ru.

Виновата настройка сервера.

Если заблокировать доступ ко всем PHP файлам и разрешить index.php в котором подключены через require_once библиотеки, то не работает модуль header нигде кроме самого index.php. Виновата дерьмовая Ubuntu OS со своей дерьмовой обвязкой.

У меня нормально взлетела на Sprinthost. Че у них за сервера не узнавал, но судя по описанию что-то на Lua и видимо BSD.

У меня кстати на Mac OS тоже все нормально работает.

Кто знает что за настройка ломает headers? Может ENV не так настроен?

laimas 23.05.2018 13:34

Заголовок будет передан только в том случае, если до него не было вывода, каких то иных ограничений нет.
setcookie передается также с заголовками и на эту функцию также распространяются эти правила, так что не понятно зачем у вас в одном случае установка кук непосредственно передачей заголовка, а в другом случае функцией.
Было дело и на RU-CENTER сайт писал, каких-то проблем при этом не было с заголовками.

xShift 23.05.2018 16:54

> если до него не было вывода

не было.

> так что не понятно зачем у вас в одном случае установка кук непосредственно передачей заголовка, а в другом случае функцией.

Я все перепробовал. Думал setckooie галюначит. Функцию в index.php создавал без класса с одним аргументом и вызывал из файлов подключенных к этому же index.php c помощью require_once - и не работало даже так. Срабатывала на Reg.ru и Ru-Center только инструкция прямо в index.php. Срабатывала любая и заголовком и API куки. Вот так.

То есть дело даже было не в классе, а в говнячем хостинге с говнячими настройщиками.

laimas 23.05.2018 17:11

Причина ошибки функции header одна - вывод перед передачей заголовка. Если не передается, значит стоит проанализировать наличие ошибок. Можно проверить передачу заголовков - headers_sent.

Чего гадать на кофейной гуще? К данному хостеру у меня была только одна претензия - слишком они тянут с обновлением версий РНР.

PS. Что касается кук, то скорее всего проблема с путями.

Nexus 23.05.2018 17:49

Прошу прощения за оффтоп.
"ru-center" - это nic[dot]ru который?

laimas 23.05.2018 17:57

Nexus, да.

Nexus 23.05.2018 18:00

laimas, спасибо.

xShift, вряд ли проблема в настройках сервера, несколько сайтов клиентов у них хостится и никогда проблем с куками не было.
Проверьте лог ошибок, он наверняка не пустой.

xShift 24.05.2018 20:52

Да это говно хостинг. Там на каждое хочу - дай денег. С SEO продвижением так вообще нае...лово. Платишь не за что, а эти суки еще и работают как улитки. Щас забираю все домены и переношу к другому регистратора. Какие защиты личных данных по сути даже не законно сделанные. SSL везде уже бесплатный - у этих он стоит как ядерная ракета. Кароче много чего. Не вывозят сервис за такие бабки.


Часовой пояс GMT +3, время: 16:30.