Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: captcha w formularzu
Forum PHP.pl > Forum > PHP
black008
Witam!! Mam problem tego rodzaju. Mam takie dwa pliki:
registration.php
  1. <?php
  2. if (!isset($_POST['zarejestruj']))
  3. {
  4.  
  5. <table><form id="rejestracja" method="post" onsubmit="return sprawdz_formularz()">
  6. <tr>
  7. <td>Nazwa konta:</td><td><input name="login" type="text">*</td>
  8. </tr>
  9. <tr>
  10. <td>Haslo:</td><td><input name="password" type="password">*</td>
  11. </tr>
  12. <tr>
  13. <td>Powtorz haslo:</td><td><input name="password2" type="password"></td>
  14. </tr>
  15. <tr>
  16. <td>Podaj email:</td><td><input name="email" type="text">*</td>
  17. </tr>
  18. <tr>
  19. <td>Powtorz email:</td><td><input name="email2" type="text"></td>
  20. </tr>
  21. <tr>
  22. <td>Przepisz kod z obrazka: </td><td><input name="kod" type="text" maxlength="5" size="5"></td>
  23. </tr>
  24. <tr>
  25. <td><input type="submit" value="Zarejestruj" name="zarejestruj" ></td><td></td>
  26. </tr>
  27. </form></table>
  28. <br><small>* - pola wymagane.</small>';
  29. }
  30. else
  31. {
  32. $haslo = mysql_real_escape_string(addslashes(htmlspecialchars(trim($_POST['password']))));
  33. $haslo2 = mysql_real_escape_string(addslashes(htmlspecialchars(trim($_POST['password2']))));
  34. $email2 = mysql_real_escape_string(addslashes(htmlspecialchars(trim($_POST['email2']))));
  35.  
  36. $query=mysql_query("SELECT `login` FROM `users` WHERE `login`='".$login."'");
  37. $wynik=mysql_fetch_array($query);
  38. $query=mysql_query("SELECT `email` FROM `users` WHERE `email`='".$email."'");
  39. $result=mysql_fetch_array($query);
  40. try
  41. {
  42. if ((empty($login) || empty($haslo) || empty($haslo2) || empty($email) || empty($email2) ))
  43. throw new regException('Uzupelnij wszystkie pola');
  44.  
  45. if ($login == $wynik['login'])
  46. throw new regException('Już istnieje takie użytkownik');
  47.  
  48. if ($haslo <> $haslo2)
  49. throw new regException('Hasla sie nie zgadzaja');
  50.  
  51. if (ValidEmail($mail))
  52. throw new regException('Email nie poprawny');
  53.  
  54. if ($email <> $email2)
  55. throw new regException('Emaile sie roznia');
  56.  
  57. if ($email == $result['email'])
  58. throw new regException('Taki email juz istnieje');
  59.  
  60. if ($_POST['kod_hide'] <> $_POST['kod'])
  61. throw new regException('Zle przepisany kod z obrazka');
  62.  
  63.  
  64. $haslo=sha1(md5($haslo));
  65. $wynik = mysql_query("INSERT INTO users (`login`,`password`,`email`)
  66. VALUES('$login', '$haslo', '$email')");
  67. echo"Zostałeś zarejestrowany!!";
  68. header( "refresh:3; url=index.php" );
  69. }
  70.  
  71. catch (regException $reg)
  72. {
  73. echo $reg;
  74.  
  75.  
  76. <table><form id="rejestracja" method="post" onsubmit="return sprawdz_formularz()">
  77. <tr>
  78. <td>Nazwa konta:</td><td><input name="login" type="text">*</td>
  79. </tr>
  80. <tr>
  81. <td>Haslo:</td><td><input name="password" type="password">*</td>
  82. </tr>
  83. <tr>
  84. <td>Powtorz haslo:</td><td><input name="password2" type="password"></td>
  85. </tr>
  86. <tr>
  87. <td>Podaj email:</td><td><input name="email" type="text">*</td>
  88. </tr>
  89. <tr>
  90. <td>Powtorz email:</td><td><input name="email2" type="text"></td>
  91. </tr>
  92. <tr>
  93. <td>Przepisz kod z obrazku: </font></td><td><input name="kod" type="text" maxlength="5" size="5">
  94.  
  95. <tr>
  96. <td><input type="submit" value="Zarejestruj" name="zarejestruj" ></td>
  97. </tr>
  98. </form></table>
  99. <br><small>* - pola wymagane.</small>';
  100.  
  101. }
  102. }
  103.  
  104. ?>


oraz captcha.php

  1. <?php
  2.  
  3.  
  4. header('Content-Type: image/jpeg');
  5.  
  6. $tla = glob("captcha_bcg/{*.jpg,*.jpeg}", GLOB_BRACE);
  7. $czcionki = glob("captcha_fonts/*.ttf");
  8.  
  9. $znaki = 'ABCDEFGHIJKLMNPQRSTUWXYZ123456789';
  10.  
  11. $obrazek_tla = $tla[array_rand($tla)];
  12. $liczba_znakow = rand(4, 6);
  13.  
  14. $cap = imagecreatefromjpeg($obrazek_tla);
  15.  
  16. $kolor = imagecolorallocate($cap, 250, 250, 250);
  17. $linie = imagecolorallocate($cap, 205, 205, 205);
  18.  
  19. for($x = 1; $x <= 50; $x++) // powtarzamy 50 razy - rysujemy 50 linii
  20. imageline( // funkcja rysująca linię
  21. $cap, // uchwyt obrazka
  22. 0, // współrzędna X początku linii
  23. rand(-100,imagesy($cap)+100), // współrzędna Y początku linii
  24. imagesx($cap), // współrzędna X końca linii
  25. rand(-100,imagesy($cap)+100), // współrzędna Y końca linii
  26. $linie // kolor linii
  27. );
  28.  
  29. for($x = 1; $x <= $liczba_znakow; $x++)
  30. {
  31. $czcionka = $czcionki[array_rand($czcionki)];
  32. $znak = $znaki[rand(0, strlen($znaki)-1)];
  33.  
  34. $odleglosc_miedzy_znakami = (round(imagesx($cap) / $liczba_znakow+1)-10)*($x-1)+10;
  35.  
  36. imagettftext( // funkcja pisząca tekst
  37. $cap, // uchwyt obrazka
  38. rand(10, 30), // rozmiar czcionki
  39. rand(-15, 15), // naczylenie znaku
  40. $odleglosc_miedzy_znakami, // odległość między znakami
  41. rand(20, 40), // położenie względem górnej krawędzi obrazka
  42. $kolor,
  43. $czcionka,
  44. $znak
  45. );
  46.  
  47.  
  48. }
  49.  
  50. imagejpeg($cap, 'cap.peg');
  51.  
  52. ?>


Moje pytanie jest takie: jak wstawić ten obrazek w rejestracje??
Spawnm
Dajesz <img src="/adres/do/pliku/z/obrazkiem.php">
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.