Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrócenie sprawdzania if(isset($_POST['zmienna']) dla kilku zmiennych, Optymalizacja kodu pod względem czytelności i objętności :)
Apocalyptiq
post 19.04.2009, 10:23:50
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Dosyć uciążliwe jest sprawdzanie wszystkich potrzebnych zmiennych dla obsługi każdego formularza danego serwisu w php (szczególnie dotkneło mnie to podczas pisania gry via www, gdzie jest pełno formularzy):
  1. <?php
  2. if(empty($_POST['login']) || empty($_POST['pwd']) || empty($_POST['pwd2']) || empty($_POST['email']) || empty($_POST['teamName']) || empty($_POST['teamColor']) || empty($_POST['teamSubColor']))
  3.        $_SESSION['mesg']='Wypełnij wszystkie wymagane pola!';
  4.    else{...}
  5. ?>

I tego typu fragmentów kodu mam tam sporo, ale to pytam ogólnie, co do wszelkich projektów smile.gif Narazie wymyśliłem coś takiego:
  1. <?php
  2. # isset dla określonych zmiennych w tablicy
  3. function isset_array_vars($array,$vars){
  4.    $notset_vars=array();
  5.    foreach($vars as $key => $var)
  6.        if(!isset($array[$key])) $notset_vars[]=$var;
  7.    if($notset_vars) return implode(', ',$notset_vars);
  8.    else return true;
  9. }
  10.  
  11. # zastosowanie:
  12.    $check_isset=isset_array_vars($_POST,array('login'=>'login','pwd'=>'hasło','pwd_repeat'=>'powtórzone hasło'));
  13.    if($check_isset!==true)
  14.        $_SESSION['mesg']='Nie podałeś wszystkich wymaganych danych ('.$check_isset.')';
  15.    else{...}
  16. ?>

Jeżeli wszystkie podane zmienne są ustawione w danej tablicy, funkcja zwraca true, w przeciwnym wypadku - wyprzcinkowane nazwy (spolszczone, zrozumiałe dla człowieka) niepodanych zmiennych. No ale jest to jakoś mi sie wydaje na siłe zrobione, mam przeczucie że można to zrobić lepiej :-)
Macie jakieś pomysły albo patenty ze swoich projektów? smile.gif

Ten post edytował Apocalyptiq 19.04.2009, 10:27:46


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 02:13