PHP błędy związane z sesjami

0

Próbuje ruszyć jakiś skrypt do logowania i nadal otrzymuje błędy:

Cannot send session cookie - headers already sent by

Dziwie się bo niby kody znalezione w internecie działają prawidłowo.

Ja mam taki początek pliku:

<?php 		
	ob_start();
 
	session_start();

I już w 4 linijce dostaje ten błąd, czyli session_start(); :(

0

co to za kropeczka na poczatku kodu???

0

Pierwsza linijka jest pusta i zawiera spację albo enter. Owy niepozorny znak jest wysyłany do klienta i już nie możesz zmodyfikować nagłówków - bo zostały posłane wraz z pierwszym napotkanym ciągiem znaków. Upewnij się, że nie ma przed <?php żadnych białych znaków (spacji/enterów/wtf), jakikolwiek znak (nawet niewidoczny w edytorze tekstu) może spowodować, że zostanie zrozumiany jako fragment dokumentu i rozwali zachowanie skryptu PHP.

bordeux napisał(a)

co to za kropeczka na poczatku kodu???

Brudny monitor.

0

no akurat w chrome zamiast pustego znaku Pokazuje kropeczke - aby webdeveloperzy wiedzieli gdzie jest blad . Jest to znak U+FEFF . W moim poscie mi o to chodzi, ze uzywa zlego kodowania. Niech w wszystkich plikach uzywa utf-8 bez boom.

0

Przy wklejaniu na forum zrobił mi się ENTER. Kodowanie mam UTF-8.

0

@bordeux:
Przyhamuj z językiem.

@Luzak:
Kodowanie UTF-8 zostawia tak zwany BOM (Byte-0-Mask), niedopracowanie w PHP powoduje że jest on interpretowany jak normalny znak i wysyłany do użytkownika. Musisz zakodować plik w formacie UTF-8 bez BOM. Usunąć ten niewidzialny przeszkadzający znak potrafi na przykład Notepad++ (Format -> `Konwertuj na UTF-8 (bez BOM)). Po usunięciu BOM zacznie działać.

0

Najprościej : W pliku najwyższym (np config.php) który zawsze includujesz na początku dodaj zaraz po rozpoczęciu deklaracji php: ob_start(); a na samym końcu skryptu dodaj ob_end_flush(); i stosuj tak jak wyżej jest napisane - konwertuj na UTF-8 BEZ BOM i nie używaj notatnika windowsowkiego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1