Zmienne spoza PHPPodręcznik PHPPoprzedniRozdział 7. ZmienneNastępnyZmienne spoza PHPFormularze HTML (GET i POST)
Kiedy do skryptu PHP zostanie wysłany formularz, każda zmienna z tego
formularza zostanie automatycznie dostarczona do tego skryptu przez PHP.
Jeśli dyrektywa track_vars jest
włączona, to zmienne te będą umieszczone w tablicach asocjacyjnych
$HTTP_POST_VARS (zmienne wysłane metodą POST),
$HTTP_GET_VARS (zmienne wysłane metodą GET), i/lub
$HTTP_POST_FILES (plik wysłane metodą POST),
w zależności od rodzaju zmiennych w zapytaniu.
Więcej informacji na ten temat w rozdziale Zmienne predefiniowane.
Przykład 7-1. Prosty formularz ze zmienną<form action="foo.php" method="post">
Name: <input type="text" name="username"><br>
<input type="submit">
</form>
Kiedy powyższy formularz zostanie wysłany, wartość wprowadzona do pola
tekstowego będzię dostępna w
$HTTP_POST_VARS['username']. Jeśli dyrektywa register_globals jest włączona,
zmienna z formularza będzie także dostępna jako zmienna globalna
$username.
Notatka:
Dyrektywa konfiguracyjna
magic_quotes_gpc oddziałuje
na zmienne z Get, Post i Cookie. Jeśli włączona, tekst (It's "PHP!")
automagicznie zmieni się w (It\'s \"PHP!\"). Jest to potrzebne przy
wpisywaniu danych do baz danych. Zobacz też
addslashes(), stripslashes() i
magic_quotes_sybase.
PHP obsługuje także tablice w kontekście zmiennych z formularzy
(zajrzyj do FAQ). Można na przykład
pogrupować razem powiązane zmienne lub użyć tej możliwości do pobrania
wartości z pola wyboru (select):
Przykład 7-2. Bardziej złożone zmienne w formularzach<form action="array.php" method="post">
Nazwisko: <input type="text" name="personal[nazwisko]"><br>
Email: <input type="text" name="personal[email]"><br>
Piwo: <br>
<select multiple name="piwo[]">
<option value="zywiec">Żywiec
<option value="lech">Lech
<option value="cooler">Cooler
</select>
<input type="submit">
</form>
W PHP 3 tablice w formularzach mogły być tylko jednowymiarowe. W PHP 4 nie
ma takich ograniczeń.
Nazwy zmiennych dla SUBMIT w postaci obrazka
Przy tworzeniu formularza, można użyć obrazka, zamiast standardowego
przycisku Wyślij, za pomocą takiego znacznika:<input type="image" src="image.gif" name="sub">
Kiedy użytkownik kliknie gdzieś na obrazku, formularz, którego to dotyczy,
zostanie wysłany do serwera z dwiema dodatkowymi zmiennymi, sub_x i sub_y.
Zawierają one koordynaty miejsca kliknięcia na obrazek. Można przy tym
zauważyć, że w nazwach zmiennych jest kropka a nie podkreślnik, ale PHP
konwertuje kropkę na podkreślnik automatycznie. (Zobacz Kropki w nazwach
nadchodzących zmiennych).
Ciasteczka HTTP
PHP bez problemu obsługuje ciasteczka HTTP, takie jak zdefiniowano w Specyfikacji Netscape'a. Ciasteczka są
mechanizmem przechowywania informacji w przeglądarce klienta w celu
śledzenia lub identyfikowania stałych bywalców strony. Ciasteczka ustawia
się za pomocą funkcji setcookie(). Ciasteczka są częścią
nagłówka HTTP, więc funkcja SetCookie musi być wywołana zanim jakakolwiek
inna informacja zostanie wysłana do przeglądarki. Takie samo ograniczenie
dotyczy funkcji header(). Wszystkie ciasteczka odebrane
od klienta zostaną automatycznie zamienione w zmienne PHP, podobnie jak
dane odebrane metodą GET lub POST.
Jeśli chcesz przypisać wiele wartości do jednego ciasteczka, dodaj
[] do jego nazwy. Na przykład:
setcookie("MyCookie[]", "Testing", time()+3600);
Pamiętaj, że wysłane ciasteczko zastąpi wcześniejsze ciasteczko o tej
nazwie, o ile ścieżka lub domena nie są różne. Na przykład dla koszyka
do zakupów możesz potrzebować licznika a jego wartość stale przekazywać
dalej, tzn.
Przykład 7-3. Przykład zastosowania SetCookie$ilosc++;
setcookie("ilosc", $ilosc, time()+3600);
setcookie("koszyk[$ilosc]", $towar, time()+3600);
P&Zmienne środowiskowe
PHP samoczynnie udostępnia zmienne środowiskowe jak zwykłe zmienne PHP.
echo $HOME; /* Wyświetli zmienną środowiskową HOME, o ile ta ma jakąś wartość
*/
Ponieważ informacje nadchdzące przez GET, POST i ciasteczka również
są udostępniane jako zmienne, czasem jest lepiej odczytać zmienne
środowiskowe bezpośrednio ze środowiska, aby mieć pewność, że otrzymuje się
prawdziwą wartość zmiennej. W tym celu używa się funkcji
getenv(). Można także samodzielnie ustawić wartość
zmiennej środowiskowej za pomocą funkcji putenv().
Kropki w nazwach nadchodzących zmiennych
PHP normalnie nie zmienia nazw zmiennych przekazywanych do skryptu.
Jednakże należy pamiętać, że kropka "." nie jest poprawnym znakiem w
nazwie zmiennej. Dlaczego, proszę spojrzeć na to:
$varname.ext; /* niepoprawna nazwa zmiennej */
To co widzi parser, to zmienna o nazwie $varname, po
której pojawia się operator konkatenacji, a następnie pusty łańcuch (czyli
taki, który nie jest żadnym słowem kluczowym, ani zarezerwowanym) "ext".
Oczywiście, nie daje to żadnego sensownego wyniku.
Warto zatem wiedzieć, że PHP automatycznie zastąpi podkreślnikiem
"_" każdą kropkę w nazwie nadchodzącej zmiennej.
Określanie typów zmiennych
Ponieważ PHP samodzielnie określa typy zmiennych i konwertuje je
(zasadniczo) jak potrzeba, nie zawsze jest jasne, jakiego typu jest dana
zmienna w danym momencie. PHP zawiera kilka funkcji do określania typów
zmiennych. Są to:
gettype(), is_long(),
is_double(), is_string(),
is_array()i
is_object().
PoprzedniSpis treściNastępnyZmienne zmiennePoczątek rozdziałuStałe
Wyszukiwarka
Podobne podstrony:
language variables externallanguage variables externallanguage variableslanguage variableslanguage variables scopelanguage variables variablelanguage variables scopelanguage variables predefinedlanguage variables scopelanguage variableslanguage variables predefinedlanguage variables variablelanguage variables predefinedlanguage variableslanguage variables variablelanguage expressionsLanguage and Skills Test Units 1 2function import request variableswięcej podobnych podstron