Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem ze wstawieniem captchy
Forum PHP.pl > Forum > Przedszkole
Szymi_2004
Witam wszystkich!
Mam problem z załączeniem math captchy do mojego formularza rejestracji. Kod dla math captchy wygląda następująco:

  1. if( isset( $_POST['secure'] ) ) /* jak dobrze rozumiem "secure" w tym wypadku jest nazwą pola do którego wprowadza się odpowiedź */
  2. {
  3. if($_POST['secure'] != $_SESSION['security_number'])
  4. {
  5. $error_message = "Źle przepisany kod";
  6. }
  7. else
  8. {
  9. /* funkcja odpowiadająca za poprawne wpisanie, w moim przypadku zakończenie rejestracji */
  10. }
  11. }


Teraz w jaki sposób umiejętnie go wkleić do poniższego kodu, tak aby walidacja działała, błędy wyświetlały się w polu "error_message" i wszystko ze sobą grało?

  1. <?php
  2. $error_message = "";
  3. if ($_SERVER['REQUEST_METHOD'] == 'POST')
  4. {
  5. $action = isset($_POST['action']) ? $_POST['action'] : '';
  6. require_once("config.php");
  7. $mysql_table = 'user';
  8.  
  9. $success_page = './../sukces1.html';
  10.  
  11. if ($action == 'signup')
  12. {
  13. $newusername = $_POST['username'];
  14. $newemail = $_POST['email'];
  15. $newpassword = $_POST['password'];
  16. $confirmpassword = $_POST['confirmpassword'];
  17. $newfullname = $_POST['fullname'];
  18. if ($newpassword != $confirmpassword)
  19. {
  20. $error_message = 'Hasła nie są takie same';
  21. }
  22. else
  23. if (!ereg("^[A-Za-z0-9_!@$]{1,50}$", $newusername))
  24. {
  25. $error_message = 'Wystapił błąd z nickiem !';
  26. }
  27. else
  28. if (!ereg("^[A-Za-z0-9_!@$]{1,50}$", $newpassword))
  29. {
  30. $error_message = 'Hasło jest złe !';
  31. }
  32. else
  33. if (!ereg("^[A-Za-z0-9_!@$.' &]{1,50}$", $newfullname))
  34. {
  35. $error_message = 'Imię i nazwisko jest błędne !';
  36. }
  37. else
  38. if (!ereg("^.+@.+\..+$", $newemail))
  39. {
  40. $error_message = 'Zły adres email !';
  41. }
  42. else
  43. if (empty($error_message))
  44. {
  45. $db = mysql_connect($mysql_server, $mysql_username, $mysql_password);
  46. mysql_select_db($mysql_database, $db);
  47. $sql = "SELECT username FROM ".$mysql_table." WHERE username = '".$newusername."'";
  48. $result = mysql_query($sql, $db);
  49. if ($data = mysql_fetch_array($result))
  50. {
  51. $error_message = 'Wystąpił błąd !';
  52. }
  53. }
  54. if (empty($error_message))
  55. {
  56. /* CZĘŚĆ SKRYPTU ODPOWIEDZIALNA ZA WYSYŁANIE POTWIERDZENIA MAILEM, DLA NAS NIE ISTOTNA */


Bardzo proszę o pomoc, od kilku dni się z tym męczę, efektem jest nie wyświetlająca się strona, bądź wyświetlanie błędów... Z góry dziękuję. Pozdrawiam
Szymon
kadlub
tego captcha masz w jakimś pliku graficznym np captch.php
i te hasło z niego zapisujesz do sessi
więc w formularzu rejestracji czy co to tam jest daj <img src="captch.php" />
chyba o to ci chodzi questionmark.gif
Szymi_2004
Nie do końca, wiem jak wkleić samą captchę na stronę, potrzebuję aby ktoś pomógł mi wkleić walidację obrazka do pliku, który zamieściłem. Postaram się to inaczej przedstawić. Mam stronę na której jest formularz rejestracji, pola do wypełnienia, captcha i okienko gdzie wprowadzamy odpowiedź do captchy. Po wciśnięciu Submit następuje walidacja danych przez drugi plik, który sprawdza czy wszystkie pola zostały poprawnie wypełnione (to właśnie jego podałem źródło). Chciałbym żeby plik, który sprawdza wszystkie pola sprawdzał również captchę wd. pierwszego kodu. Mówiąc krótko wszystko jest, trzeba to tylko posklejać tongue.gif
kadlub
po prostu wklej do tego pierwszego skryptu w miejsce tego else który podałeś ten drugi ,sesion start na sam początek pliku a te pole z wpisanym kodem przesyłaj tym samym formularzem co reszta danych do walidacji
ciekawskiii
umiesc odrazu przed if(empty($error_
message)) no i wtedy z klamrami { } musisz sie pobawic, zapewne dolozyc na koncu skryptu
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.