Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> session_start();
waqmaz
post
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:

  1. <div class="kontener_glowny">
  2. <?php if($_GET['action']!=NULL) { require $_GET['action'] . ".php"; } else { require "jakis_tam_plik.php"; } ?>
  3. </div>

Teraz w index.php powiedzmy klikam sobie w link o nazwie rejestracja, którego kod wygląda tak:
  1. <a href="index.php?action=kontener_rejestracji">Rejestracja</a>

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:
  1. <form action="index.php?action=rejestracja" method="post">

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) ;<.
  1. Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\index.php:86) in C:\xampp\htdocs\nowa_rejestracja.php on line 2

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
  1. @
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
waqmaz
post
Post #2





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 22.01.2011
Skąd: Murowana Goślina

Ostrzeżenie: (0%)
-----


1. Chodzi o header('location: strona.php'); zamiast require, czy o to, aby session_start(); po prostu było na samiutkim początku?
2. przeczytałem, ale nie zbyt rozumiem ; /
3.
  1. <?php
  2. header('location: index.php?action=kontener_rejestracji');
  3. ..kod..
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  7. <head>
czyż tak?
Dzięki stary, już i tak wiele mi pomogłeś. Jednak nadal nie mam pojęcia jak zrobić, aby wszystkie sesje był wyświetlane w index.php w tym samym oknie po kliknięciu na różne linki ; /
Nie zbyt obczajam to http ;/

DOBRA TO MOŻE INACZEJ: NAPISAŁEM NA POTRZEBY NAPRAWIENIA MOJEGO PROBLEMU KRÓCIUTKI PRZYKŁAD REJESTRACJI. Mam nadzieję, że znajdzie się ktoś kto przetestuje to i pomoże mi, albo chociaż zechce heh... Naprawdę mi na tym zależy. Zacznijmy:

Index.php:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <head>
  4. <link rel="stylesheet" href="style.css" type="text/css" />
  5. </head>
  6. <body>
  7.  
  8. <div class="kontener_glowny">
  9. <a href="index.php?action=kontener_rejestracji">Rejestracja</a>
  10. <?php if($_GET['action']!=NULL) { require $_GET['action'] . ".php"; } else { require "tekst_kontener_glowny.php"; } ?>
  11. </div>
  12.  
  13. </body>
  14. </html>


tekst_kontener_glowny.php:
  1. <h1>Kliknij w link Rejestracja!</h1>


kontener_rejestracji.php:
  1. <form action="index.php?action=nowa_rejestracja" method="post">
  2.  
  3. <p>Nazwa użytkownika:</p>
  4. <input type="text" name="nazwa_uz" size="16" maxlength="16" />
  5.  
  6. <p>Hasło:</p>
  7. <input type="password" name="haslo" size="16" maxlength="16" />
  8.  
  9. <p>Wprowadź hasło ponownie:</p>
  10. <input type="password" name="haslo2" size="16" maxlength="16" />
  11.  
  12. <input type="submit" value="Rejestruj">
  13. </form>


nowa_rejestracja.php
  1. <?php
  2.  
  3. echo '<h1>Rejestracja zakonczona pomyslnie jednak z tym Warning:</h1>';
  4. ?>


style.css:
  1. .kontener_glowny{
  2. margin: auto;
  3. width: 850px;
  4. height: 545px;
  5. background: yellow;
  6. }


No i wyskakuje ten błąd ; / Wie ktoś jak inaczej przesłać sesję do index.php? =/
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\index.php:10) in C:\xampp\htdocs\nowa_rejestracja.php on line 2

Ten post edytował waqmaz 2.02.2011, 14:14:10
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.10.2025 - 01:06