logo   PHP - POST-modulet.




POST er en af de globale variabler i php.


POST-modulet anvendes til at modtage og videreformidle FORM-data sendt fra FORM-formular i samme program - eller andet program alt efter anvendelsen af "action"-attributten i den pågældende form.


Linket mellem FORM-dataene og POST-modulet udgøres af "name"-attributten i "input type='submit'.


POST-modulet placeres normalt øverst i programmet (umiddelbart efter start-delen af GET når dette modul er anvendt:/p>


<input type='submit' name='ret_fotograf' value='Ret fotograf' />


if (isset ($_POST['ret_fotograf'])) //start POST
{
$fgrf_navn = $_POST['fgrf_navn'];
.
$fgrf_navn = trim ($_POST['fgrf_navn']);
.
$fgrf_navn = htmlentities (trim ($_POST['fgrf_navn']),ENT_QUOTES, "utf-8");
.
$fgrf_belob = htmlentities (str_replace("," , "." , trim ($_POST['fgrf_belob']) ),ENT_QUOTES, "utf-8");
.
foreach ($_SESSION['kurv'] as $plan_id => $plan_antal) // udpakning af array
{  ..  }

.
}
else // POST
{
echo "<p>Der problemer med modtagelsen af POST-data fra formularen.</p>";
} // slut POST


Med "isset" afklares, om "submit"-dataene fra formen er tilgængelige. I så fald forventes alle variablerne i arrayet også at være det.


Variablerne "$_POST['fgrf_navn']" etc. kan bruges umiddelbart, men det er normalt at udtrække dem til en variabel af samme (oftest) navn og så anvende variablerne i det videre forløb.


Variabler fra f.eks. checkbokse kan mangle i arrayen (php medsender dem ikke, når checkboksen ikke er "checked"). Disse kan udtrækkes til variabler på denne måde:

if (isset($_POST['alt_billed'])) {$alt_billed = $_POST['alt_billed'];} else { $fejlbeskeder .= "passende fejlmeddelelse" ;}
eller
if (isset($_POST['fgrf_id'])) {$fgrf_id = $_POST['fgrf_id'];} else { $fgrf_id = 'valgfri fast værdi';}




Array med flere felter


Udpakning af array med flere felter (fra liste i form). Den fulde efterbehandling skal foretages indenfor 'foreach'.


if (isset ($_POST['submit_kurv']))
{
$planter_antal = $_POST['planter_antal'];

foreach ($planter_antal as $vare_id => $antal) // Opdeler arrayen i navnet $vare_id og værdien $antal
{
$antal = trim ($antal);

if (is_numeric ($antal) && $antal >= 0)
{
$antal = (int) $antal; // antal juggles til heltal

if ($antal == 0)
{
unset ($_SESSION['kurv'][$vare_id]); // sletter varen i $_SESSION
}
else
{
$_SESSION['kurv'][$vare_id] = $antal; // indsætter nyt eller overskriver i $_SESSION
} // slut antal
} // slut is_numeric
} // slut foreach

header ("Location: " . $_SERVER['REQUEST_URI']); exit;
}
// slut isset





















x
x