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
grzeee
post
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 5
Dołączył: 24.11.2006

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


mi się też podoba, poza "zaciemniania" kodu to zawsze też ograniczy błędy/literówki jeśli tak można to nazwać.

Ten post edytował grzeee 9.12.2011, 15:54:46
Go to the top of the page
+Quote Post
by_ikar
post
Post #3





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

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


Cytat(grzeee @ 9.12.2011, 15:54:33 ) *
mi się też podoba, poza "zaciemniania" kodu to zawsze też ograniczy błędy/literówki jeśli tak można to nazwać.


Mało tego, prócz przez was wymienionych "zalet", jest jeszcze jedna - wartość domyślna. Przydatna, kiedy jakiegoś parametru nie ma, a oczekujemy konkretnej wartości. Osobiście w podobny sposób w swoim "systemie" bawię się z widokiem. Powiedzmy że twój system rozbija linki na pewne sekcje. Gdzie z przykładowego routingu:

Kod
/:module/:action.:format


dla linku:

Kod
example.com/myModule/myAction.html


powstaje taka tablica:

Kod
Array
(
    [module] => myModule
    [action] => myAction
    [format] => html
)


A co w przypadku kiedy nie używam w swoim systemie w adresach rozszerzenia html?

Kod
/:module/:action

Kod
example.com/myModule/myAction

Kod
Array
(
    [module] => myModule
    [action] => myAction
)


Odpowiedź prosta, podaje w domyślnym parametrze html, a wygląda to mniej więcej tak:

  1. $this->options['template'] = $this->moduleName.'.'.$this->actionName.'.'.$this->request->get('format', 'html');


(IMG:style_emoticons/default/wink.gif)

Ten post edytował by_ikar 9.12.2011, 17:10:46
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: 7.10.2025 - 20:59