Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Undefined index ? Jak to rozwiązać
Forum PHP.pl > Forum > PHP
mablo
mam taki błąd
Kod
Notice: Undefined index: c in F:\php\www\admin\includes\news.php on line 388

przy
  1. <?php
  2.  switch ($_GET['c']) {
  3.  
  4. case 'add':
  5.  if($_GET['status'] == 'add'){
  6. newsadd('add');
  7.  }else{
  8. newsadd('new');
  9.  }
  10.  break;
  11. ?>


Tym błędzie chodzi o że $_GET['c'] nie istnieje. Moje pytanie brzmi czy przejmować się taki błędami questionmark.gif Ewentualnie jak przerobić kod żeby nie było błędu questionmark.gif
Moje rozwiązanie błędu :

  1. <?php
  2. if(isset($_GET['c'])){
  3. $get = $_GET['c'];
  4. }else{
  5. $get = 'default';
  6. };
  7.  
  8. switch ($get) {
  9.  
  10. case 'add':
  11.  if($_GET['status'] == 'add'){
  12. newsadd('add');
  13.  }else{
  14. newsadd('new');
  15.  }
  16.  break;
  17.  case 'default':
  18.  newslist();
  19.  break;
  20. ?>
Co myślicie o tym rozwiązaniu questionmark.gif Czekam na wasz rozwiązanie błędu.
serafin
Nie slyszales o operatorze trojargumentowym questionmark.gif

$get = isset($_GET['c']) ? $_GET['c'] : 'default'; winksmiley.jpg
mablo
fajnie by było jak bys mi wyklumaczył o co chodzi bo
Kod
Jeszcze jednym operatorem warunkowym jest operator "?:" (tzw. ternariusz - operator trójargumentowy), dziaBajcy tak jak w C i wielu innych jzykach.

(expr1) ? (expr2) : (expr3);

Warto[ci wyra|enia jest expr2, je[li expr1 jest równe TRUE, lub expr3, je[li expr1 jest równe FALSE.
niewiele mi mowi
Pigula
testujessz wartosc expr1 jezeli jest ona prawdziwa to wykonuje sie polecenie expr2 a jezeli falszywa to expr3. Odpowiadajacy temu if:
  1. <?php
  2. if (expr1)
  3.  expr2;
  4. else
  5.  expr3;
  6. ?>
mablo
Cytat
Tym błędzie chodzi o że $_GET['c'] nie istnieje. Moje pytanie brzmi czy przejmować się taki błędami questionmark.gif


Powtarzam pytnie czy przejmować się taki błędami questionmark.gif
nospor
Tak. Dla bezpieczeństwa skryptów i stron należy przejmować się każdymi błędami i robić wszystko aby ich nie było.
sobstel
no i przede wszystkim dla przejrzystosci. nie trzeba stosowac operatorow trojargumentowych. mozna np. robic sprawdzenie przez isset lub empty

  1. <?php
  2.  
  3. if (isset($_GET['var'])) {
  4. }
  5.  
  6. ?>


  1. <?php
  2.  
  3. if (!empty($_GET['var'])) {
  4. }
  5.  
  6. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.