Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Rejestracja w krokach za pomocą sesji
greenghost
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 17.02.2010

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


Witam.
Nie ukrywam, że posługuję się sesjami zaledwie od paru godzin a całym php chyba drugi dzień. Moim celem jest rejestracja w dwóch krokach. W pierwszym pobieramy login oraz hasło, i wysyłamy je do sesji a drugi krok ma odczytać dane z kroku pierwszego, pobrać parę innych zmiennych i utworzyć wpis w bazie danych test w tabeli user. Konfiguracja połączenia bazy danych jak łatwo się domyślić jest zawarta w conn.php. Dodatkowo skrypt sprawdza czy użytkownik jest zalogowany, jeśli tak, to nie wyświetlają mu się okna do tworzenia konta.

  1. <?php
  2. require('conn.php');
  3. include("head.php");
  4. if (isset($_SESSION['user_id']) and isset($_SESSION['login']))
  5. {
  6. ?>
  7. <h1>
  8. <?
  9. echo "Nie możesz utworzyć nowego konta, ponieważ jeste? zalogowany jako: ";
  10. echo $_SESSION['login'];
  11. ?>
  12. <form action="logout.php" method="post">
  13. <input type="submit" value="Wyloguj" />
  14. </form>
  15. <h1/>
  16. <?
  17. }
  18. else
  19. {
  20. ?>
  21. <h1>
  22. <?
  23. if (isset($_POST['konto']) and isset($_POST['password']) and isset($_POST['password2']))
  24. {
  25. if ($_POST['password']==$_POST['password2'])
  26. {
  27. $konto = mysql_real_escape_string (trim($_POST['konto']));
  28. $password = sha1(md5(mysql_real_escape_string (trim($_POST['password']))));
  29. $ile =mysql_query("SELECT * FROM `user` WHERE login = '$konto'");
  30. $ile = mysql_num_rows($ile);
  31. if ($ile==0)
  32. {
  33. $zapytanie= ($_SESSION['krok_login']=$konto and $_SESSION['krok_pass']=$password);
  34. }
  35. else
  36. {
  37. echo("Taki użytkownik już istnieje, kliknij wstecz aby zarejestrować się ponownie.");
  38. }
  39. }
  40. else echo ("Podane hasła nie zgadzaj? się!");
  41. }
  42. elseif (isset($_SESSION['krok_login']) and isset($_SESSION['krok_pass']))
  43. {
  44. if (isset($_POST['imie']) and isset($_POST['plec']) and isset($_POST['wioska']) and isset($_POST['natura']))
  45. {
  46. $krok_login = session_name("krok_login");
  47. $krok_pass = session_name("krok_pass");
  48. $imie = mysql_real_escape_string (trim($_POST['imie']));
  49. $plec = mysql_real_escape_string (trim($_POST['plec']));
  50. $wioska = mysql_real_escape_string (trim($_POST['wioska']));
  51. $natura = mysql_real_escape_string (trim($_POST['natura']));
  52. $ile2 =mysql_query("SELECT * FROM `user` WHERE imie = '$imie'");
  53. $ile2 = mysql_num_rows($ile2);
  54. if ($ile2==0)
  55. {
  56. $zapytanie2= "INSERT INTO user (login,password,imie,plec,wioska,natura) VALUES('$krok_login','$krok_pass','$imie',$plec','$wioska','$natura')";
  57. mysql_query($zapytanie2) or die("Wyst?pił bł?d" );
  58. echo('Konto '.$konto.' o loginie '.login.' zostalo pomy?lnie kurwa utworzone!');
  59. }
  60. else
  61. {
  62. echo("To imię jest w użyciu.");
  63. }
  64. }
  65. else
  66. {
  67. ?>
  68. <h1>Dalsza cze?ć rejestracji.</h1>
  69. <form action="register2.php" method="post">
  70. <table style="text-align: right; width: 250px;">
  71. <tr>
  72. <td>
  73. Imię:
  74. </td>
  75. <td>
  76. <input name="imie" type="text" value="" />
  77. </td>
  78. </tr>
  79. <tr>
  80. <td>
  81. Płeć:
  82. </td>
  83. <td>
  84. <input type="radio" name="plec" value="facet" checked="checked" />Mężczyzna
  85. <input type="radio" name="plec" value="baba" />Kobieta
  86. </td>
  87. </tr>
  88. <tr>
  89. <td>
  90. Wioska:
  91. </td>
  92. <td>
  93. <select name="wioska">
  94. <option value="konoha">Konoha-Gakure</option>
  95. <option value="suna">Suna-Gakure</option>
  96. <option value="kiri">Kiri-Gakure</option>
  97. <option value="kumo">Kumo-Gakure</option>
  98. <option value="iwa">Iwa-Gakure</option>
  99. <option value="oto">Oto-Gakure</option>
  100. </select>
  101. </td>
  102. </tr>
  103. <tr>
  104. <td>
  105. Natura chakry:
  106. </td>
  107. <td>
  108. <select name="natura">
  109. <option value="wiatr">Wiatr</option>
  110. <option value="woda">Woda</option>
  111. <option value="ogien">Ogień</option>
  112. <option value="ziemia">Ziemia</option>
  113. <option value="blysk">Błyskawica</option>
  114. </select>
  115.  
  116. </td>
  117. </tr>
  118. </table>
  119. <table style="text-align: center; width: 250px;">
  120. <tr>
  121. <td>
  122. <input type="submit" value="Zarejestruj" />
  123. </td>
  124. <tr>
  125. </table>
  126. </form>
  127. <?
  128. }
  129. }
  130. else
  131. {
  132. ?>
  133. Dodaj nowego użytkownika.</h1>
  134. <form action="register2.php" method="post">
  135. <table style="text-align: right; width: 250px;">
  136. <tr>
  137. <td>
  138. Nazwa konta:
  139. </td>
  140. <td>
  141. <input name="konto" type="text" value="" />
  142. </td>
  143. </tr>
  144. <tr>
  145. <td>
  146. Hasło:
  147. </td>
  148. <td>
  149. <input name="password" type="password" value="" />
  150. </td>
  151. </tr>
  152. <tr>
  153. <td>
  154. Powtórz hasło:
  155. </td>
  156. <td>
  157. <input name="password2" type="password" value="" />
  158. </td>
  159. </tr>
  160. </table>
  161. <table style="text-align: center; width: 250px;">
  162. <tr>
  163. <td>
  164. <input type="submit" value="Zarejestruj" />
  165. </td>
  166. <tr>
  167. </table>
  168. </form>
  169.  
  170. <?
  171. }
  172. }
  173. include("foot.php");
  174. ?>
  175.  


Problemy są dwa.
Pierwszym jest to, że po wprowadzeniu "pierwszych" danych (loginu i hasła), strona pozostaje pusta, i muszę ją odświeżyć, aby przejść do drugiego kroku.
Drugim problemem jest to, że po wszystkim, skrypt nie tworzy żadnych wpisów w bazie danych, wyświetla się jedynie napis "Wystąpił błąd". Mniemam, że błąd znajduje się w linijkach 48-49. Proszę o naprawienie skryptu, ewentualnie nakierowanie mnie na dobrą drogę poprzez wskazanie mi funkcji jaką muszę użyć.

Ten post edytował greenghost 19.02.2010, 00:47:44
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: 17.10.2025 - 19:45