Guide: PHP- & MySQL-innføring: Kapittel 6
Ta imot data fra brukeren
For å lage dynamiske websider i PHP er man nødt til å ta imot og behandle data fra brukeren. Bare slik kan man tilpasse nettsiden til brukeren.
Ta imot arrays
Ved å definere feltnavn i et skjema som inneholder klammeparenteser, kan du bruke input-felt som direkte blir omgjort til en array i PHP-kode. Det er veldig enkelt;
<form method="POST" action="6-13.php">
<?php
$array = $_REQUEST['array'];
for ($nr = 1; $nr < 10; $nr++)
{
?>
<p>Felt <?php echo $nr; ?>:
<input type="text"
name="array[<?php echo $nr; ?>]"
value="<?php
if ($array[$nr])
echo htmlentities(strip_tags(stripslashes($array[$nr])));
?>" />
</p>
<?php
}
?>
<p><input type="submit" value="Send inn" /></p>
</form>
Dette skriptet skriver ut ni felt, med name-attributtet satt til array[1], array[2], osv. PHP-skriptet kan da hente ut disse verdiene gjennom $_REQUEST['array'], og bruke denne som en array. Dersom det finnes en verdi for feltet som blir skrevet ut, setter vi den direkte inn.
En lettere endret versjon av dette skriptet viser at det er mulig å opprette arrays uten å oppgi indeksen;
<form method="POST" action="6-13.php">
<?php
$array = $_REQUEST['array'];
for ($nr = 0; $nr < 10; $nr++)
{
?>
<p>Felt <?php echo $nr; ?>:
<input type="text"
name="array[]"
value="<?php
if (isset($array[$nr]))
echo htmlentities(strip_tags(stripslashes($array[$nr])));
?>" />
</p>
<?php
}
?>
<p><input type="submit" value="Send inn" /></p>
</form>
Her er name-attributtet satt til array[] for alle input-feltene. Da får vi en array indeksert fra 0 og oppover, og vi har defor endret loop-variabelen til å gå fra 0 i stedet for fra 1.