PHP $_POST
$_POST er en af 'supervariablerne' i PHP. Den anvendes til at modtage data fra <form>s.
POST-data fra en form er kun til rådighed et sted. Enten i aktuelt program - når formen sendes uden action-attribut, eller i det program, de er sendt til med formens action-attribut.
Et sæt POST-data navngives i formen ved deres "submit - name". Navnet skal genbruges til at hente POST-dataene med.
Ved anvendelse har $_POST-variablen typisk følgende grundsyntaks for konvertering til variabler. (Selvom POST-data i princippet et stykke hen ad vejen kan bruges uden konvertering til variabler, er det i praksis ikke muligt og uhensigtsmæssigt at undlade konvertering.):
<?php
if (isset ($_POST['form-navn'])) //start POST
{
$variabelnavn = $_POST['variabel_navn'];
...
}
else //POST
{
echo "Der er ingen form-data til rådighed";
} // POST
?>
|
Af hensyn til datakvaliteten etc. er det normalt at udsætte "$_POST['variabel_navn']" for efterbehandling med en eller flere php-standardmetoder før overførsel til "$variabelnavn". Så vidt muligt omlægges de hinanden så hele efterbehandlingen sker på en linie. Disse kan være:
trim() | trim ($_POST['variabelnavn']); | Fjerner evt. blanktegn før og efter datastrengen. |
str_replace() | str_replace (' ','', $_POST['variabelnavn']; | Fjerner evt. blanktegn ende i datastrengen. |
htmlentities() | htmlentities($varibelnavn2,ENT_QUOTES, "utf-8"); | Ændrer ', ", &, < og > til tegnkoder. |
Ved sammensætninger anvendes 'htmlentities()' normalt yderst med en af de to andre indeni (oftest ' trim()'). Kombinationerne ser sådan ud:
htmlentities+trim |
$variabelnavn = htmlentities (trim ($_POST['variabelnavn']),ENT_QUOTES, "utf-8");
|
htmlentities+str_replace |
$variabelnavn = htmlentities (str_replace (' ','', $_POST['variabelnavn']),ENT_QUOTES, "utf-8");
|
str_replace+trim |
$variabelnavn = str_replace (' ','', (trim ($_POST['variabelnavn']));
|
Den øverste del af $_POST-opbygningen - 'if(isset)..' etc. - placeres normalt højt oppe i et program - umiddelbart efter definitionen ef evt. variabler og efter den øverste part af $_GET-delen, når en sådan forekommer.
Den nederste del af opbygningen placeres normalt lige efter, at behandlingen af data på basis af POST-dataene er afsluttet. (Typisk efter opdatering af databasen).
De aktuelle $_POST-parametre kan ses med:
echo '<pre>Indholdet af $_POST er: <br /> '; print_r($_POST); echo '</pre>';
Billeder
Såfremt der skal overføres billeder sammen med en POST-overførsel skal $_FILES indlejres i POST-overførslen. Denne situation er beskrevet under $_FILES-supervariablen.
|