Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]zabronione znaki
jacusek
post
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Witam. Chciałem w jednym z pól zabronić części znaków. Znalazłem informację o funkcji strpos()
Napisałem kod i nie bardzo rozumiem, dlaczego nie działa.
  1. function checkstrNo($z, $form_name){
  2. $zabronione = '!@#$%^&*';
  3. $pos=strpos($z,$zabrionione);
  4. echo $pos;
  5. if ($pos === false){
  6. $tekst="Użyto niedozwolonych znaków w polu " .$form_name;
  7. popup_alert($tekst);
  8. }else
  9. {
  10. echo 'OK';
  11. }
  12. }

jakikolwiek znak nie podstawię pod zmienną $z zawsze spełnia jeden lub drugi warunek w zależności od podanego operatora przypisania.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
konrados
post
Post #2





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Bo nie szukasz JAKIEGOKOLWIEK znaku z ciągu "!@#$%^&*" ale całego właśnie tego ciągu.

Zainteresuj się preg_match albo wstaw swoje znaczki do arraya, a następnie w pętli sprawdzaj każdy znak po kolei (czy występuje).

Edit: w manualu dot. strpos masz przykład szukania jakiegokolwiek znaku z arraya:
  1. <?php
  2. function strposa($haystack ,$needles=array(),$offset=0){
  3. $chr = array();
  4. foreach($needles as $needle){
  5. $chr[] = strpos($haystack,$needle,$offset);
  6. }
  7. if(empty($chr)) return false;
  8. return min($chr);
  9. }
  10.  
  11. $string = "This is my string, very simple.";
  12.  
  13. echo strposa($string,array(".",","," ")); // 2
  14. echo strposa($string,array("T")); // 0
  15. echo strposa($string,array("Q","W")); // false
  16. ?>


Ten post edytował konrados 25.11.2010, 12:25:01
Go to the top of the page
+Quote Post

Posty w temacie


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: 2.10.2025 - 19:52