Jeg antager, at vi har oprettet en HTML-formular, som vi sender, og nu ønsker vi at behandle dataene. Der findes en separat artikel om oprettelse af en HTML-formular.
Måden, hvorpå formularen sendes, angives direkte i HTML
Der er 2 muligheder:
php.baraja.cz/search.php?query=formulare
Vi skal derefter læse dem i PHP ved hjælp af samme metode.
Grundlaget er en HTML-formular, og hvordan du laver den, kan du læse i en separat artikel.
Lad os starte med en simpel formular til indtastning af brugerens navn:
<form action="welcome.php" method="GET">Zadejte jméno: <input type="text" name="username"><input type="submit" value="odeslat"></form>
Der vises et tekstfelt, hvor du skal indtaste et navn og klikke på Send. Når der klikkes på knappen, sendes indholdet af feltet til scriptet welcome.php
.
Nu til den egentlige behandling i filen welcome.php
:
$username = $_GET['brugernavn'];echo 'Det indtastede navn er:' . $username;
Bemærk den særlige variabel $_GET
. Dette er en superglobal variabel, der indeholder data fra formularen og kan tilgås som et array.
Problemet med denne løsning er imidlertid, at de modtagne data ikke er sikre, og at en lignende formular let kan angribes. En potentiel angriber kan f.eks. indtaste javascript-kode i feltet i stedet for et navn, som vil blive skrevet til siden og udført.
Derfor skal vi altid rense alle brugerdata, før vi udsender dem i HTML-kode:
$username = $_GET['brugernavn'] ?? 'Ukendt';echo 'Det indtastede navn er:' . htmlspecialchars($username);
Vi kan gøre hvad som helst med de modtagne data og behandle dem som alle andre almindelige variabler.
Tilføj f.eks. værdien i to felter:
echo $_GET['x'] + $_GET['y'];
Du kan også gemme til en fil, database, e-mail, ...
Følgende funktioner er nyttige til dette formål:
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | da