x-kom hosting

Php - problem z utworzeniem ciasteczka

terminator211
utworzono
utworzono

Witam wszystkich. Mam pewnien problem dotyczący php, a dokładniej utworzeniem ciasteczka. Otóż gdy używam:
[code]<?php
setcookie('ciasteczko', '1', time()+600);
?>[/code]
przeglądarka odpowiada takim błędem:
[code]Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\WebServ1\httpd\Ciasteczko.php:6) in C:\Program Files\WebServ1\httpd\Ciasteczko.php on line 7[/code]
Proszę o pomoc i z góry dziękuję.
Pozdrawiam, PanŚmierci ;)

benkowik
komentarz
komentarz

Witam,

Nie możesz mieć takiej sytuacji w kodzie - informacje nagłówkowe muszą iść pierwsze:
[code]<?
echo "test"; // tylko przykład - nie możesz wysłać nic przeglądarce
setcookie('ciasteczko', '1', time()+600);
?>[/code]

Lub dać takie rozwiązanie:
[php]<?
ob_start();
echo "test"; // tylko przykład - nie możesz wysłać nic przeglądarce
setcookie('ciasteczko', '1', time()+600);
ob_end_flush();
?>[/php]

  • Dobra wypowiedź 1
terminator211
komentarz
komentarz (edytowane)

Czyli jeżeli chce utworzyć ciasteczko, to musze np napisać taki kod:
[code]<html>
<head>
<title>Ciasteczko</title>
</head>
<body>
<?php
echo "cos tam, cos tam";
setcookie('ciasteczko1', '1', time()+600);
?>
</body>
</html>
[/code]
? Czy jak to mam zrobić ?

benkowik
komentarz
komentarz

Nie, nie. Zanim cokolwiek dasz przeglądarce musisz utworzyć ciacho:
[code]
<?php
setcookie('ciasteczko1', '1', time()+600);
?>
<html>
<head>
<title>Ciasteczko</title>
</head>
<body>
<?php
echo "cos tam, cos tam";
?>
</body>
</html>
[/code]

  • Dobra wypowiedź 1
wojtex5
komentarz
komentarz

funkcja setcookie nie ingerują w to co już jest w nagłówku, one jedynie są [b]dopisywane[/b] do nagłówka, jeszcze przed wysłaniem dokumentu.

jestem na 99% pewien że chodzi o kodowanie dokumentu.

stawiam, że piszesz stronę w notepadzie++, wejdź do Twojego pliku ze stroną i sprawdź co masz zaznaczone w menu Format. prawdopodobnie masz zaznaczone UTF-8, przestaw to na ANSI, i powinno być dobrze.




  • Dobra wypowiedź 1
benkowik
komentarz
komentarz

[quote name='wojtex5' date='06 sierpień 2011 - 14:19' timestamp='1312633302' post='1315810']
stawiam, że piszesz stronę w notepadzie++, wejdź do Twojego pliku ze stroną i sprawdź co masz zaznaczone w menu Format. prawdopodobnie masz zaznaczone UTF-8, przestaw to na ANSI, i powinno być dobrze.
[/quote]
[b]wojtex5[/b] - ja używam tylko UTF-8 i nagłówki działają bez problemu.

Często stosuje
[php]ob_start();
ob_end_flush();[/php]

  • Dobra wypowiedź 1
terminator211
komentarz
komentarz

Panowie, dziękuję wszytstkim za dobre rady. Wystarczyło dodać bufrowanie wyjściowe w pliku. Jeszcze raz dziękuję i pozdrawiam.

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.