Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Stare skrypty a undefined index
konradmm
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 18.12.2007

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


Witam ponownie!

Ostatnio wzielo mnie na przegladanie starych skryptow i znalazlem jeden ktory chcialbym wykorzystac/przerobic (IMG:style_emoticons/default/wink.gif)

Jednakze w kodzie tamtego skryptu czesto uzywalem jednego pliku (index.php) z roznymi GET'ami na wyswietlanie podstron.

problem jest taki, ze jesli uzywam if($_GET['strona'] == "ustawienia") to jesli nie mam ustawionego tego get'a to pojawia sie error "Undefined index: strona".

Teoretycznie powinienem uzywac isset ale tutaj nasuwaja mi sie 2 pytania.

Jak to moge zrobic za pomoca isset? Cos w stylu if(isset($_GET['strona'])) {{ if($_GET['strona'] == "ustawienia") echo "Ustawienia"; }} ?!

I dwa, dlaczego wogole cos takiego mi sie teraz pojawia, a kiedys bylo wszystko ok ? (kiedys = 2-3 lata wstecz)

edit/add:
Problem jest rowniez z if($_SESSION['asdf'] == "OK") ;((

Ten post edytował konradmm 28.01.2015, 07:52:55
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Odpowiem od tyłu.

Pokazuje się bo zmienił się poziom wyświetlanych błędów "error_reporting"

Ad. 1 to wystarczy
  1. if(isset($_GET['strona']) && $_GET['strona'] == "ustawienia")
Go to the top of the page
+Quote Post
kayman
post
Post #3





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

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


Cytat(Pyton_000 @ 28.01.2015, 08:32:08 ) *
Pokazuje się bo zmienił się poziom wyświetlanych błędów "error_reporting"


i jest to upierdliwe -> nie bardzo rozumiem po co tak zrobili
Go to the top of the page
+Quote Post
Forti
post
Post #4





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Upierdliwe? To jest bardzo dobre rozwiązanie. Logiczne. Najpierw sprawdzaj czy cos istnieje a potem jaka ma wartość.
Najpierw sprawdzasz czy i ew. Gdzie istnieje nocny sklep w okolicy potem idzesz po piwo, prawda?
Go to the top of the page
+Quote Post
kayman
post
Post #5





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

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


a nie to nie pasuje

po staremu czy coś istniało czy cos nie było równe zwracany był false i wystarczyło, a false to false

a teraz trzeba takie stosować

  1.  
  2. public function getGetValue($key) {
  3. return isset($_GET[$key]) ? $_GET[$key] : false;
  4. }
  5.  
  6. public function getPostValue($key) {
  7. return isset($_POST[$key]) ? $_POST[$key] : false;
  8. }
  9.  
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




@kayman po pierwsze nie FALSE a NULL. (edit: a ty mowisz o porownaniu, to tak, FALSE choc Twoja funkcja sugeruje co innnego... powinna zwracac NULL a nie false)
Po drugie nie po staremu, tylko tak bylo, jest i bedzie.
Po trzecie: to zawsze rzucalo NOTICEM
Po czwarte: wczesniej koles nie widzial, bo domyslnie noticy nie byly wyswietlane. Teraz domyslnie notice sa wyswietlane, stad wiekszosc poczatkujacych programistow ma nagle zonka.

Tutaj napisałem małe co nie co o NOTICEach
http://nospor.pl/notice-wyswietlac-czy-nie.html
Jesli to CIę nadal nie przekonuje, to ustaw w php.ini by ci nie wyswietlalo tych NOTICEow i nie marudź bez sensu (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
by_ikar
post
Post #7





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

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


Pomijając już fakt, że jest to "upierdliwe", to tłumienie takich błędów poprzez @ lub zmianę error_reporting, wciąż wpływa negatywnie na aplikacje. Każdy błąd, nawet ten którego nie widzisz, aby mógł się wygenerować, musi zużyć odpowiednią ilość pamięci, oraz cykli procesora. Jak zaczniesz to sobie uświadamiać, że twoja aplikacja może działać szybciej (w skrajnych przypadkach nawet diametralnie), tylko dlatego że sprawdzasz dane tak jak powinno się to robić, to przestaniesz pisać że jest to upierdliwe.

Zadziwia mnie to że ludzie pomimo tylu wątków na ten temat, wciąż ten temat poruszają..
Go to the top of the page
+Quote Post
konradmm
post
Post #8





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 18.12.2007

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


Cytat(Pyton_000 @ 28.01.2015, 08:32:08 ) *
  1. if(isset($_GET['strona']) && $_GET['strona'] == "ustawienia")


Czy dobrze zrozumialem ze jesli uzyjemy && to sprawdza najpierw pierwszy warunek i jesli NIE JEST spelniony to pomija kazdy kolejny po && ?
Go to the top of the page
+Quote Post
nospor
post
Post #9





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




Tak. tak właśnie to działa
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: 24.08.2025 - 00:27