Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Rejestracja
Forum PHP.pl > Forum > Przedszkole
falfin
Witam, próbuje wlaśnie napisać skrypt rejestracji z systemem kontroli sesji. Jednak jak na razie nie za bardzo mi to wychodzi :/ Wyskakuje mi taki oto błąd
  1. <?php
  2. Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:WebServhttpdPHP & MySQLinternetowaPrzetworzonaRejestracja.php:22) in C:WebServhttpdPHP & MySQLinternetowaPrzetworzonaRejestracja.php on line 52
  3. ?>


Mój skrypt wyglada tak (dodam tylko ze 52 linia to miejsce gdzie skrypt jest dołączony na stronie głównej)

  1. <?php
  2.  
  3. $nazwa_uz= $_POST['nazwa_uz'];
  4. $haslo= $_POST['haslo'];
  5. $haslo2= $_POST['haslo2'];
  6. $email= $_POST['email'];
  7.  
  8.  
  9.  
  10. // SPRAWDZENIE  CZY WSZYSTKIE DANE  ZOSTALY PODANE
  11. if (!$nazwa_uz || !$haslo || !$haslo2 || !$email)
  12. {
  13. echo ' Nie podales wszyszystkich danych. Wróć do poprzedniej strony i uzupełnij brakuj
    ące pola '
     ; // SPRAWDZENIE  CZY WSZYSTKIE DANE  ZOSTALY PODANE
  14. }
  15.  
  16.  
  17. else
  18. {
  19. //SPRAWDZENIE  POPRAWNOSCI DANYCH
  20. if(strlen($nazwa_uz)>16)
  21. {
  22. echo ' Podana nazwa użytkownika jest za długa. Powinna ona zawierać mniej niż 16 znakó
    w.'
    ;
  23. }
  24.  
  25. if(strlen($haslo)<=5)
  26. {
  27. echo 'Podane hasło jest za krótkie! Ze względów bezpieczeństwa,powinno ono zawerać con
    ajmniej 5 znaków.'
    ;
  28. }
  29.  
  30. if ($haslo != $haslo2)
  31. {
  32. echo "Podane hasła są różne!";
  33. }
  34.  
  35. if (!eregi ("[a-zA-z0-9_]+@[a-zA-z0-9-]+.[a-zA-z0-9-.]+$", $email))
  36. {
  37. echo 'Podany adres e-mail jest nie poprawny.';
  38. }
  39. }
  40. // JEZELI  WSZYSTKO  SIE  ZGADZA TO  REJESTRACJA
  41.  
  42. // SPRAWDZENIE  CZY  MECHANIZM  DODAWANIA  ZNAKOW  JEST  WLACZZONY  I  JEZELI  NIE  TO  ICH  DODANIE
  43. {
  44. $nazwa_uz = addslashes($nazwa_uz);
  45. $haslo = addslashes ($haslo);
  46. $email=addslashes ($email);
  47. }
  48.  
  49. //POLACZENIE  Z BAZA DANYCH
  50. require('polaczenie.php');  //PLIK  POLACZENIA  W  OSOBNYM  PLIKU  PONIEWAZ BEDZIE
  51. //WYKORZYSTYWANY W INNYCH  APLIKACJACH :)
  52.  
  53.  
  54.  
  55. //JEZELI NAWIAZANO POLACZENIE
  56. //SPRAWDZENIE CZY PODANA NAZWA  NIE  JEST JUZ ZAJETA
  57. $zapytanie1= "select * from uzytkownik where nazwa_uz='$nazwa_uz' ";
  58. $wynik1 = mysqli_query($mysql, $zapytanie1);
  59.  
  60. if(!$wynik1)
  61. {
  62. echo 'Przepraszamy rejestracja w tej chwili jest nie mozliwa. Prosze spróbowac pozniej
    .'
    ;
  63. }
  64.  
  65. if(mysqli_num_rows($wynik1)>0)
  66. {
  67. echo 'Wybrany nick jest juz zajety. Prosze wybrac inny i sprobowac ponnownie';
  68. }
  69.  
  70.  
  71. //JEZELI  NICK  NIE  JEST  ZAJETY REJESTRACJA!
  72. $zapytanie2= "insert into uzytkownik values ('$nazwa_uz' , sha1('$haslo') , '$email') ";
  73. $wynik2 = mysqli_query($mysql, $zapytanie2);
  74.  
  75. $_SESSION['prawid-uzyt']=$nazwa_uz; //REJESTRACJA  ZMIENNEJ SESJI
  76.  
  77. if(!$wynik2)
  78. {
  79. echo 'Przepraszamy rejestracja w tej chwili jest nie mozliwa. Prosze spróbowac pozniej
    .'
    ;
  80. }
  81.  
  82. else
  83. {
  84. echo'Rejestracja zakończona sukcesem. Prosze udać się na strone członkowską w celu ko
    nfiguracji profilu'
    ;
  85. }
  86.  
  87. ?>
kresh
  1. <?php
  2. ?>


Było już o tym nie raz.

Przed wywołaniem session_start() nic nie może zostać wysłane do przeglądarki celem wyświetlenia - nic nie może być wyświetlone zarówno przez funkcje echo(), print(), itp jak i poprzez dołączony plik, który zawiera HTML ( który po dołączeniu jest wyświetlany w przeglądarce).

Najprościej jest dać session_start() na samym początku pliku głównego, który dopiero potem includuje inne pliki.
Lee
w którymś pliku dołączanym użyłeś już session_start(); próbowałeś z ob_start(); na samym początku pliku?
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.