Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Undefined index ? Jak to rozwiązać
mablo
post
Post #1





Grupa: Zarejestrowani
Postów: 120
Pomógł: 1
Dołączył: 11.04.2005
Skąd: Poznań

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


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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ewentualnie jak przerobić kod żeby nie było błędu (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Czekam na wasz rozwiązanie błędu.
Go to the top of the page
+Quote Post
serafin
post
Post #2





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 23.11.2003
Skąd: Poznań

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


Nie slyszales o operatorze trojargumentowym (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

$get = isset($_GET['c']) ? $_GET['c'] : 'default'; (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
mablo
post
Post #3





Grupa: Zarejestrowani
Postów: 120
Pomógł: 1
Dołączył: 11.04.2005
Skąd: Poznań

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


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
Go to the top of the page
+Quote Post
Pigula
post
Post #4





Grupa: Zarejestrowani
Postów: 446
Pomógł: 0
Dołączył: 5.03.2005
Skąd: Lublin

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


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. ?>
Go to the top of the page
+Quote Post
mablo
post
Post #5





Grupa: Zarejestrowani
Postów: 120
Pomógł: 1
Dołączył: 11.04.2005
Skąd: Poznań

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


Cytat
Tym błędzie chodzi o że $_GET['c'] nie istnieje. Moje pytanie brzmi czy przejmować się taki błędami (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)


Powtarzam pytnie czy przejmować się taki błędami (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Tak. Dla bezpieczeństwa skryptów i stron należy przejmować się każdymi błędami i robić wszystko aby ich nie było.
Go to the top of the page
+Quote Post
sobstel
post
Post #7





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


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. ?>
Go to the top of the page
+Quote Post

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: 22.12.2025 - 00:36