Najnowsze tutoriale tworzenie stron internetowych
 

PHP 5 Zmienne globalne - superglobals


Superglobalne zostały wprowadzone w PHP 4.1.0 i są wbudowane zmienne, które są zawsze dostępne we wszystkich zakresach.


PHP zmienne globalne - superglobalne

Kilka predefiniowane zmienne w PHP są "superglobals" , co oznacza, że są one zawsze dostępne, niezależnie od zakresu - i można uzyskać do nich dostęp z dowolnej funkcji, klasy lub plik bez konieczności robić nic szczególnego.

Zmienne PHP superglobalną są:

  • $ GLOBALS
  • $ _SERVER
  • $ _REQUEST
  • $ _POST
  • $ _GET
  • $ _FILES
  • $ _ENV
  • $ _COOKIE
  • $ _SESSION

Ten rozdział wyjaśni niektóre superglobals, a reszta zostanie wyjaśnione w późniejszych rozdziałach.


PHP $ GLOBALS

$ GLOBALS jest bardzo zmienna globalna PHP, który jest używany do dostępu do zmiennych globalnych z dowolnego miejsca w skrypcie PHP (również od wewnątrz funkcji lub metody).

PHP przechowuje wszystkie zmienne globalne w tablicy o nazwie $ GLOBALS [ index ]. Indeks przechowuje nazwę zmiennej.

Poniższy przykład pokazuje, jak używać super globalna zmienna $ GLOBALS:

Przykład

<?php
$x = 75;
$y = 25;
 
function addition() {
    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
 
addition();
echo $z;
?>
Uruchomić przykład »

W powyższym przykładzie, ponieważ oo jest zmienna występuje w tablicy $ globalnych, jest również dostępny z zewnątrz funkcji!


PHP $ _SERVER

$ _SERVER jest bardzo zmienna globalna PHP, który posiada informacje o nagłówkach, ścieżek i miejsc skryptów.

Poniższy przykład pokazuje, jak korzystać z niektórych elementów w $ _SERVER:

Przykład

<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
Uruchomić przykład »

Poniższa tabela zawiera najważniejsze elementy, które mogą wejść do środka $ _SERVER:

Element / Code Opis
$ _SERVER [ 'PHP_SELF'] Zwraca nazwę pliku skryptu aktualnie wykonującego
$ _SERVER [ 'GATEWAY_INTERFACE'] Zwraca wersję Common Gateway Interface (CGI) serwer używa
$ _SERVER [ 'SERVER_ADDR'] Zwraca adres IP serwera hosta
$ _SERVER [ 'SERVER_NAME'] Zwraca nazwę serwera hosta (such as www.w3ii.com)
$ _SERVER [ 'SERVER_SOFTWARE'] Zwraca ciąg identyfikacyjny serwera (such as Apache/2.2.24)
$ _SERVER [ 'SERVER_PROTOCOL'] Zwraca nazwę i wersję protokołu informacyjnego (such as HTTP/1.1)
$ _SERVER [ 'REQUEST_METHOD'] Zwraca metodę żądania używanego do uzyskania dostępu do strony (such as POST)
$ _SERVER [ 'REQUEST_TIME'] Zwraca znacznik czasowy początku żądanie (such as 1377687496)
$ _SERVER [ 'QUERY_STRING'] Zwraca ciąg kwerendy, jeśli strona jest dostępna za pośrednictwem łańcucha zapytania
$ _SERVER [ 'HTTP_ACCEPT'] Zwraca Zebrane nagłówek z aktualnego zapytania
$ _SERVER [ 'HTTP_ACCEPT_CHARSET'] Zwraca nagłówek Accept_Charset z bieżącego żądania (jak UTF-8, ISO-8859-1)
$ _SERVER [ 'HTTP_HOST'] Zwraca nagłówka hosta z aktualnego zapytania
$ _SERVER [ 'HTTP_REFERER'] Zwraca pełny adres URL bieżącej strony (nie wiarygodne, ponieważ nie wszystkie klienty użytkownika obsługują go)
$ _SERVER [ 'HTTPS'] Jest skrypt pytani przez bezpieczny protokół HTTP
$ _SERVER [ 'REMOTE_ADDR'] Zwraca adres IP, z którego użytkownik ogląda bieżącą stronę
$ _SERVER [ 'REMOTE_HOST'] Zwraca nazwę hosta, z którym użytkownik ogląda bieżącą stronę
$ _SERVER [ 'REMOTE_PORT'] Zwraca port używany na komputerze użytkownika w celu komunikowania się z serwerem WWW
$ _SERVER [ 'SCRIPT_FILENAME'] Zwraca bezwzględną ścieżkę skryptu aktualnie wykonującego
$ _SERVER [ 'SERVER_ADMIN'] Zwraca wartość podaną w dyrektywie SERVER_ADMIN w pliku konfiguracyjnym serwera WWW (jeśli skrypt pracuje na wirtualnym hoście, to będzie wartość określona dla danego wirtualnego hosta) (such as [email protected])
$ _SERVER [ 'SERVER_PORT'] Zwraca port na serwerze, używany przez serwer do komunikacji internetowej (such as 80)
$ _SERVER [ 'SERVER_SIGNATURE'] Zwraca wersję serwera i nazwę hosta wirtualnego, które są dodawane do stron generowanych przez serwer
$ _SERVER [ 'PATH_TRANSLATED'] Zwraca ścieżkę opartą systemu plików do skryptu
$ _SERVER [ 'SCRIPT_NAME'] Zwraca ścieżkę bieżącego skryptu
$ _SERVER [ 'SCRIPT_URI'] Zwraca URI bieżącej strony

PHP $ _REQUEST

PHP $ _REQUEST służy do zbierania danych po przesłaniu formularza HTML.

Poniższy przykład przedstawia formularz z pola wejściowego i przycisk Wyślij. Gdy użytkownik wprowadza dane, klikając na "Submit" , dane formularz jest wysyłany do pliku podanego w action atrybutu <form> tag. W tym przykładzie, zwracamy się do tego pliku sam na przetwarzanie danych formularzy. Jeśli chcesz użyć innego pliku PHP do przetwarzania danych formularza, należy wymienić, że z nazwy pliku do wyboru. Następnie możemy użyć super zmienna globalna $ _REQUEST do zbierania wartość pola wejściowego:

Przykład

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fname">
  <input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // collect value of input field
    $name = $_REQUEST['fname'];
    if (empty($name)) {
        echo "Name is empty";
    } else {
        echo $name;
    }
}
?>

</body>
</html>
Uruchomić przykład »

PHP $ _POST

PHP $ _POST jest powszechnie wykorzystywane do zbierania danych z formularza po przesłaniu formularza HTML z method = „post”. $ _POST jest również szeroko stosowany do przekazywania zmiennych.

Poniższy przykład przedstawia formularz z pola wejściowego i przycisk Wyślij. Gdy użytkownik wprowadza dane, klikając na "Submit" , dane formularz jest wysyłany do pliku podanego w action atrybutu <form> tag. W tym przykładzie możemy wskazać plik do samej formy przetwarzania danych. Jeśli chcesz użyć innego pliku PHP do przetwarzania danych formularza, należy wymienić, że z nazwy pliku do wyboru. Następnie możemy użyć super zmienna globalna $ _POST zbierać wartość pola wejściowego:

Przykład

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fname">
  <input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // collect value of input field
    $name = $_POST['fname'];
    if (empty($name)) {
        echo "Name is empty";
    } else {
        echo $name;
    }
}
?>

</body>
</html>
Uruchomić przykład »

PHP $ _GET

PHP $ _GET mogą być również wykorzystywane do zbierania danych z formularza po przesłaniu formularza HTML z method = „get”.

$ _GET może także zbierać dane wysłane w adresie URL.

Załóżmy, że mamy stronę HTML zawierającą hiperłącze z parametrami:

<html>
<body>

<a href="test_get.php?subject=PHP&web=w3ii.com">Test $GET</a>

</body>
</html>

Gdy użytkownik kliknie na link "Test $GET" , parametry "subject" i "web" są wysyłane do "test_get.php" , a następnie można uzyskać dostęp do swoich wartości w "test_get.php" z $ _GET.

Poniższy przykład pokazuje kod "test_get.php" :

Przykład

<html>
<body>

<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>
Uruchomić przykład »

Wskazówka: Dowiesz się więcej o $ _POST i $ _GET w formularzach PHP rozdziału.