Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Walidacja
motorolka24
post
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 21.04.2007

Ostrzeżenie: (0%)
-----


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??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
GrZyB997
post
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 18.12.2006

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozdrawiam
Go to the top of the page
+Quote Post
Kicok
post
Post #3





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
misiek172
post
Post #4





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

w JS możesz od razu ustawic ze znaki nie chciane wogole nie bede sie wstukiwac do inputa.
Go to the top of the page
+Quote Post
motorolka24
post
Post #5





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 21.04.2007

Ostrzeżenie: (0%)
-----


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ą (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Walidacja w PHP jest obowiazkowa, walidacja w JS ulatwia zycie userowi.
Go to the top of the page
+Quote Post
GrZyB997
post
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 18.12.2006

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
misiek172
post
Post #8





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


no to tak jak mówi @dr_bonzo, daj i w JS i w PHP
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 09:05