Как установить cookie?

Ответить
Аватара пользователя
vagner_HATE

Как установить cookie?

Сообщение vagner_HATE »

Простите за ламерский вопрос но я только начал этим заниматься и никак не пойму как мне правильно установить куки:
Аватара пользователя
E-mail

Re: Как установить cookie?

Сообщение E-mail »

потому как заголовками обмениваются узлы до вывода тела, на то они и головы(headers)

вот Вам и пишет : не возможно изменить уже отправленые заголовки
Аватара пользователя
Prisoner

Re: Как установить cookie?

Сообщение Prisoner »

Верно. Любые заголовки (а куки ими же и устанавливаются) необходимо отсылать до любого вывода html-кода, даже пробела.
Аватара пользователя
slaine

Re: Как установить cookie?

Сообщение slaine »

А почему здесь не читает из файла,

когда пишу header("Location: ass.php");?



Код: Выделить всё

<?

if (isset($_GET['aaa'])){

header("Location: ass.php");

$a = $_GET['aaa'];

$file = fopen("password.txt", "a+");

fwrite($file, $a);

fclose($file);

$file = fopen("password.txt", "r");

$s = fread($file, 100); 

echo $s;

fclose($file);

} 

?>

<form action=ass.php method=get>

<input type="text" name=aaa size=10>

<input type="submit">

</form>
Аватара пользователя
vadimiron

Re: Как установить cookie?

Сообщение vadimiron »

header("Location: ass.php"); это же перенаправление на другую страницу-то есть будет всё до этого кода выполнено, а дальше загружается другая страница
Аватара пользователя
E-mail

Re: Как установить cookie?

Сообщение E-mail »

Location - это место нахождения Host-a (см. ниже пример с гуглом)



если сервер(в данном случае ваш скрипт на сервере, который добавляет дополнительный заголовок к заголовкам сервера) говорит клиенту(см. ниже: в моем случае ПА IE) что хост переехал, то клиент как бы получает команду повторно отправить заголовки но на нужный хост. И отвечать уже будет на запрос совсем другой хост (в вашем случае ass.php)



т.е.

дальше идет обмен заголовками со страницей ass.php а уже потом в соответствии с запросом клиента и ответом сервера чтото происходитИзображение

например загрузка контента.



к примеру:

при запросе
http://google.com:




GET / HTTP/1.1

Accept: application/x-shockwave-flash, */*

Accept-Language: ru

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Host: google.com

Connection: Keep-Alive

Cookie: PREF=ID=195bb6eee8d115d3:CR=1:TM=1115666067:LM=1115666067:S=VWDUsZTRAP5WKWj_



HTTP/1.1 302 Found

Location:
http://www.google.com/


Content-Type: text/html

Server: GWS/2.1

Transfer-Encoding: chunked

Content-Encoding: gzip

Date: Wed, 18 May 2005 19:01:53 GMT

Cache-Control: private, x-gzip-ok=""



GET / HTTP/1.1

Accept: application/x-shockwave-flash, */*

Accept-Language: ru

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Cookie: PREF=ID=195bb6eee8d115d3:CR=1:TM=1115666067:LM=1115666067:S=VWDUsZTRAP5WKWj_

Connection: Keep-Alive

Host:
www.google.com




HTTP/1.1 302 Found

Location:
http://www.google.ru/


Content-Type: text/html

Server: GWS/2.1

Transfer-Encoding: chunked

Content-Encoding: gzip

Date: Wed, 18 May 2005 19:01:54 GMT

Cache-Control: private, x-gzip-ok=""



GET / HTTP/1.1

Accept: application/x-shockwave-flash, */*

Accept-Language: ru

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Connection: Keep-Alive

Host:
www.google.ru


Cookie: PREF=ID=cdccb6d48e64161d:LD=ru:TM=1115666067:LM=1115666068:S=CqwV4YatIJYTMkko



HTTP/1.1 200 OK

Cache-Control: private

Content-Type: text/html

Content-Encoding: gzip

Server: GWS/2.1

Content-Length: 1586

Date: Wed, 18 May 2005 19:01:55 GMT
Аватара пользователя
E-mail

Re: Как установить cookie?

Сообщение E-mail »

кроме того в этих запросах можно проследить как передается контент кука "гугл" от меня, что бы сервер(гугл) уже использовал эту инфу.
Аватара пользователя
E-mail

Re: Как установить cookie?

Сообщение E-mail »

если уже совсем серьездно подходить, то вы должны в заголовках отдавать ошибку 302.

например это можно настроить на сервере, и при этой ошибке сервер должен объявлять новое место для запроса
Аватара пользователя
slaine

Re: Как установить cookie?

Сообщение slaine »

нет header("Location: ass.php"); делает перенаправления

сам на себя ass.php, производит запись, но не считывает,

как написать правильно?
Аватара пользователя
Prisoner

Re: Как установить cookie?

Сообщение Prisoner »

Он считывает, считывает, не переживай. Тут можно применить следующую аналогию: ты говоришь человеку-молнии (персонаж американских комиксов из глубин моего даром прожитого детства Изображение): "Сгоняй в Австралию... а еще, я хотел сказать, что ты придурок!". Так вот, стимул сгонять куда-либо это твой заголовок, выражение твоего к нему отношения - вывод данных взятых из файла. Беда только в том, что он их не услышит (не отобразится в броузере) потому как на то он и человек-молния - быстрый придурок. Просто (не знаю конкретное внутреннее поведение АП) заголовок, скорее всего имеет больший приоритет - зачем отрисовывать страницу, когда тебя послали... на другую? Изображение
Ответить

Вернуться в «Вебмастеру»