Odczytywanie danych formularza za pomocą superglobalnych
Uzyskuj dostęp do pól formularza za pośrednictwem tablic _GET i _POST
Odczytywanie danych formularza za pomocą superglobalnych to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.
Zmienne superglobalne PHP
Zmienne superglobalne to wbudowane tablice PHP dostępne we wszystkich zakresach — do uzyskania do nich dostępu w funkcjach nie trzeba używać global.
Zmienne superglobalne związane z formularzami: $_GET, $_POST, $_FILES, $_REQUEST
Dostęp do pól $_POST
Odczytuj wartości formularza POST za pomocą dostępu do elementu tablicy z wartością domyślną:
<?php
// Safe access with null coalescing
$username = $_POST['username'] ?? '';
$email = $_POST['email'] ?? '';
$age = (int) ($_POST['age'] ?? 0);
var_dump($username, $email, $age);Dostęp do parametrów $_GET
Odczytuj parametry ciągu zapytania URL ze zmiennej $_GET:
<?php
// URL: /products.php?category=electronics&page=2&sort=price
$category = $_GET['category'] ?? 'all';
$page = max(1, (int) ($_GET['page'] ?? 1));
$sort = in_array($_GET['sort'] ?? '', ['price', 'name', 'date'])
? $_GET['sort']
: 'name';
echo "Category: $category, Page: $page, Sort: $sort";Obsługa pól wyboru
Niezaznaczone pola wyboru NIE są przesyłane — zawsze sprawdzaj je za pomocą isset lub ??:
<?php
// HTML: <input type="checkbox" name="newsletter">
$wantsNewsletter = isset($_POST['newsletter']);
// or:
$wantsNewsletter = ($_POST['newsletter'] ?? null) !== null;
echo $wantsNewsletter ? 'Subscribed' : 'Not subscribed';Tablice wartości z pól wielokrotnego wyboru i pól wyboru
Używaj atrybutów name w formie tablicy, aby gromadzić wiele wartości:
<!-- HTML -->
<!-- <input type="checkbox" name="tags[]" value="php"> -->
<!-- <input type="checkbox" name="tags[]" value="mysql"> -->
<?php
$tags = $_POST['tags'] ?? [];
if (!is_array($tags)) $tags = [];
foreach ($tags as $tag) {
echo htmlspecialchars($tag) . PHP_EOL;
}Informacje ze zmiennej $_SERVER
$_SERVER udostępnia dane o serwerze i środowisku żądania:
<?php
echo $_SERVER['REQUEST_METHOD']; // GET or POST
echo $_SERVER['REQUEST_URI']; // /page.php?foo=bar
echo $_SERVER['HTTP_HOST']; // example.com
echo $_SERVER['REMOTE_ADDR']; // client IP
echo $_SERVER['HTTP_USER_AGENT']; // browser stringfilter_input()
filter_input() odczytuje i oczyszcza wartości zmiennych superglobalnych w jednym kroku:
<?php
// Retrieve and validate an integer from POST
$age = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);
if ($age === false) {
echo 'Invalid age';
}
// Retrieve and sanitize a string from GET
$name = filter_input(INPUT_GET, 'name', FILTER_SANITIZE_SPECIAL_CHARS);
echo $name;filter_var() do walidacji
Weryfikuj i oczyszczaj wartości znajdujące się już w zmiennych:
<?php
$email = 'user@example.com';
$ip = '192.168.1.1';
$url = 'https://example.com';
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL)); // string
var_dump(filter_var($ip, FILTER_VALIDATE_IP)); // string
var_dump(filter_var($url, FILTER_VALIDATE_URL)); // stringFILTER_SANITIZE a FILTER_VALIDATE
Dwa tryby działania filter_var:
FILTER_VALIDATE_*— zwraca wartość, jeśli jest poprawna, a w przeciwnym razie falseFILTER_SANITIZE_*— usuwa lub koduje niebezpieczne znaki i zwraca oczyszczoną wartość
Obsługa $_FILES
$_FILES zawiera metadane przesłanych plików — każdy plik ma pięć kluczy:
<?php
if (isset($_FILES['avatar'])) {
$file = $_FILES['avatar'];
echo $file['name']; // original filename: photo.jpg
echo $file['type']; // MIME type: image/jpeg
echo $file['size']; // bytes: 45231
echo $file['tmp_name']; // temp path on server
echo $file['error']; // 0 = no error
}Wzorzec obsługi całego formularza
Przejrzysty wzorzec obsługi przesyłania formularza z walidacją:
<?php
$errors = [];
$name = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = trim($_POST['name'] ?? '');
if (empty($name)) {
$errors[] = 'Name is required';
}
if (empty($errors)) {
// process...
header('Location: /thanks.php');
exit;
}
}Szybkie sprawdzenie
Co wysyła niezaznaczone pole wyboru do serwera PHP?
Podsumowanie: zmienne superglobalne
Najważniejsze zmienne superglobalne używane w formularzach:
$_GET— parametry adresu URL$_POST— treść żądania$_FILES— informacje o przesłanych plikach$_SERVER— środowisko serwera i żądania- Używaj
??do bezpiecznego pobierania wartości domyślnej - Używaj
filter_input()do jednoczesnego pobierania i walidowania danych
Często zadawane pytania
Czy lekcja „Odczytywanie danych formularza za pomocą superglobalnych” jest bezpłatna?
Tak — pełny tekst „Odczytywanie danych formularza za pomocą superglobalnych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Odczytywanie danych formularza za pomocą superglobalnych”?
Uzyskuj dostęp do pól formularza za pośrednictwem tablic _GET i _POST Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć PHP Academy?
Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Odczytywanie danych formularza za pomocą superglobalnych”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?
Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- GET a POST: kiedy używać każdej metody
- Odczytywanie danych formularza za pomocą superglobalnych
- Techniki walidacji danych wejściowych
- Oczyszczanie danych wejściowych użytkownika