Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] GET
Taifun
post 29.09.2008, 20:09:55
Post #1





Grupa: Zarejestrowani
Postów: 222
Pomógł: 2
Dołączył: 10.07.2007

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


Witam, jak będzie poprawnie
  1. $miasto = empty ( $_GET['miasto'] ) ? [b]Gdansk [/b]: $_GET['miasto'] ;

w cudzysłowach?
  1. $miasto = empty ( $_GET['miasto'] ) ? "Gdansk ": $_GET['miasto'] ;

W skrócie jeżeli brak zmiennej miasto to $miasto="Gdansk";
jak to zrobić ?


--------------------
Go to the top of the page
+Quote Post
rinz
post 29.09.2008, 20:17:18
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 3
Dołączył: 28.09.2008

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


Druga opcja jest poprawna .... smile.gif 

bez napis Gdansk nic nie oznacza, nie jest to zmienna ani instrukcja... 
Go to the top of the page
+Quote Post
blooregard
post 29.09.2008, 20:47:39
Post #3


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Kod
$miasto = ($_GET['miasto'] == ")? "Gdańsk" : $_GET['miasto'];


albo:

Kod
$miasto= ( !empty($_GET['miasto'])? $_GET['miasto'] : "Gdańsk";


polecałbym również walidację zmiennej $_GET['miasto'], zanim użyjesz jej np. w zapytaniu SQL (bo to najprostsza droga do umożliwienia SQL Injection)

przykład: spodziewasz się, że zmienna $_GET['miasto'] może przyjmować powiedzmy trzy wartości: Warszawa, Poznań, Kraków (wybór przypadkowy):

definiujesz tablicę z mozliwymi spodziewanymi wartościami:

Kod
$miasta = array("Warszawa","Poznań","Kraków");


sprawdzasz, czy z get-a dostałeś prawidłową, oczekiwaną wartość, jeśli tak, przypisujesz ją do zmiennej $miasto, jeśli nie, podejmujesz inne kroki, np. wyświetlasz komunikat błędu:

Kod
$miasto = (in_array($_GET['miasto'] , $miasta) ) ? $_GET['miasto'] : NULL;if ($miasto) {echo "Poprawnie";} else {echo "nie kombinuj ! ";}


Ten post edytował blooregard 29.09.2008, 20:49:23


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
Taifun
post 29.09.2008, 20:52:40
Post #4





Grupa: Zarejestrowani
Postów: 222
Pomógł: 2
Dołączył: 10.07.2007

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


a jeśli byłaby to liczba wystarczy sprawdzić czy to jest liczba czy też muszę tablicami sprawdzać?
np. id


--------------------
Go to the top of the page
+Quote Post
rinz
post 29.09.2008, 20:59:51
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 3
Dołączył: 28.09.2008

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


Oczywiscie wystarczy sprawdzic czy to jest liczba, tablice nie sa potrzebne... 

Wystarczy funkcja is_int() chociazby, sprawdza czy liczba jest calkowita. smile.gif
Go to the top of the page
+Quote Post
blooregard
post 29.09.2008, 21:00:48
Post #6


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Nie, wtedy np. rzutujesz sobie get-a na integer i już wiesz, czy to liczba:

Kod
$id = ((integer)$_GET['id'] > 0)? (integer)$_GET['id'] : NULL;


nie ma siły, żeby np. słowo (ciąg znaków, czyli mówiąc prosto string) rzutowane na integer było większe od zera.


--------------------
Life's simple... You make choices and don't look back...
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 Wersja Lo-Fi Aktualny czas: 8.07.2025 - 04:49