Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] GET
Forum PHP.pl > Forum > Przedszkole
Taifun
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ć ?
rinz
Druga opcja jest poprawna .... smile.gif 

bez napis Gdansk nic nie oznacza, nie jest to zmienna ani instrukcja... 
blooregard
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 ! ";}
Taifun
a jeśli byłaby to liczba wystarczy sprawdzić czy to jest liczba czy też muszę tablicami sprawdzać?
np. id
rinz
Oczywiscie wystarczy sprawdzic czy to jest liczba, tablice nie sa potrzebne... 

Wystarczy funkcja is_int() chociazby, sprawdza czy liczba jest calkowita. smile.gif
blooregard
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.
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.