Ziele

Um Daten vom Internet-Benutzer zum Server zu senden werden Formulare verwendet.

 

 

GET / POST

Es gibt 2 Möglichkeiten Formulardaten an einen Server zu senden. GET und POST. GET hängt die Daten einfach an die URL und ist auf ca. 1 KByte begrenzt. POST sendet unabhängig von der URL und ist datenmäßig unbegrenzt. Daher ist diese Variante meist die Methode der Wahl.

Beispiel eines einfachsten Formulares:

<form method="POST" action="scriptname.php">
<input type="text" name="fname">
<input type="submit" value="Eintragen">
</form>

Die Variable $fname kann dann als globale Variabel im PHP-Script benutzt werden, wenn register_globals = On in der php.ini gesetzt ist. Standardmäßig ist diese Einstellung deaktiviert, da besser der Weg über $_REQUEST["variable"] gewählt werden sollte.

 

 Hinweis

Bei neueren PHP-Versionen werden bei in der php.ini eingeschaltetem display_errors=on Fehlermeldungen bei nachfolgenden Programmen ausgegeben. In späteren Kapiteln wird eine sauberere Art der Programmierung besprochen z.B.: if(isset($_REQUEST["fo"]))$fo=$_REQUEST["fo"]; else $fo=""; , die zuerst mit isset() überprüft ob die Variable gesetzt ist bevor sie zugewiesen wird.

Für altere Scripts kann entweder display_errors=off gesetzt, oder am Anfang des Scripts error_reporting(0); eingetragen werden.

 

 Formbeispiel 1

An dieser Stelle folgt ein einfaches Grundgerüst für eine Formularauswertung.
Grundgerüst einer Formularabfrage
<?php

$fo=$_REQUEST["fo"];
if($fo==""){formular();}
if($fo=="login"){login();}


#~~~~~~~~~~~~~~~~~~~~~
function formular()
{
$s="<form method='POST' action=form1.php>";
$s.="<input type='hidden' name='fo' value='login'>";
$s.="Geben Sie hier ihren Namen ein:<br>";
$s.="<input type='text' name='fname' size=20>";
$s.="<p><input type='submit' value='Eintragen'>";
$s.="</form>";
echo $s;
}
#~~~~~~~~~~~~~~~~~~~~~~
function login()
{
$fname=$_REQUEST["fname"];
echo("Sie haben $fname eingegeben!");
}

?>

 

 

 

Diese Funktion erzeugt ein Formular und gibt es aus.

action=form1.phpruft das Script selbst wieder auf, falls es unter diesem Namen gespeichert wurde.

Durch value='login' wird dabei die Funktion login() ausgewählt.

 

Der Inhalt der Textbox ist durch  
$_REQUEST["fname"] verfügbar.

 

 

Übung 1

Ergänzen Sie dieses Programm um ein Eingabefeld für ein Passwort (type=password), das natürlich auch wieder ausgegeben werden soll.

Formbeispiel 2

 

erweitertes Beispiel

<?php

$fo=$_REQUEST["fo"];
if($fo==""){formular();}
if($fo=="login"){login();}


#~~~~~~~~~~~~~~~~~~~~~~~~
function formular()
{
$s="<form method='POST' action=form2.php>";
$s.="<input type='hidden' name='fo' value='login'>";
$s.="Geben Sie hier ihren Namen ein:<br>";
$s.="<input type='text' name='fname' size=20>";
$s.="<p><input type='submit' value='Eintragen'>";
$s.="</form>";
echo $s;
}
#~~~~~~~~~~~~~~~~~~~~~~~~
function login()
{
$fname=$_REQUEST["fname"];

if($fname=="boss")$r="Willkommen im System!";
else
{ $r="Sie sind hier nicht willkommen!";
echo $r;
exit("<p><a href='javascript:history.go(-1);'> zurück </a>");
}
echo("<p><a href='http://www.quatsch.qw'>Geheimer Link</a>");
}

?>

 

 

 

 

 

 

 

 

Durch exit(); wird die Funktion abgebrochen. Nachfolgender Code wird dann nicht mehr ausgeführt.