Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcja do sprawdzania treści z formularza
andrzejt17
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 24.06.2009
Skąd: Wrocław

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


Proszę was o ocene skryptu pod kątem przydatności i funkcjonalności oraz proszę o wskazówki :) Czyli co zmienić, czego nie używać itp :)

  1. <?php
  2. // (kod)
  3.  
  4. function checkString($name, $value, $length, $type='all') {
  5. function showAlert($msg) {
  6. print ' <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7. <script type="text/javascript">
  8. alert("'.$msg.'");
  9. </script>';
  10. }
  11.  
  12. $value = strtolower(makeSafe($value));
  13. $charsToReplace = array('ą', 'ż', 'ź', 'ś', 'ę', 'Ć', 'ń', 'ł', 'ó', 'Ą', 'Ż', 'Ź', 'Ś', 'Ę', 'Ć', 'Ń', 'Ł', 'Ó');
  14. $valueToCount = str_replace($charsToReplace, 'x', $value);
  15. $length = explode('-', $length);
  16. if(strlen($length[0]) > 0 && strlen($length[1]) > 0) {
  17. $min = $length[0];
  18. $max = $length[1];
  19. } else {
  20. echo 'checkString length arg failed';
  21. }
  22. if(strlen($valueToCount) == 0) {
  23. showAlert('Pole \''.$name.'\' jest obowiązkowe, nie może być puste.');
  24. return false;
  25. } elseif(strlen($valueToCount) <= $min) {
  26. showAlert('Liczba znaków w polu \''.$name.'\' jest za mała. Wymagana minimalna liczba znaków: '.$min.'.');
  27. return false;
  28. } elseif(strlen($valueToCount) >= $max) {
  29. showAlert('Liczba znaków w polu \''.$name.'\' jest za duża. Wymagana maksymalna liczba znaków: '.$max.'.');
  30. return false;
  31. }
  32.  
  33. if($type == 'n') {
  34. if(!preg_match ('/^[0-9]+$/', $value)) {
  35. showAlert('Zawartość pola \''.$name.'\' musi być liczbą.');
  36. return false;
  37. }
  38. } elseif($type == 'tl') {
  39. if(!preg_match ('/^[0-9A-Za-z._-]+$/', $value)) {
  40. showAlert('Zawartość pola \''.$name.'\' może zawierać cyfry, małe i duże litery bez polskich znaków diakrytycznych oraz znaki specjalne: (._-)');
  41. return false;
  42. }
  43. } elseif($type == 'm') {
  44. if(!preg_match ('/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i', $value)) {
  45. showAlert('Podany adres email jest nieprawidlowy.');
  46. return false;
  47. }
  48. }
  49.  
  50. return true;
  51. }
  52.  
  53. // (kod)
  54. ?>


Do tego funcja makeSafe();
  1. <?php
  2. // (kod)
  3.  
  4. function makeSafe($string) {
  5. $string = stripslashes($string);
  6. }
  7. $string = mysql_real_escape_string(trim($string));
  8. $string = htmlspecialchars($string);
  9. $string = str_replace("\r\n", "", $string);
  10.  
  11. return $string;
  12. }
  13.  
  14.  
  15. // (kod)
  16. ?>



Wywyłanie:
  1. <?php
  2. // (kod)
  3. // sprawdzenie testowo jednego pola z formularza
  4.  
  5. $imieUsera = makeSafe($_POST['imie']);
  6. $nazwiskoUsera = makeSafe($_POST['nazwisko']);
  7.  
  8. if(checkString('Imie', $imieUsera, '3-10', $type='tl') && checkString('Nazwisko', $nazwiskoUsera, '3-10', $type='tl')) {
  9. echo 'Wszystko ok';
  10. } else {
  11. echo 'Coś lipa';
  12. }
  13.  
  14. // (kod)
  15. ?>


Ten post edytował andrzejt17 13.05.2011, 17:11:18
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: 3.10.2025 - 00:33