Skicka data till servern

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>
Resultat

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.

Att fånga upp med $_GET["xxx"]
<?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.