Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 22.01.2011 Skąd: Murowana Goślina Ostrzeżenie: (0%)
|
Wiem, że już było to milion, razy, dlatego nie proszę o rozwiązanie tego, a jedynie o sposób w jaki inaczej mogę wysłać session start.
Powiedzmy, że mój index.php wygląda tak:
Teraz w index.php powiedzmy klikam sobie w link o nazwie rejestracja, którego kod wygląda tak:
No i teraz formularz rejestracji zostaje wyświetlony w index.php w oknie głównym. Kiedy wypełnię formularz i wduszę submit, to przesyłają się dane do pliku, w którym jest sesia - tak wygląda przesłanie zawartych w text-boxach informacji po naciśnięciu submit:
I wszystko się udało: w index.php w kontener_glowny zostało wyświetlone: Rejestracja pomyślna!, do bazy danych mySQL został dodany nowy użytkownik, tylko jeden upierdliwy błąd powstaje, z którym nie mogę sobie poradzić już od 3 dni i strasznie mnie to denerwuje (IMG:style_emoticons/default/worriedsmiley.gif) ;<.
Odrazu powiem, że ten błąd pojawia się mimo, że wszystko działa - użytkownik został dodany do bazy i w ogóle cały skrypt zadziałał jak należy. Teraz chcę się zapytać jak to można naprawić, bo już nie mam nerwów. Jak naprawdę działa funkcja ob_start(); i ob_clean(); i czy one po prostu ukrywają błąd, czy usuwają? Wiem, że poprzez dodanie przed session_start(); wtedy błąd zostanie stłumiony (niewidoczny), ale ja nie chcę ich tłumić, tylko eliminować. Nie mam spacji przed session_start ani po <?php. Specjalnie zmieniłem zapis z UTF-8 na ANSI, ale błąd nadal istnieje. Czy może mi ktoś powiedzieć jakie są skutki tego błędu i czy ewentualnie można go usunąć? Rozdaję punkciki ( heh... na taką małą zachętę), ale na prawde będę bardziej wdzięczny za pomoc i proszę niech nie usuwają tego tematu admini, gdyż, żadna z innych odpowiedzi w podobnych tematach nie były mi pomocne ;< Ten post edytował waqmaz 1.02.2011, 20:09:42 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%)
|
Cytat Kod headers already sent (output started at C:\xampp\htdocs\index.php:86) in C:\xampp\htdocs\nowa_rejestracja.php on line 2 Błąd objaśnia, że najpierw w linii 86 pliku index.php wysłałeś do przeglądarki jakieś dane, a potem w zaincludowanym pliku nowa_rejestracja.php w linii 2 próbowałeś wysłać nagłówki wykonując session_start. Poczytaj o podstawach protokołu HTTP (wszystkie nagłówki muszą zostać wysłane zanim zacznie sie wysyłać treść strony). Włączenie buforowania wyjścia załatwia sprawę, bo treść tak na prawdę nie jest na bieżąco wysyłana do przeglądarki, tylko gromadzona jest w pamięci na serwerze. Wysyłana jest dopiero na samym końcu skryptu, albo po wywołaniu funkcji typu ob_end_flush. Ty buforowanie wyjścia włączyłeś zbyt późno. |
|
|
|
waqmaz session_start(); 1.02.2011, 20:07:59
Piogola Sprawdź czy nie masz żadnych znaków przed zainicjo... 1.02.2011, 20:11:43
waqmaz Cytat(Piogola @ 1.02.2011, 20:11:43 )... 1.02.2011, 20:13:27
waqmaz Linia 86 pliku index:
<?php if($_GET[... 2.02.2011, 00:57:47
bleblok Może wystarczy, że odpalisz session_start na począ... 2.02.2011, 08:52:49
waqmaz ale ja chciałbym je wywołać z innego pliku. btw. c... 2.02.2011, 11:16:49
Noidea 1.session_start wysyła do przeglądarki nagłówki
2.... 2.02.2011, 11:46:01
waqmaz 1. Chodzi o header('location: strona.php')... 2.02.2011, 13:03:14
Piogola Ustaw session_start na samym początku pliku index.... 2.02.2011, 15:53:56
waqmaz Nie działa, też to samo. Warning blah blah blah : ... 2.02.2011, 16:42:23
osl Myślę, że Piogola chciał Ci zaprezentować, jak Two... 2.02.2011, 16:51:26
waqmaz W ten sposób nigdy to nie zadziała, gdyż jest to l... 2.02.2011, 17:09:37
osl Nie bardzo widzę, gdzie to jest sprzeczne. CytatBt... 2.02.2011, 17:17:10
waqmaz Osl jesteś moim bogiem!!! 2.02.2011, 18:18:20
osl Eeee.... nie bardzo wiem dlaczego
Wszelkie thanks... 2.02.2011, 18:20:28
waqmaz session_start(); musi byc na samym poczatku indexu... 3.02.2011, 12:15:47 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 11:38 |