Forum komputerowe, forum informatyczne, naprawa laptpów , forum windows, forum linux, Hardware, Overclocking,

Pełna wersja: [PHP]Ereg wyrażenia regularne, weryfikacja danych z formularza
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Poniższy kod przedstawia jak w łatwy i bezpieczny sposób sprawdzić, czy dane z formularza są zgodne z tym czego oczekujemy. Kod ten zabezpiecza odrazu przed atakami typu SQL Injection, bowiem nie przepuści znaków typu /, " itd.

Kod PHP:
// Dane z tablicy POST otrzymane z formularza zapisujemy w troche przyjaźniejszej postaci
$login $_POST["login"];
$password $_POST["password"];
$email $_POST["email"];
$name $_POST["name"];
$country $_POST["country"];

// Zestaw wyrażen regularnych, które sprawdzają zawartość zmiennej.
$login_result ereg('^[A-Za-z0-9]{4,14}$'$login); // Przepuści tylko wtedy, jeśli zmienna zawiera duże lub małe litery lub cyfry i długość jest pomiędzy 4 a 14 znaków.
$password_result ereg('^[A-Za-z0-9]{6,8}$'$password); // tj. wyżej z tym że dł. znaków pomiędzy 6-8
$email_result ereg('^[a-zA-Z0-9_\.+]{1,20}@[a-zA-Z0-9_+]{1,20}\.[a-zA-Z0-9]{2,4}$'$email); // Tutaj jest zapisany format e-maila. Sprawa generalnie nie jest taka prosta, ale ten skrypt sie sprawdza.
$name_result ereg('^[A-Za-z ]{3,25}$'$name); // Nazwa od 3-25, tylko duże lub małe litery i ewentualnie spacja.
$country_result ereg('^[A-Za-z ]{2,25}$'$country); tjwyżej tylko zakres 2-25

if ($login_result  && $password_result && $email_result && $name_result && $country_result)
{
  
//wykonaj akcje, na przykład dodaj wyniki do bazy.
}
else 
{
// System informowania użytkownika o błędach
if (!$login_result)
{
   echo (
"Wprowadzony login jest nieprawidłowy.");
}

if (!
$password_result)
{
   echo (
"Wprowadzone hasło jest nieprawidłowe.");
}

// itd. Możemy również zapisywać to do zmiennej i wyświetlać błędy w innym miejscu ustalonym przez nas.