Hantera formulär
- Hantera formulär
- En av de kraftfullaste funktionerna hos PHP är hur det hanterar HTML-formulär. Den grundläggande konceptet som är viktigt att förstå är att alla formelement automatiskt kommer att vara tillgängliga i dina PHP-skript. Läs gärna avsnittet om Variabler från externa källor i manualen för mer information och exempel på hur man använder formulär med PHP. Här är ett exempel på ett HTML-formulär:
- Exempel #1 Ett enkelt HTML-formulär
<form action="action.php" method="post"> <label for="name">Ditt namn:</label> <input name="name" id="name" type="text"> <label for="age">Din ålder:</label> <input name="age" id="age" type="number"> <button type="submit">Skicka</button> </form>
Det finns inget speciellt med detta formulär. Det är ett rakt HTML-formulär utan några speciella taggar av något slag. När användaren fyller i detta formulär och trycker på skickaknappen, kallas sidan action.php. I denna fil skulle du skriva något som detta:
- Exempel #2 Skriva ut data från vårt formulär
Hej <?php echo htmlspecialchars($_POST['name']); ?>. Du är <?php echo (int)$_POST['age']; ?> år gammal.
Ett exempel på utdata från detta skript kan vara:
Hej Joe. Du är 22 år gammal. Förutom delarna med htmlspecialchars() och (int) bör det vara uppenbart vad detta gör. htmlspecialchars() ser till att eventuella tecken som är speciella i HTML kodas korrekt så att människor inte kan injicera HTML-taggar eller Javascript i din sida. För åldersfältet, eftersom vi vet att det är ett nummer, kan vi bara konvertera det till ett heltal vilket automatiskt kommer att bli av med eventuella främmande tecken. Du kan också låta PHP göra detta automatiskt åt dig genom att använda filtertillägget. Variablerna $_POST['name'] och $_POST['age'] ställs automatiskt in av PHP. Tidigare använde vi superglobalen $_SERVER; ovan introducerade vi precis superglobalen $_POST som innehåller alla POST-data. Notera hur metoden för vårt formulär är POST. Om vi använde metoden GET skulle vår formulärinformation leva i superglobalen $_GET istället. Du kan också använda superglobalen $_REQUEST, om du inte bryr dig om källan till dina förfrågningsdata. Den innehåller sammanslagen information från GET, POST och COOKIE-data.