/
Blanketter

Formulär, formulärbehandling i PHP

22. 08. 2019

Obsah článku

Jag antar att vi har skapat ett HTML-formulär som vi skickar och nu vill vi behandla uppgifterna. Det finns en separat artikel om hur man skapar ett HTML-formulär.

Mottagande av data - olika sätt

Sättet som formuläret skickas på fastställs direkt i HTML

Det finns 2 alternativ:

  • GET - Det syns i adressfältet efter frågetecknet. Till exempel: php.baraja.cz/search.php?query=formulare.
  • POST - Dold (inte synlig), de flesta formulär skickas via post.

Vi måste sedan läsa dem i PHP med samma metod.

Hämta data från användaren och överföra dem till skriptet

Grunden är ett HTML-formulär, hur man gör det kan du läsa i en separat artikel.

Låt oss till att börja med utgå från ett enkelt formulär för att skriva in användarens namn:

<form action="welcome.php" method="GET">
Zadejte jméno: <input type="text" name="username">
<input type="submit" value="odeslat">
</form>

En textruta visas där du kan ange ett namn och klicka på skicka. När du klickar på knappen skickas fältets innehåll till skriptet welcome.php.

Nu till själva bearbetningen i filen welcome.php:

$username = $_GET['användarnamn'];
echo 'Det angivna namnet är:' . $username;

Observera den speciella variabeln $_GET. Detta är en superglobal variabel som innehåller data från formuläret och kan nås som en array.

Problemet med denna lösning är dock att de mottagna uppgifterna inte är säkra och att ett liknande formulär lätt kan attackeras. En potentiell angripare kan t.ex. skriva in javascriptkod i fältet i stället för ett namn, som skrivs till sidan och körs.

Därför måste vi alltid rensa alla användardata innan vi lägger ut dem i HTML-koden:

$username = $_GET['användarnamn'] ?? 'Okänd';
echo 'Det angivna namnet är:' . htmlspecialchars($username);

Vidareförädling

Vi kan göra vad som helst med de mottagna uppgifterna och behandla dem som vanliga variabler.

Lägg till exempel till värdet i två fält:

echo $_GET['x'] + $_GET['y'];

Eller spara till en fil, databas, e-post, ...

Följande funktioner är användbara för detta:

  • file_put_contents - funktion för att spara data i en fil
  • MD5 - beräkning av kontrollsumma, till exempel för lösenord.
  • Cookies - sparar data i cookies (små filer i webbläsaren).

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:

Související články

1.