Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Walidacja
Forum PHP.pl > Forum > PHP
motorolka24
Czesc. Mam taki problem odnośnie sprawdzania błedów przy formularzu. Jeśli wprowadze sama cyfre albo jakiś inny znak to wyskakuje bład, ale jeśli oprócz cyfry i znaku dam jakąś litere to już mi przechodzi skrypt, tak jakby były to same litery. A chodzi o to żeby przeszło gdy bedą wpisane tylko litery

  1. <?php
  2. if(preg_match('/^[a-zA-Z]$/', $name)) { }
  3. else { echo "<p>Nieprawidłowe dane</p>"; 
  4.  }
  5. ?>



Wie ktoś może co jest nie tak??
GrZyB997
Cytat(motorolka24 @ 5.05.2007, 01:51:20 ) *
Czesc. Mam taki problem odnośnie sprawdzania błedów przy formularzu. Jeśli wprowadze sama cyfre albo jakiś inny znak to wyskakuje bład, ale jeśli oprócz cyfry i znaku dam jakąś litere to już mi przechodzi skrypt, tak jakby były to same litery. A chodzi o to żeby przeszło gdy bedą wpisane tylko litery

  1. <?php
  2. if(preg_match('/^[a-zA-Z]$/', $name)) { }
  3. else { echo "<p>Nieprawidłowe dane</p>"; 
  4.  }
  5. ?>

Wie ktoś może co jest nie tak??


Sprobój tak:

  1. <?php
  2. if(preg_match('/^Wd_$/', $name)) {
  3.  echo('Podane dane są nieprawidłowe!');
  4. } else { }
  5. ?>


Pisałem z głowy ale powinno wyglądać to miejwiecej tak, jeżeli w stringu $name znajdzie sie coś innego niż Litery wyświetli podany komunikat, jeżeli będa same litery skrypt nie wykona żadnej operacji winksmiley.jpg

Pozdrawiam
Kicok
Cytat
ale jeśli oprócz cyfry i znaku dam jakąś litere to już mi przechodzi skrypt, tak jakby były to same litery.


To ciekawe, bo wyrażenie które podałeś nie powinno przepuszczać niczego dłuższego niż 1 znak. Jeśli chcesz tym walidować dłuższe napisy użyj znaku + lub * w zależności co chcesz osiągnąć:
  1. <?php
  2. if(!preg_match('/^[a-zA-Z]+$/', $name)) {
  3. echo('<p>Nieprawidłowe dane</p>');
  4. }
  5. ?>
misiek172
hmm a nie lepiej zrobić validację od razu w JS? wtedy nie bedzie musiala sie przeladowywac strona, a jeśli juz tak bardzo chcesz w PHP to uzyj AJAXa smile.gif

w JS możesz od razu ustawic ze znaki nie chciane wogole nie bede sie wstukiwac do inputa.
motorolka24
Działa tak jak napisal Kicok. Dzieki! A tak jescze odnośnie wypowiedzi miska172. Jakbym zrobił walidacje tylko w JS, a ktos by wyłaczył sobie obsługe JS w przegladarce to tak wszystkie błedne dane przechodzą blink.gif
dr_bonzo
Walidacja w PHP jest obowiazkowa, walidacja w JS ulatwia zycie userowi.
GrZyB997
Jeżeli dasz tylko walidacje JS wystarczy wyłączyć javascript w przeglądarce albo przechwycic nagłówki i już można wstrzyknąc nieporządane znaki winksmiley.jpg
misiek172
no to tak jak mówi @dr_bonzo, daj i w JS i w 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.