Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz
Forum PHP.pl > Forum > PHP
Dowhook
Mam dwa pytania dotyczące formularza. Formularz wysyła dane pobrane od użytkownika do bazy danych.

[1] Jak mogę zabezpieczyć pole np. GG żeby można było wprowadzić tam tylko cyfry, a jeżeli nie wpisze się cyfr wyświetli komunikat. To samo np. z polem Email.

[2] Jak sprawdzić czy nazwa użytkownika którą wprowadził wypełniający forumalrz nie znajduje się już w tabeli MySQL. Jeżeli już istnieje to niech wyświetli komunikat i nie wysyła danych do MySQL.

Z góry dziękuję.
crash
Dla numeru GG: is_int" title="Zobacz w manualu PHP" target="_manual
Dla adresu e-mail:
  1. <?php
  2. if(!eregi('^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+.[a-zA-Z0-9_.]{2,}$', $email))
  3. {
  4. echo 'Zly format adresu e-mail!';
  5. }
  6. ?>

Dla sprawdzenie istnienia w bazie:
  1. <?php
  2. $pytanie = mysql_query('SELECT * FROM nazwa_tabeli WHERE uzytkownik = \"'.$_POST['uzytkownik'].'\"');
  3.  
  4. if(mysql_num_rows($pytanie) > 0)
  5. {
  6. echo $_POST['uzytkownik'].' juz istnieje w bazie!';
  7. }
  8. ?>


Takie pola jak numer GG czy e-mail mozna sprawdzic przed wyslaniem formularza za pomoca javascript, ale to juz zupelnie inna historia, z zupelnie innego dzialu forum...
Dowhook
Wszystko działa oprócz is_int. Jednak zamiast tego użyłem is_numeric i teraz działa smile.gif Dzięki wielkie!
scanner
Ponieważ WSZYSTKIE dane jakie dostajesz z formularza czy URL'a przychodzę jako string, is_int() nie zadziała.
Zresztą jest o tym Note w opisie tej funkcji.

Osobiście użyłbym rzutowania:
  1. <?php
  2.  
  3. $aUserProfile['GG'] = (int) $_POST['GG'];
  4.  
  5. ?>
Dzięki czemu, jełsi ktoś wpisze "nie mam", uzyskam wartośc 0 (zero).

A to skutkuje tym, iż zgodnie z zapisem na http://pl.php.net/manual/en/language.types.boolean.php mówiącym iż " Every other value is considered TRUE (including any resource)." wystarczy:
  1. <?php
  2. if( $aUserProfile['GG'] )
  3. {
  4. // tutaj klocek wyświetlający ikonkę dostepności
  5. }
  6. else
  7. {
  8. // tutaj albo puste, albo ikonka w stylu \"GhostBusters\" - że niby user nie ma / nie podał GG.
  9. }
  10.  
  11. ?>
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.