Kommer ni ihåg att vi förut pratade om formulär i HTML-avsnittet? Den gången så pratade vi om hur vi skulle skapa
formulär men att de var statiska genom att inget hände när vi tryckte på knappen. Om vi begrundar det formuläret kan
vi se att det står method="GET"
det indikerar att vi kommer kommer att göra en HTTP GET request till servern
och action="test.php"
anger att vi efterfrågar sidan test.php.
<form action="test.php" method="GET">
<label for="field-name">Ditt namn</label>
<input type="text" id="field-name" name="name" placeholder="Ditt namn" required>
<label>Vad vill du äta till frukost?</label>
<label for="field-pancakes">Pannkakor</label>
<input type="radio" id="field-pancakes" name="breakfast" value="pancakes">
<label for="field-scrambled">Äggröra</label>
<input type="radio" id="field-scrambled" name="breakfast" value="scrambled">
<label for="field-toast">Övrigt</label>
<input type="radio" id="field-toast" name="breakfast" value="toast">
<input type="submit" value="Skicka!">
</form>
Eftersom vi efterfrågar test.php och faktiskt skickar med data som vi är intresserade av så bör vi nu fånga upp det.
<?php
$name= $_GET["name"]
$choice= $_GET["breakfast"]
echo "kära" . $name . " , jag skall absolut fixa ". $choice . "till dig!" ;
?>
SÅ vad är då $_GET["xxx"]
? Det finns inom PHP två globala variabler som man kan fånga upp parametrar som skickats
till servern, $_GET["xxx"]
eller $_POST["xxx"]
. Skillnaden mellan post och get är att: utifall
man skickar med get kommer parametrarna synas i URL:en (exempel: test.php?breakfast=toast&name=Klara ) medan i post finns den inbäddad i requesten som görs. Det betyder att
utifall man faktiskt skickar med data som man inte vill visa bör man välja att skicka den med post. post skickas fortfarande
som en ren text därav är den inte säker utan att man krypterar texten innan. Som regel brukar man alltid skicka större mängd data
med post och utifall man skall processa datat på något sätt.
Man måste inte skicka data med ett formulär utan kan göra det med hjälp av functionen header. för att kunna skicka med data
behövs då att man skriver det manuellt. header('Location: test.php?breakfast=toast&name=Klara');
. Som ni ser
så har jag nu manuellt skrivit till efter frågetecknet olika parametrar och särskilt dem med hjälp av ett &
Det här kapitlet är en del av en den interaktiva och pragmatiska höghastighetsguiden till webbutveckling — HTMLHunden. Använd knapparna nedan för att läsa vidare eller navigera till innehållsförteckningen.