Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Cannot send session cookie - headers already sent by!
Forum PHP.pl > Forum > Przedszkole
danielv13
Mam kodzik:

  1. <?
  2. ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Untitled Document</title>
  7. </head>
  8.  
  9. <body>
  10. <div align="center">
  11. <?
  12.  
  13. $krok = addslashes(strip_tags($_GET['krok']));
  14. if ( $krok == '1' )
  15. {
  16. ?>
  17. <form action="test.php?krok=2" method="post">
  18. Czy odczuwasz ból a klatce piersiowej?<p>
  19. <input type="radio" name="bol" value="1" /> Tak <input type="radio" name="bol" value="0" /> Nie<p>
  20. <input type="submit" value="Dajlej >" />
  21. </form>
  22. <?
  23. }
  24.  
  25. if ( $krok == '2' )
  26. {
  27. if ( $_REQUEST['bol'] == '1' )
  28. {
  29. setcookie("historia", "Czy odczuwasz ból w klatce piersiowej?|Tak|", time()+3600);
  30. ?>
  31.  <?
  32. }
  33. }
  34. // ...........
  35. ?>


Dlaczego wywala:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/kas/domains/kasstudio.net/public_html/u/test.php:1) in /home/kas/domains/kasstudio.net/public_html/u/test.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/kas/domains/kasstudio.net/public_html/u/test.php:1) in /home/kas/domains/kasstudio.net/public_html/u/test.php on line 3


questionmark.gif? :/ blinksmiley.gif

Tutaj przykład: http://kasstudio.net/u/test.php?krok=1
potreb
  1. <?php
  2. ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <title>Untitled Document</title>
  8. </head>
  9. <body>
  10. <div align="center">
  11. <?php
  12. $krok = addslashes(strip_tags($_GET['krok']));
  13. if ( $krok == '1' )
  14. {
  15. ?>
  16. <form action="index.php?krok=2" method="post">
  17. Czy odczuwasz ból a klatce piersiowej?<p>
  18. <input type="radio" name="bol" value="1" /> Tak <input type="radio" name="bol" value="0" /> Nie<p>
  19. <input type="submit" value="Dajlej >" />
  20. </form>
  21. <?php
  22. }
  23.  
  24. if ( $krok == '2' )
  25. {
  26. setcookie("historia", "Czy odczuwasz ból w klatce piersiowej?|Tak|", time()+3600);
  27. }
  28. ?>
danielv13
co to ma niby dac?questionmark.gif sleep.gif
potreb
A sprawdzałeś? Jakie masz kodowanie pliku?
Ten błąd jest powszechny. Nie masz przypadkiem spacji przed <?php?
A stosowanie znacznika <? jest błędne bo nie każdy serwer odczytuje go jako skrypt php.

W jakim programie zapisujesz pliki do utf?
danielv13
Heh... w temacie jest napisane że nie mam spacji... Co do <? i <?php sprawdzałem oboje...
Kodowanie nie ma do tego nic...
Próbowałem zapisywać przez Notatnik i Dreamweaver... :/
Nic nie działa
potreb
Mówisz o notatniku? Zmień edytor. Notatnik nie zapisuje poprawnie do utf-8.
danielv13
Mówie też, że zapisywałem w Dramweaverze... ;|
potreb
No dobra, weź sprawdź sobie mój, plik, sciągnij i wgraj na serwer.

Ale jak dla mnie najpierw zapisałeś w notatniku który utworzył bom sector a późnie próbowałeś w dream
danielv13
No działa biggrin.gif

Ehh ten notatnik :]
potreb
No widzisz smile.gif Ja już używam sprawdzonych metod dla utf-u tongue.gif
Mlodycompany
Witam. Ja mam problem też ten sam tylko że w logowaniu. Wyskakuje mi błąd: Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\usr\www\strona\index.php:8) in C:\usr\www\strona\log.php on line 2 . Co mam zrobic aby to zadziałało?? Proszę o pomoc. Z góry thx.
potreb
Nie odświeżaj tematów.

ob_start(); na poczatku strony i ob_end_flush(); na końcu

I było milion razy.
Sagge
Cytat(potreb @ 26.01.2008, 16:14:30 ) *
No widzisz smile.gif Ja już używam sprawdzonych metod dla utf-u tongue.gif



Zdradzisz je?
Mam ten sam problem. ob_start(); i ob_end_flush(); jest wstawione probuje cos z kodowaniem zdzialac, ale nic nie pomaga...

Cytat
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/sagge/ftp/logowanie/index2.php:6) in /home/sagge/ftp/logowanie/index2.php on line 8
1
jestes zalogowany jako krzysiek
3man
Stary temat ale poczułem obowiązek podzielenia się moim "odkryciem" (o ile jeszcze tego nie wiecie smile.gif

Problem z kodowaniem znaków przy starcie sesji, pojawia się gdy nasz plik zapisujemy w kodowaniu utf-8.
Niektóre edytory wymagają od takiego pliku obecności znacznika BOM (Byte Order Mark - znacznik kolejności bajtów), inne wręcz przeciwnie go nie akceptują. Co za tym idzie dodają znacznik BOM lub nie.
W moim przypadku plik zakodowany w utf-8 z bom powodował błąd parsera php. Jeszcze nie wiedząc że Pajączek nie radzi sobie z tym problemem bezskutecznie zapisywałem wwszystkie pliki w utf-8 (znów i znów z naddzieją ze gdzieś się pomyliłem). Kodowanie bez BOM odkryłem dopiero w programie Notepad++. UTF-8 (bez BOM) jest działającym kodowaniem. Na pewno w Pajaczku da się to skonfigurować, ponieważ inne strony z sesjami zrobione wcześniej działają bez zarzutu.

http://pl.wikipedia.org/wiki/BOM

Pozdrawiam.
oomaster
Sorry ,że powracam do tego tematu po takim czasie ale problem jest nie do rozwiązania dla mnie. Pousuwałem wszelkie spacje próbowałem z BOM i bez BOM i to samo !

Kod
<?
ob_start();
session_start();

// Poł±cz się z serwerem bazy danych
$dbcnx = @mysql_connect('localhost', 'baza', 'xyz');
if (!$dbcnx) {
  exit('<h1>Sorry</h1>' );
}

// Wybierz bazę danych
if (!@mysql_select_db('baza')) {
  exit('<h1>Sorry</h1>');
}
?>
Pawel_W
yyy, na 99% to BOM, wiem z doświadczenia, ściągnij jakiś program do edycji takich plików, bo w notatniku o ile wiem nie ma opcji do zapisywania bez BOM
oomaster
Korzystam z notepad++ I kombinuje bez BOM i guzik :/
Pawel_W
to stwórz nowy plik, wklej do niego samo
  1. <?php
  2. ?>

zapisz i powiedz, czy dalej jest błąd
oomaster
Cytat(Pawel_W @ 14.04.2010, 21:54:33 ) *
to stwórz nowy plik, wklej do niego samo
  1. <?php
  2. ?>

zapisz i powiedz, czy dalej jest błąd


Nie wywala błędu. teraz do mojego kodu dodałem na początku <?php i wywala 1 błąd zamiast 2 ?!

EDIT: Znam rozwiązanie może komuś się przyda. Otóż plik baza.php był includowany do pliku index.php a co za tym idzie sam plik baza.php był w formacie UTF-8 bez BOM lecz index.php był w UTF-8 ale z BOM i to przez niego wywalało błąd.

Podsumowania: Obejrzyjcie wszystkie pliki które mają w jaki kol wiek sposób styczność w trakcie wykonywania kodu czyli include itd.
miccom
Mój problem jest nieco inny...
Zmieniłem kodowanie w notepad++ z ASCI na UTF-8 BEZ DOM, i problem z sesją zniknął, ale zamiast polskich znaków mam krzaki...
Jak temu zaradzić?
Przeedytowanie pliku na niewiele się zdało...
Proszę o pomoc.
minolone
Może brakuje ci w sekcji <HEAD></HEAD>
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

być może że plik został źle przekonwertowany, wrzuć plik na jakiś hosting i sprawdzimy gdzie masz błąd.
miccom
Ok,
Problem wynikał z tego, że nie deklarowałem kodowania.
Już jest ok.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.