Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Sprawdzanie_tekstu], Czy nie wystąpił niepożądany znak?
Zatarra
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 17.05.2010

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


Napisałem takie funkcje:
  1. function sprLI($zm,$zm1)
  2. {
  3. $out = trim($zm);
  4. preg_match('#[0-9a-zA-ZęóąśłżźćĘÓĄŚŁŻŹĆ]+#i', $out, $znak);
  5. print_r($znak);
  6. if(strlen($out) > 20)
  7. {
  8. echo '<b>'.$zm1.' nie może być<br /> dłuższy/e niż 20 znaków!</b><br>';
  9. unset($zm);
  10. $_SESSION['wal'] = 1; // jezeli wystapi jakis warunek oprocz else to znaczy ze jest błąd - zanzaczamy to w zm. sesyjnej
  11. return 1;
  12. }
  13. elseif( !empty($znak) )
  14. {
  15. echo '<b>'.$zm1.' '.$out.' nie może być z poza przedziału znaków: [a-z],[A-Z],[ąęźćłóśż] i [0-9]!</b><br>';
  16. unset($out);
  17. $_SESSION['wal'] = 1;
  18. return 1;
  19. }
  20. elseif( strpbrk($out,' ') )
  21. {
  22. echo '<b>'.$zm1.' może się składać tylko z 1 wyrazu!</b><br>';
  23. unset($out);
  24. $_SESSION['wal'] = 1;
  25. return 1;
  26. }
  27. elseif(strlen($out) < 3)
  28. {
  29. echo '<b>'.$zm1.' musi być dłuższy\e niż 3 znaki.</b><br>';
  30. $_SESSION['wal'] = 1;
  31. return 1;
  32. }
  33. else
  34. {
  35. return $out;
  36. }
  37. }

Funkcja służy do sprawdzania imienia i loginu z formularza.Dopuszczam polskie znaki diakrytyczne, a ich w ascii nie znajdziemy i nie zrobimy przedziałów tak łatwo jak [0-9a-zA-Zą-ż]. Powyższy kod powoduje że nawet jak wprowadzę Adaś to mi wyskakuje że użyłem wyraz z poza przedziału...
$_SESSION['wal'] = 1; // daje jeden jako znak że jest błąd
return 1; // kończy działanie f-cji
może źle napisałem preg_match bo mi nic print_r nie wyświetla.
Pozdro
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: 6.10.2025 - 16:14