Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   не ставятся куки (https://forum.antichat.xyz/showthread.php?t=77563)

Дикс 18.07.2008 09:55

не ставятся куки
 
структура такая:
грузится index.php, потом в него инклудится куча файлов, затем наконец вызывается login.php
он проверяет введённую гет-методом инфу и в зависимости от этого ставит куки.
но он не может их поставить! ругается на

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fedr/engine/inc/phrases.php:1) in /var/www/html/fedr/engine/interfaces/login.php on line 18

причем в этом phrases.php такой код:
PHP код:

<?php
if(!defined('blablabla')) die('closed');
$phrases = array(
    
'lang' => 'en'
);

и все. там никакого вывода нет.
когда я убираю весь код из файла, он начинает орать на следующий - в которой лишь определение класса, без вызовов.

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

ничего в голову не приходит

Chaak 18.07.2008 11:15

в условие с куками на самые первые строчки кидай

Может быть у тебя просто не назначено blablabla, и поэтому идет вывод 'closed', попробуй заменить die('closed'); на
PHP код:

exit(); 


NOmeR1 18.07.2008 11:17

Хидеры (в том числе и функция setcookie) должны быть до вывода информации

-=Static=- 18.07.2008 12:48

_http://ru2.php.net/manual/ru/function.ob-start.php

Можно с помощью output buffering

Дикс 18.07.2008 12:48

ChaaK
нет, я дебажил код

NOmeR1
я это знаю. меня интересует, как это применяется в серъёзных проектах.
как ставить куки, если надо их поставить при определённом действии

Дикс 18.07.2008 12:51

-=Static=-
я не применяю гзип и не хочу чтобы страницы вываливались полностью, только когда сгенерятся.
ради куков включать буферизацию не хочется

Дикс 18.07.2008 13:24

Придумал вот что:
$_SESSION['setCookie']['login'] = $login;
$_SESSION['setCookie']['pass'] = $pass;

а в первых строках скрипта проверять $_SESSION['setCookie'] на заполненность и устанавливать куки.


Время: 23:27