Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sesje problem headers sent
Forum PHP.pl > Forum > PHP
gam3r
witam,

mam problem, trochę nie wiem o co chodzi bo wszystko śmigało, tyle że po pewnych poprawkach które właściwie sesji nie dotyczyły posypały się sesje. Nie zmieniałem żadnych ustawień php.

początek pliku admin.php od którego wszystko się zaczyna
  1. <?php
  2. error_reporting( E_ALL );
  3. ini_set( 'display_errors', 1 );
  4.  
  5.  
  6. # ladowanie konfiga
  7. require_once("modules/configs/config.php");
  8. require_once("modules/configs/config.menu.php");
  9.  
  10. # ladowanie bibliotek
  11. require_once("modules/lib/FCKeditor/fckeditor.php");
  12. require_once("modules/lib/Smarty/libs/Smarty.class.php");
  13.  
  14. # ladowanie core'a
  15. require_once("modules/core/class.RequestAnalyzer.php");
  16. require_once("modules/core/class.iDB_connect.php");
  17. require_once("modules/core/class.mySmarty.php");
  18. ?>


i tam trochę dalej leci jeszcze plik ale to nie ważne w tym momencie, to taki pseudo-kontroler...

komunikat jak się pojawia przy włączonym error_reporting i ini_set
Kod
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Documents and Settings\pawelhenek\Pulpit\xampp\xampp\htdocs\myprojects\lemar_new\admin.php:1) in C:\Documents and Settings\pawelhenek\Pulpit\xampp\xampp\htdocs\myprojects\lemar_new\admin.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Documents and Settings\pawelhenek\Pulpit\xampp\xampp\htdocs\myprojects\lemar_new\admin.php:1) in C:\Documents and Settings\pawelhenek\Pulpit\xampp\xampp\htdocs\myprojects\lemar_new\admin.php on line 3


i ustawienia php jeszcze (wybrane):
Kod
[Session]
session.save_handler = files
session.save_path = "C:\Documents and Settings\pawelhenek\Pulpit\xampp\xampp\tmp"
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor     = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nochache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 4
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="


więc chyba wszystko jest w porządku. Problem pojawia się zarówno na localhoscie jak i na ftp.livenet.pl z tym że wcześniej nie występował, o czym komunikat mówi to wiem, z tym że nie wysyłałem żadnych headerów, jak to wszystko jest możliwe? (przeglądarka obsluguje cookie)
franki01
  1. <?php
  2. error_reporting( E_ALL );
  3. ini_set( 'display_errors', 1 );
  4. ?>


To daj pod session_start(), zeby wygladalo tak:

  1. <?php
  2.  
  3. error_reporting( E_ALL );
  4. ini_set( 'display_errors', 1 );
  5. ?>
Mordoran
Ja zawsze robie tak:

  1. <?php 
  2.  
  3. // dalszy kod
  4.  
  5.  
  6. ?>


a jak chce np szybciej opuscic skrypt bo jakis blad byl to daje:

  1. <?php 
  2. exit();
  3. ?>
franki01
Cytat(Mordoran @ 11.09.2007, 14:10:21 ) *
Ja zawsze robie tak:

  1. <?php 
  2.  
  3. // dalszy kod
  4. ?>


a jak chce np szybciej opuscic skrypt bo jakis blad byl to daje:

  1. <?php 
  2. exit();
  3. ?>



Tez tak mozna ale chyba to nie chodzi o to... Moze cos wyzej (error_reporting/ini_set) cos wysyla (nie header) i potem header nie moze byc wyslany i dlatego moze wystarczy samo zamienienie kolejnosci..
l0co
A nie masz spacji przed <?php ?
gam3r
@franki01: z tą kolejnością to próbowałem już wcześniej, raczej żaden efekt

@Mordoran: zobacze, ale coś mi sie wydaje że to nie bedzie to
franki01
A po tej zamianie jakie bledy wyskakuja? Na pewno numer linijki inny, ale jaki? biggrin.gif
gam3r
no generalnie numer linii w błędzie, to ten w którym mam funkcje session_start();
franki01
To moze jakis znak bialy (spacja, nowa linia) bo jak nie to sad.gif
gam3r
Cytat
To moze jakis znak bialy (spacja, nowa linia) bo jak nie to sad.gif

ja Cię proszę :] z tego co mi wiadomo wszystkie zbędne spacje, tabulatory i inne białe znaki są anulowane przez interpreter, więc to nie to. Może to być jakaś funkcja, błędne(nieodpowiednie) ustawienia php, wysyłany kod html za pomocą np echo, tylko że nic z tego mi nie pasuje dry.gif
franki01
Przed <?php interpreter nie spojrzy biggrin.gif Mi chodzi czy przed <?php jest jakis zbedny znak. Takie cos juz jest wazne...
viraptor
Cytat(franki01 @ 11.09.2007, 17:23:00 ) *
Przed <?php interpreter nie spojrzy biggrin.gif Mi chodzi czy przed <?php jest jakis zbedny znak. Takie cos juz jest wazne...

A konkretnie, to czy jest tam np. znacznik kolejności bajtów unicode, a serwer unicode nie kuma (bądź inna podobna sytuacja), więc traktuje jako śmiecie. Spróbuj w jakimś edytorze który potrafi wymusić używane aktualnie kodowanie, otworzyć plik jako czyste 7-bitowe ASCII i zobaczyć jeszcze raz, czy nie ma czegoś przed <?php
gam3r
no faktycznie coś tam musiało być, z tym że w eclipse nic takiego nie można było zauważyć (kod zaczynał się od 1 linijki, bez żadnych spacji i zbednych tabulacji).
Wczoraj wieczorem zauważyłem pewne postępy, mianowicie po skopiowaniu identycznego kodu którym zaczynał się też index.php, problem częściowo znikł bo pojawiał się tylko drugi warning
Kod
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Documents and Settings\pawelhenek\Pulpit\xampp\xampp\htdocs\myprojects\lemar_new\admin.php:1) in C:\Documents and Settings\pawelhenek\Pulpit\xampp\xampp\htdocs\myprojects\lemar_new\admin.php on line 3


poszedłem spać, gdy rano wstałem znowu obydwa komunikaty, wtedy przepisałem cały plik na nowo i ruszyło.
Jak dla mnie absolutnie dziwna sytuacja, możliwe że związane to było z tym że ostatnio miałem problemy z generowaniem pdfów w utf-8 i często zmieniałem ustawienia kodowania plików na iso-8859-2 i jakieś niewidzialne śmieci pozostały blinksmiley.gif
dr.boczek
ja wiem co jest źle smile.gif

korzystam z notepad++
jeśli koduje w uft8 to mam takie błedy, trzeba pisać w innym kodowaniu, albo UTF-8 Without BOM
i problem znika.

pozdrawiam
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.