Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlenie zawartości pliku, jeśli $_GET = TRUE
Forum PHP.pl > Forum > PHP
Majkelo23
W jednym pliku mam captchę - confirm_register.php.
Jak się nie trudno domyślić, wyświetlamy ją jak zdjęcie:

  1. <img src="http://adres.pl/confirm_register.php" border="0">


Jednak w pliku confirm_register.php mam też wzmiankę o tym, aby aktualizować rekord w bazie z wygenerowanym kodem na obrazku. Problem jest taki, że jeśli z innego pliku - rejestracyjnego - wyświetlę captchę i zechcę sprawdzić czy kod jest poprawny, to on ZAWSZE jest błędny. Dlaczego? A no dlatego, że po kliknięciu w submit'a kod aktualizuje się w bazie - PONOWNIE. Po prostu przy starcie wyświetlania formularza rejestracyjnego, captcha się generuje, aktualizuje rekord do bazy - wszystko spoko. Ale po kliknięciu w submit'a, który sprawdza poprawność kodu - kod znowu się aktualizuje bo znowu zostaje wyświetlona captcha. I właśnie tutaj jest problem - jak zrobić aby po kliknięciu w submit kod się ponownie nie aktualizował do bazy danych? Myślałem o GEcie:

  1. if ( $_GET['mode'] == 'register' )
  2. // aktualizuje rekord do bazy


Ale nic mi z tego, ponieważ GET można obsługiwać w pliku rejestracyjnym, a nie w confirm_register.php, więc to też mi nic nie da. Jak to mogę ogryźć? businesssmiley.png
mortus
Po prostu w złym miejscu generujesz formularz z captcha. Powinienś to zrobić mniej więcej tak:
  1. if(!empty($_POST)) { // sprawdzamy, czy formularz został zatwierdzony, można użyć innej metody
  2. $captcha = mysql_fetch_array(mysql_query('POBIERZ `kod` Z BAZY DANYCH'));
  3. $post_captcha = $_POST['captcha'];
  4. }
  5. // a tutaj wyświetlamy formularz
  6. // a jeszcze lepiej będzie, jak zrobimy przekierowanie do pliku z formularzem
  7. // oczywiście trzeba zaimplementować walidację
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.