Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rejestracja
Forum PHP.pl > Forum > PHP
Przem4S
Tak więc mam problem ze skryptem rejestracji, przedstawia się następująco (plik:rejestruj.php):
  1. <?php
  2. if ( !defined('TYLKO_ZE_STRONY') )
  3. {
  4. die('
  5. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. </head>
  9. <br>
  10. Błąd 403 - Dostęp zabroniony.
  11. </html>
  12. ');
  13. }
  14. ?>
  15.  
  16. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  17. <head>
  18. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  19. <link rel="stylesheet" type="text/css" href="styles/default/main.css" media="screen" />
  20. </head>
  21. <br>
  22. <br>
  23. <br>
  24. <?php
  25. //Pobieranie danych do łączenia
  26. require('config.php');
  27. //Zmienne z danymi rejestracyjnymi
  28. $login = mysql_real_escape_string (trim($_POST['login']));
  29. $haslo = sha1(mysql_real_escape_string (trim($_POST['haslo'])));
  30. $haslo2 = mysql_real_escape_string (trim($_POST['haslo']));
  31. $imie = mysql_real_escape_string (trim($_POST['imie']));
  32. $nazwisko = mysql_real_escape_string (trim($_POST['nazwisko']));
  33. $plec = mysql_real_escape_string (trim($_POST['plec']));
  34. $numer_gg = mysql_real_escape_string (trim($_POST['gg']));
  35. $miasto = mysql_real_escape_string (trim($_POST['miasto']));
  36. $data_rejestracji = date("Y-m-d");
  37. $adres_ip = $_SERVER['REMOTE_ADDR'];
  38. $data_urodzenia[rok] = $_POST['data_urodzenia[rok]'];
  39. $data_urodzenia[miesiac] = $_POST['data_urodzenia[miesiac]'];
  40. $data_urodzenia[dzien] = $_POST['data_urodzenia[dzien]'];
  41. $data_urodzenia = date($_POST['data_urodzenia']['rok'].'-'.$_POST['data_urodzenia']['miesiac'].'-'.$_POST['data_urodzenia']['dzien']);
  42. $email = mysql_real_escape_string (trim($_POST['email']));
  43.  
  44. echo '<br><center><font size="4">Rejestracja nowego użytkownika</font></center><br><br>';
  45.  
  46. //Warunki rejestracji
  47. if (empty($_POST['login']))
  48. {
  49. echo '<br><br><br><font size="3" color="red">Błąd:</font><br><br>Nie wypełniłeś pola <strong>Login</strong>, które jest wymagane do rejestracji.<br><br>Popraw błąd klikając wstecz lub klikając <a style="text-decoration:underline;" href="index.php?pokaz=rejestracja">tutaj</a>.<br><br><br>';
  50. }
  51. else {
  52. if (empty($_POST['haslo']))
  53. {
  54. echo ('<br><br><br><font size="3" color="red">Błąd:</font><br><br>Nie wypełniłeś pola <strong>Hasło</strong>, które jest wymagane do rejestracji.<br><br>Popraw błąd klikając wstecz lub klikając <a style="text-decoration:underline;" href="index.php?pokaz=rejestracja">tutaj</a>.<br><br><br>');
  55. }
  56. else {
  57. if (empty($_POST['haslo2']))
  58. {
  59. echo ('<br><br><br><font size="3" color="red">Błąd:</font><br><br>Nie wypełniłeś pola <strong>Potwierdź hasło</strong>, które jest wymagane do rejestracji.<br><br>Popraw błąd klikając wstecz lub klikając <a style="text-decoration:underline;" href="index.php?pokaz=rejestracja">tutaj</a>.<br><br><br>');
  60. }
  61. else {
  62. if (empty($_POST['imie']))
  63. {
  64. echo ('<br><br><br><font size="3" color="red">Błąd:</font><br><br>Nie wypełniłeś pola <strong>Imię</strong>, które jest wymagane do rejestracji.<br><br>Popraw błąd klikając wstecz lub klikając <a style="text-decoration:underline;" href="index.php?pokaz=rejestracja">tutaj</a>.<br><br><br>');
  65. }
  66. else {
  67. if (empty($_POST['email']))
  68. {
  69. echo ('<br><br><br><font size="3" color="red">Błąd:</font><br><br>Nie wypełniłeś pola <strong>Email</strong>, które jest wymagane do rejestracji.<br><br>Popraw błąd klikając wstecz lub klikając <a style="text-decoration:underline;" href="index.php?pokaz=rejestracja">tutaj</a>.<br><br><br>');
  70. }
  71. else {
  72. if($_POST['captcha'] != $_SESSION['captcha'])
  73. {
  74. echo '<br><br><br><font size="3" color="red">Błąd:</font><br><br>Niepoprawnie przepisałeś <strong>kod z obrazka</strong>.<br><br>Popraw błąd klikając wstecz lub klikając <a style="text-decoration:underline;" href="index.php?pokaz=rejestracja">tutaj</a>.<br><br><br>';
  75. }
  76. else {
  77. if ($_POST['haslo']==$_POST['haslo2'])
  78. {
  79. $czy_istnieje = mysql_query("SELECT * FROM `uzytkownicy` WHERE login = '$login'");
  80. $czy_istnieje = mysql_num_rows($czy_istnieje);
  81. $czy_istnieje_email = mysql_query("SELECT * FROM `uzytkownicy` WHERE email = '$email'");
  82. $czy_istnieje_email = mysql_num_rows($czy_istnieje_email);
  83.  
  84. if ($czy_istnieje==0)
  85. {
  86. if ($czy_istnieje_email==0)
  87. {
  88. $zapytanie="INSERT INTO uzytkownicy (login,haslo,imie,nazwisko,plec,gg,miasto,data_rejestracji,adres_ip,data_uro
    dzenia,email,aktywacja) VALUES('$login','$haslo','$imie','$nazwisko','$plec','$numer_gg','$miasto','$data_rejestracji','$adres_ip','$data_urodzenia','$email','0')"
    ;
  89. mysql_query($zapytanie) or die("Wystąpił błąd: ".mysql_error());
  90. echo('<strong>Wynik:</strong><br><br><font color="green">Konto '.$login.' zostało utworzone.</font><br><br><strong>Dane konta:</strong><br><br>Login: '.$login.' .<br>Hasło: '.$haslo2.' .<br>Imię: '.$imie.' .<br>Nazwisko: '.$nazwisko.' .<br>Płeć: '.$plec.' .<br>Numer GG: '.$numer_gg.' .<br>Miasto: '.$miasto.' .<br>Data urodzenia: '.$data_urodzenia.' .<br>Email: '.$email.' .<br><br><br><strong>Data rejestracji:</strong> '.$data_rejestracji.' .<br><strong>Adres IP z którego się zarejestrowano:</strong> '.$adres_ip.' .<br><br><br>');
  91. }
  92. else {
  93. echo '<br><br><br><font size="3" color="red">Błąd:</font><br><br>Podany Email jest już używany w bazie danych.<br><br>Popraw błąd klikając wstecz lub klikając <a style="text-decoration:underline;" href="index.php?pokaz=rejestracja">tutaj</a>.<br><br><br>';
  94. }
  95. }
  96. else {
  97. echo '<br><br><br><font size="3" color="red">Błąd:</font><br><br>Podany Login jest już używany w bazie danych.<br><br>Popraw błąd klikając wstecz lub klikając <a style="text-decoration:underline;" href="index.php?pokaz=rejestracja">tutaj</a>.<br><br><br>';
  98. }
  99. } }
  100. }
  101. }
  102. }
  103. }
  104. }
  105. ?>
  106. </html>


Mam problem z captcha'ą, mianowicie za każdym razem występuje błąd przepisywania przepisany kod nie zgadza się z sesją :/

Formularz rejestracyjny:

  1. <?php
  2. if ( !defined('TYLKO_ZE_STRONY') )
  3. {
  4. die('
  5. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. </head>
  9. <br>
  10. Błąd 403 - Dostęp zabroniony.
  11. </html>
  12. ');
  13. }
  14. ?>
  15. <?php
  16. echo '<br><center><font size="4">Rejestracja nowego użytkownika</font></center><br><br>';
  17. ?>
  18.  
  19. Wypełnij poniższy formularz aby dodać nowego użytkownika:<br>
  20. <br>
  21. <br>
  22. <br>
  23. <form action="index.php?pokaz=rejestruj" method="post">
  24. Login:<font color="red">*</font><br><br><input name="login" type="text" value="" size="35"/><br><br>
  25. Hasło:<font color="red">*</font><br><br><input name="haslo" type="password" value="" size="35"/><br><br>
  26. Powtórz hasło:<font color="red">*</font><br><br><input name="haslo2" type="password" value="" size="35"/><br><br>
  27. Imię:<font color="red">*</font><br><br><input name="imie" type="text" value="" size="35"/><br><br>
  28. Nazwisko:<font color="yellow">*</font><br><br><input name="nazwisko" type="text" value="" size="35"/><br><br>
  29. Płeć:<font color="red">*</font><br><br><select name="plec"><option value="Mężczyzna">Mężczyzna</option><option value="Kobieta">Kobieta</option></select><br><br>
  30. Numer GG:<font color="yellow">*</font><br><br><input name="gg" type="text" value="" size="35"/><br><br>
  31. Miasto:<font color="yellow">*</font><br><br><input name="miasto" type="text" value="" size="35"/><br><br>
  32. Data urodzenia:<font color="red">*</font><br><br>
  33. <select name="data_urodzenia[dzien]"><?php for ($i=1; $i<=31; $i++){echo "<option value='$i'>$i</option>";}?></select> - <select name="data_urodzenia[miesiac]"><?php for ($i=1; $i<=12; $i++){echo "<option value='$i'>$i</option>";}?></select> - <select name="data_urodzenia[rok]"><?php for ($i=2010; $i>=1900; $i=$i-1){echo "<option value='$i'>$i</option>";} ?></select>
  34. <br><br>
  35. Email:<font color="red">*</font><br><br><input name="email" type="text" value="" size="35"/><br><br>
  36. Weryfikacja:<font color="red">*</font><br><br>
  37. <img src="captcha.php" alt="" style="vertical-align: middle" /> <input name="captcha" style="width: 100px; height: 20px; vertical-align: middle;" type="text" /><br><br>
  38. <font color="red">*</font> - Dane wymagane do procesu rejestracji.<br>
  39. <font color="yellow">*</font> - Dane nie wymagane aczkowliek zaleca się ich wypełnienie.<br>
  40. <br>
  41. <br>
  42. <center><input type="submit" value="Zarejestruj" /> <input type="reset" value="Wyczyść" /></center>
  43. </form><br><br>
  44. </html>
greycoffey
A gdzie session_start? Do tego wykonywanie dwóch zapytań w fragmencie przy sprawdzaniu czu email/login istnieje nie jest wydajne, nieprawdaż?
ShadowD
Ciężko o większy porządek w kodzie, może więcej html i php razem. haha.gif
Przem4S
haha.gif rzeczywiście zrypałem, wcale nie rozpoczynając sesji biggrin.gif A porządek taki jest jaki jest nerdsmiley.png

EDIT: Okej teraz mam drugi problem, nie wiem jak wsiąść się za dynamiczny panel logowania, mianowicie wyświetlanie formularza a po zalogowaniu wyświetlanie danych etc.
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.