Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Notice: Undefined index: id ...
Madras
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 27.11.2008
Skąd: Włocławek

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


Witam, w jaki sposób usunąć błąd "Notice: Undefined index: id in E:\usr\strona2\index.php on line 1" ?
Linia 1, 2:
  1. $id = $_GET['id'];
  2. if($id=='') $id='0';

Błąd pojawia się tylko wtedy, kiedy w adresie URL nie ma podanej wartości zmiennej np. kiedy jest samo index.php. (bez "index.php?id=1"). Pewnie sam bym sobie poradził, ale błąd wystąpił nagle i nie mam czasu na kombinowanie :/. Za rozwiązanie problemu będę wdzięczny winksmiley.jpg

Ten post edytował Madras 21.03.2010, 20:54:02
Go to the top of the page
+Quote Post
Skie
post
Post #2





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

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


Dokładnie rzecz biorąc to nie jest błąd, tylko "spostrzeżenie". Nie wpływa ono na działanie skryptu, a pojawił Ci się pewnie dlatego że zmieniłeś poziom raportowania błędów w phpie. Możesz to rozwiązać zamieniając linijkę:

Kod
$id = $_GET['id'];


na

Kod
$id = ($_GET['id']) ? $_GET['id'] : '';


--------------------
Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+
Strona Domowa | Elradia MMORPG
FireFox: make the web better.
Go to the top of the page
+Quote Post
MateuszS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


spróbuj

  1.  
  2. if(isset($_GET["id"])) {
  3. $id = $_GET['id'];
  4. if($id=='') $id='0';
  5. }
  6. }


Potem może coś lepszego wymyślisz ;P


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Madras
post
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 27.11.2008
Skąd: Włocławek

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


Obydwie propozycje nie przynoszą żadnego rezultatu ;/ Dalej jest ten warn
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Zrób tak:
  1. $id = (int) $_GET['id'];


I usuń w swoim kodzie to:
  1. if($id=='') $id='0';

I nie pisz, że to potrzebne tylko sprawdź czemu kazałem usunąć. winksmiley.jpg


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
athei
post
Post #6





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


Jeżeli id ma być liczbą to
Kod
$id = (isset($_GET['id']) ? (int)$_GET['id'] : 0);
echo $id;
Jeśli łańcuchem znakowym to bez (int), bo wartość przekazana get,post jest stringiem.

Ten post edytował athei 22.03.2010, 08:05:32
Go to the top of the page
+Quote Post
Fifi209
post
Post #7





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(athei @ 22.03.2010, 08:00:20 ) *
Jeżeli id ma być liczbą to
Kod
$id = (isset($_GET['id']) ? (int)$_GET['id'] : 0);
echo $id;
Jeśli łańcuchem znakowym to bez (int), bo wartość przekazana get,post jest stringiem.


Napisałeś dokładnie to co ja 30 minut temu. ^^


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
athei
post
Post #8





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


Nie to samo. Sprawdź czy to co Ty napisałeś nie generuje notice.
Go to the top of the page
+Quote Post
Madras
post
Post #9





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 27.11.2008
Skąd: Włocławek

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


Bardzo dziękuję athei. Działa!. Jeśli byś mógł, powiedz o co chodzi w tym kodzie. Nie rozumiem szczególnie tego "?". winksmiley.jpg
Go to the top of the page
+Quote Post
Wicepsik
post
Post #10





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

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


http://phpedia.pl/wiki/Ternariusz


--------------------
Go to the top of the page
+Quote Post
JimiEx
post
Post #11





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 1.04.2010

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


Witam. Też mam podobny problem z tym błędem więc się podczepię.
Strona działa u mnie bezbłędnie w programie Krasnal, lecz po wrzuceniu na server ftp wywala błędem.
Wskazuje że bład jest ( w tym przypadku ) w drugiej linijce kodu. Czyli "$go = $_GET ....."
Jako że chciałem założyć prostą stronę to skorzystałem z gotowego skryptu, lecz niestety nie znam się na tym za bardzo.
Liczę na Waszą pomoc.


  1. <?php
  2. $go = $_GET['go'];
  3. if(!empty($go)) {
  4. if(is_file("pages/$go.html")) include "pages/$go.html";
  5. else if(is_file("pages/news/$go.html")) include "pages/news/$go.html";
  6. else if(is_file("pages/klubowicze/$go.html")) include "pages/klubowicze/$go.html";
  7. else echo "<br>Nie ma takiej strony :-(";
  8. }
  9. else include "pages/start.html";
  10.  
  11. ?>

Go to the top of the page
+Quote Post

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 Aktualny czas: 19.08.2025 - 22:39