Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Notice: Undefined index - jak sobie radzić nie zaciemniając kodu?
qrzysztof
post
Post #1





Grupa: Zarejestrowani
Postów: 220
Pomógł: 19
Dołączył: 25.04.2009

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


Powiedzmy, że mam kod:

  1.  
  2. if ( $_POST['wyslij']=='zaloguj' )
  3. {
  4. //zrob cos
  5. }
  6. if ( $_POST['wyslij']=='wyloguj' )
  7. {
  8. //zrob cos innego
  9. }


Powiedzmy też, że postanowiłem ustawić raportowanie błędów na poziomie E_ALL. Powyższy kod spowoduje w tym układzie wyświetlenie Notice: Undefined index.

Jak sobie radzicie z tym problemem? Przez problem rozumiem samo zgłaszanie błędu, nie jego wyświetlanie na wyjściu. Może tak:

  1.  
  2. if ( isset($_POST['wyslij']) && $_POST['wyslij']=='zaloguj' )
  3. {
  4. //zrob cos
  5. }
  6. if ( isset($_POST['wyslij']) && $_POST['wyslij']=='wyloguj' )
  7. {
  8. //zrob cos innego
  9. }

"Trochę" to zaciemnia kod. Chyba ciut lepiej zadeklarować wszystkie spodziewane zmienne:
  1. $POST['wyslij'] = (isset($_POST['wyslij']) ? $_POST['wyslij'] : null ;
  2. if ($_POST['wyslij']=='zaloguj' )
  3. {
  4. //zrob cos
  5. }
  6. if ($_POST['wyslij']=='wyloguj' )
  7. {
  8. //zrob cos innego
  9. }

Ciekawi mnie jak wygląda taki kod u purystów. Bo z faktu, że 95% ma wyłączone przynajmniej E_NOTICE zdaję sobie doskonale sprawę (IMG:style_emoticons/default/smile.gif)



Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
by_ikar
post
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


  1. <?php
  2.  
  3. function getPostParametr($key, $default = null)
  4. {
  5. return isset($_POST[$key]) ? $_POST[$key] : $default;
  6. }


użycie:

  1. <?php
  2.  
  3. if(getPostParametr('login'))
  4. {
  5. //do something
  6. } elseif(getPostParametr('logout'))
  7. {
  8. //do something else
  9. }


przykład dla tablicy $_GET:

  1. <?php
  2.  
  3. function getParametr($key, $default = null)
  4. {
  5. return isset($_GET[$key]) ? $_GET[$key] : $default;
  6. }


użycie praktycznie takie same, zmienia się jedynie nazwa funkcji:

  1. <?php
  2.  
  3. if(getParametr('login'))
  4. {
  5. //do something
  6. } elseif(getParametr('logout'))
  7. {
  8. //do something else
  9. }


Ten post edytował by_ikar 9.12.2011, 15:35:02
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: 10.10.2025 - 06:10