не работает setcookie и header

Discussion in 'PHP' started by bomber, 3 Feb 2010.

  1. bomber

    bomber New Member

    Joined:
    17 Mar 2008
    Messages:
    25
    Likes Received:
    1
    Reputations:
    0
    парни, объясните мне кто-нибуть при каких условиях может не работать setcookie("kuki", 1, time() + 86000); и header("Content-Type: text/html;charset=utf-8");

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

    ntldr Elder - Старейшина

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    при условии что уже был какой-то вывод в тело страницы
     
  3. DiHWO

    DiHWO Member

    Joined:
    23 Oct 2009
    Messages:
    93
    Likes Received:
    10
    Reputations:
    0
    если у тебя файл начинаеться так:
    Code:
    всякая инва...скрипты
    скрипт вывода чегонибудь 
    <? echo 'blablabla'; ?>
    а потом
    <? setcookie() ?>
    
    то ничего не получиться, надо:
    Code:
    <? setcookie() ?>
    всякая инфа блаблабла
    
    тоесть setcookie() должен быть в самом начале.
    Про кодировку:
    Code:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
     
  4. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    Тут нужно не забыть отключить BOM при сохранение файла в utf-8
     
  5. bomber

    bomber New Member

    Joined:
    17 Mar 2008
    Messages:
    25
    Likes Received:
    1
    Reputations:
    0
    так и думал, что нужно уточнить, что перед этими параметрами нет вывода, но есть переменные, тоесть так не работает:

    $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, но что-то ни как не хочет выставлятся нужная кодировка и куки не ставятся
     
  6. bomber

    bomber New Member

    Joined:
    17 Mar 2008
    Messages:
    25
    Likes Received:
    1
    Reputations:
    0
    так и думал, что нужно уточнить, что перед этими параметрами нет вывода, но есть переменные, тоесть так не работает:

    $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, но что-то ни как не хочет выставлятся нужная кодировка и куки не ставятся
     
  7. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    такова быть не может.
     
  8. bomber

    bomber New Member

    Joined:
    17 Mar 2008
    Messages:
    25
    Likes Received:
    1
    Reputations:
    0
    дубль
     
  9. bomber

    bomber New Member

    Joined:
    17 Mar 2008
    Messages:
    25
    Likes Received:
    1
    Reputations:
    0
    ага, приврал малеха, перед эти еще идут вставки скриптов через require_once

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

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    значит в файлах есть вывод или пробел перед открытием дескриптjра <?php
     
  11. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    потому что вставляемые файлы в utf-8?

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