PDA

Просмотр полной версии : не работает setcookie и header


bomber
03.02.2010, 16:35
парни, объясните мне кто-нибуть при каких условиях может не работать setcookie("kuki", 1, time() + 86000); и header("Content-Type: text/html;charset=utf-8");

на сервере стоит PHP/5.2.6-1+lenny4, какие-то непонятные проблемы с кодировкой, не могу выставить utf-8, из-за чего в IE выводятся крякозябли, в остальных браузерах норм :confused:

ntldr
03.02.2010, 16:44
при условии что уже был какой-то вывод в тело страницы

DiHWO
03.02.2010, 17:11
если у тебя файл начинаеться так:

всякая инва...скрипты
скрипт вывода чегонибудь
<? echo 'blablabla'; ?>
а потом
<? setcookie() ?>

то ничего не получиться, надо:

<? setcookie() ?>
всякая инфа блаблабла

тоесть setcookie() должен быть в самом начале.
Про кодировку:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

mr.The
03.02.2010, 17:49
Про кодировку:
Тут нужно не забыть отключить BOM при сохранение файла в utf-8

bomber
03.02.2010, 18:14
так и думал, что нужно уточнить, что перед этими параметрами нет вывода, но есть переменные, тоесть так не работает:

$a = 1;
setcookie("kukis", 1, time() + 86000);

а так работает:

setcookie("kukis", 1, time() + 86000);
$a = 1;

аналогично и с header, сам впервый раз с таким встречаюсь

все файлы в win-1251 и база тоже, просто в скрипте есть условие, если оно равно 1, то применяется:

header("Content-Type: text/html;charset=utf-8");

а для строк iconv, но что-то ни как не хочет выставлятся нужная кодировка и куки не ставятся

bomber
03.02.2010, 18:17
так и думал, что нужно уточнить, что перед этими параметрами нет вывода, но есть переменные, тоесть так не работает:

$a = 1;
setcookie("kukis", 1, time() + 86000);

а так работает:

setcookie("kukis", 1, time() + 86000);
$a = 1;

аналогично и с header, сам впервый раз с таким встречаюсь

все файлы в ANSI и база в cp1251, просто в скрипте есть условие, если оно равно 1, то применяется:

header("Content-Type: text/html;charset=utf-8");

а для строк iconv, но что-то ни как не хочет выставлятся нужная кодировка и куки не ставятся

Krist_ALL
03.02.2010, 18:22
$a = 1;
setcookie("kukis", 1, time() + 86000);

а так работает:

setcookie("kukis", 1, time() + 86000);
$a = 1;
такова быть не может.

bomber
03.02.2010, 18:30
дубль

bomber
03.02.2010, 18:50
такова быть не может.

ага, приврал малеха, перед эти еще идут вставки скриптов через require_once

если ставить куки перед вставкой файлов, то все работает, опять - :confused:

Krist_ALL
03.02.2010, 18:51
значит в файлах есть вывод или пробел перед открытием дескриптjра <?php

imajo.ati
04.02.2010, 01:26
если ставить куки перед вставкой файлов, то все работает, опять - :confused:

потому что вставляемые файлы в utf-8?

в ответе #4 сказано про BOM, который и выводится перед заголовками.