Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Sprawdzanie, czy kod jest poprawny.
Forum PHP.pl > Forum > Przedszkole
Casley
Witam, chciałbym zapytać, czy ktoś z użytkowników posiada i podzieli się skryptem, który działa następująco.

Użytkownik ma na stronie 4 pola:
1.Nick
2.Hasło
3.Email
4.KOD


Po uzupełnieniu wszystkich pól, skrypt sprawdza czy wartość podana w polu KOD znajduje się w jeden z tabel w bazie danych.

Pozdrawiam,
Casley.
Turson
http://funkcje.net/view/2/8/12673/index.html Niewielka modyfikacja wystarczy...
Casley
Po zaaplikowaniu tego skryptu dostaję błędy:

  1. Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/w324/domains/ransey.pl/public_html/ranking.php on line 33
  2.  
  3. Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/w324/domains/ransey.pl/public_html/ranking.php on line 34
  4.  
  5. Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/w324/domains/ransey.pl/public_html/ranking.php on line 41
  6. Nie mogłem Cię zarejestrować!
Turson
Bez kodu możemy wróżyć
Casley
  1. <?PHP
  2.  
  3. echo '<form method="post" action="skrypt.php?akcja=wykonaj">
  4.  
  5. <table><tr>
  6. <td>Nazwa : </td><td><input type="text" name="nick" /></td></tr><br>
  7. <tr><td>Hasło : </td><td><input type="password" name="haslo" /></td></tr><br>
  8. <tr><td>Powtórz hasło : </td><td><input type="password" name="vhaslo" /></td></tr><br>
  9. <tr><td>Email : </td><td><input type="text" name="email" /></td></tr><br>
  10. <tr><td>Powtórz email : </td><td><input type="text" name="vemail" /></td></tr><br>
  11.  
  12. <tr><td></td><td><input type="submit" value="Zarejestruj"></td></tr></table>
  13. </form> ';
  14.  
  15. $akcja = $_GET['akcja'];
  16. if ($akcja == wykonaj) {
  17. $nick = substr(addslashes(htmlspecialchars($_POST['nick'])),0,32);
  18. $haslo = substr(addslashes($_POST['haslo']),0,32);
  19. $vhaslo = substr($_POST['vhaslo'],0,32);
  20. $email = substr($_POST['email'],0,32);
  21. $vemail = substr($_POST['vemail'],0,32);
  22. $nick = trim($nick);
  23. //
  24. $handle = mysql_connect('localhost', 'Moj_login', 'Moje_haslo') or die ('Blad polaczenia z baza');
  25. $tmp = mysql_select_db('w324_czyli') or die ('Zla baza danych');
  26. $nick = substr(addslashes(htmlspecialchars($_POST['nick'])),0,32);
  27. $haslo = substr(addslashes($_POST['haslo']),0,32);
  28. $vhaslo = substr($_POST['vhaslo'],0,32);
  29. $email = substr($_POST['email'],0,32);
  30. $vemail = substr($_POST['vemail'],0,32);
  31. $nick = trim($nick);
  32. //kilka sprawdzen co do nicku i maila
  33. $spr1 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM w324_czyli WHERE nick='$nick' LIMIT 1")); //czy user o takim nicku istnieje
  34. $spr2 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM w324_czyli WHERE email='$email' LIMIT 1")); // czy user o takim emailu istnieje
  35. $pos = strpos($email, "@");
  36. $pos2 = strpos($email, ".");
  37. $emailx = explode("@", $email);
  38. if ($emailx[1] == 'o2.pl') {
  39. $emailx1 = $emailx[0].'@go2.pl';
  40. $emailx2 = $emailx[0].'@tlen.pl';
  41. $spr3 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM w324_czyli WHERE email='$emailx1' OR `email`='$emailx2' LIMIT 1"));
  42. }elseif ($emailx[1] == 'go2.pl') {
  43. $emailx1 = $emailx[0].'@o2.pl';
  44. $emailx2 = $emailx[0].'@tlen.pl';
  45. $spr3 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM w324_czyli WHERE email='$emailx1' OR `email`='$emailx2' LIMIT 1"));
  46. }elseif ($emailx[1] == 'tlen.pl') {
  47. $emailx1 = $emailx[0].'@go2.pl';
  48. $emailx2 = $emailx[0].'@o2.pl';
  49. $spr3 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM w324_czyli WHERE email='$emailx1' OR `email`='$emailx2' LIMIT 1"));
  50. }
  51. $komunikaty = '';
  52. $spr4 = strlen($nick);
  53. $spr5 = strlen($haslo);
  54. //sprawdzenie co uzytkownik zle zrobil
  55. if (!$nick || !$email || !$haslo || !$vhaslo || !$vemail ) {
  56. $komunikaty .= "<font size='3'>Musisz wypelnic wszystkie pola!</font><br>"; }
  57. if ($spr4 < 3) {
  58. $komunikaty .= "<font size='3'>Login musi mieć przynajmniej 3 znaki</font><br>"; }
  59. if ($spr5 < 4) {
  60. $komunikaty .= "<font size='3'>Hasło musi mieć przynajmniej 4 znaki</font><br>"; }
  61. if ($spr1[0] >= 1) {
  62. $komunikaty .= "<font size='3'>Ten login jest zajęty!</font><br>"; }
  63. if ($spr2[0] >= 1) {
  64. $komunikaty .= "<font size='3'>Ten e-mail jest już używany!</font><br>"; }
  65. if ($email != $vemail) {
  66. $komunikaty .= "<font size='3'>E-maile się nie zgadzają ...</font><br>";}
  67. if ($haslo != $vhaslo) {
  68. $komunikaty .= "<font size='3'>Hasła się nie zgadzają ...</font><br>";}
  69. if ($pos == false OR $pos2 == false) {
  70. $komunikaty .= "<font size='3'>Nieprawidłowy adres e-mail</font><br>"; }
  71. if ($spr3[0] >= 1) {
  72. $komunikaty .= "<font size='3'>Nie można zarejestrować kilku kont na jedną poczte o2.</font><br>"; }
  73.  
  74. //jesli cos jest nie tak to blokuje rejestracje i wyswietla bledy
  75. if ($komunikaty) {
  76. <font size="3"><br><br>Popraw blędy :<br>
  77. '.$komunikaty.'<br>';
  78. } else {
  79. //jesli wszystko jest ok dodaje użytkownika i wyswietla informacje
  80. $nick = str_replace ( ' ','', $nick );
  81.  
  82. mysql_query("INSERT INTO `w324_czyli` (nick, haslo, email)
  83. VALUES('$nick','$haslo','$email')") or die("Nie mogłem Cię zarejestrować!");
  84.  
  85. echo '<br><font size="3">Zostałeś zarejestrowany jako '.$nick.'.<br> Teraz możesz się zalogować. </font>';
  86. }
  87. }
  88.  
  89. ?>
Turson
  1. $nick = substr(addslashes(htmlspecialchars($_POST['nick'])),0,32);
  2. $haslo = substr(addslashes($_POST['haslo']),0,32);
  3. $vhaslo = substr($_POST['vhaslo'],0,32);
  4. $email = substr($_POST['email'],0,32);
  5. $vemail = substr($_POST['vemail'],0,32);
  6. $nick = trim($nick);

Po co robisz to dwukrotnie

Twoja baza i tabela nazywają się jednakowo "w324_czyli" questionmark.gif ohmy.gif

Do count() używa się samego mysql_query bez mysql_fetch_*
Turson
2 razy masz ten sam kod. Chyba rozumiesz?

  1. $spr1 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM w324_czyli WHERE nick='$nick' LIMIT 1")); //czy user o takim nicku istnieje

zamień na
  1. $spr1 = mysql_query("SELECT COUNT(*) FROM w324_czyli WHERE nick='$nick' LIMIT 1"); //czy user o takim nicku istnieje

oraz w reszcie takich przypadków
com
może to Ci sie przyda:
http://www.html-form-guide.com/php-form/ph...ation-form.html
http://www.w3schools.in/php-tutorial/php-captcha/

A o tych herezjach z funkcje.net zapomnij wink.gif
Casley
Poprawiłem dane do łączenia się z bazą. Teraz skrypt ładnie działa i nie mam zastrzeżeń. Tylko czy pomoglibyście mi przerobić tak, by rejestrował użytkownika do bazy tylko wtedy kiedy wartość pola kod będzie zgodna z wartością w danej tabeli?
Turson
Dodajesz warunek porównujący wpisany kod z kodem w bazie
Casley
Jest jeszcze możliwość aby wykorzystany kodu usunął sie z tabeli?
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.