Hallo
alle zusammen,
Ich
habe nun erfolgreich mein erstes Kontaktformular mit dem PHP-Kurs
programmiert. Allerdings habe ich noch ein paar Fragen die ich mir
selbst nicht beantworten kann.
1.Ich wollte die Notiz "undefinierter Index" mit isset()
unterdrücken. Dann brachte er aber bei der Kontrolle (code zeile
eins bis sieben) "1" raus. Nur bei der Anrede nicht. Der
"1" Fehler tritt auf wenn man das Formular absendet ohne
die Felder auszufüllen. Warum schreibt er mir eine "1".
Kann ich die Variablen auch auf "leer" definieren? Nach
füllen der Felder und absenden wären sie ja dann nichtmehr leer.
2.Ich verstehe nicht warum die Klammer der if Funktion in Zeile 34
umbedingt in der PHP funktion (Zeile 64) liegen muss damit das
Formular ausgefüllt wird.
Denn die else Funktion fängt in Zeile 67 an die hat doch mit dem if
nichts mehr zu schaffen.
Warum muss die letzt geschweifte klammer der if funktion umbedingt in
diesem PHP bereich liegen?
3.Ich verstehe auch nicht warum das Hidden Feld verhindert dass direkt
am anfang beim öffnen der Seite die Fehlermeldungegen unterdrückt
werden das nichts ausgefüllt wurde.
Es funkioniert zwar alles aber das reicht mir nicht
Desweiteren würde mich noch interresieren ob ihr meine Beschriftung und den
Aufbau des PHP Programmes gut und übersichtlich findet ?
Vielen
dank für eure Zeit und die Mühe.
Lg
Code:
<?php
echo "<b>Kontrolle: </b>";
echo "<li>Anrede: ".isset($_GET['geschlecht']); //bei isset kommt 1 oder 0 raus
echo "<li>Name: ".isset($_GET['name']);
echo "<li>Anliegen: ".isset($_GET['anliegen']);
// Nur Kontrolle für Entwickeler !!!
?>
<?php
//Dises Programm verhindert, das die Aufforderung leere Felder auszufüllen direkt am Anfang erscheint
if ( @$_GET['abgesendet']=="true" )
{
if ( @$_GET['geschlecht'] == "")
{
echo "<p>Bitte Anrede auswälen</p>";
}
if ( @$_GET['name'] == "")
{
echo "<p>Bitte Namen eintragen</p>";
}
if ( @$_GET['anliegen'] == "")
{
echo "<p>Bitte Anliegen eintragen</p>";
}
}
?>
<?php
//Überspringt das Formular wenn alle eingaben getätigt wurden ung geht direkt zur Auswertung
if ( @$_GET['anliegen'] == "" OR @$_GET['geschlecht'] == "" OR @$_GET['name']== "")
{
?>
<form method="get" action="kontakt-formular.php" >
<p>Anrede:<br />
<input type="radio" name="geschlecht" value="Frau"
<?php if (@$_GET['geschlecht']=="Frau") {echo 'checked = "checked"';} //bei wiederladen des Formuars bleibt die Eingabe bestehen?>
/>Frau
<input type="radio" name="geschlecht" value="Mann"
<?php if (@$_GET['geschlecht']=="Mann") {echo 'checked = "checked"';} //bei wiederladen des Formuars bleibt die Eingabe bestehen?>
/>Mann
</p>
<p>Name:<br />
<input type="text" name="name" value="<?php echo @$_GET['name'];?>" size="20" maxlength="50"/>
</p>
<p>Anliegen:<br />
<textarea name="anliegen" rows="8" cols="60"><?php echo @$_GET['anliegen'];?></textarea>
</p>
<p>
<input type="hidden" name="abgesendet" value="true" />
<input type="submit" name="absenden" value="Absenden" />
</p>
</form>
<?php
}
else
{
echo "<p>"; //Zeigt die Dateien auf dem Bildschirm an
echo "Name: "."<br />";
echo $_GET['name'];
echo "</p>";
echo "<p>";
echo "Geschlecht: "."<br />";
echo $_GET['geschlecht'];
echo "</p>";
echo "<p>";
echo "Anliegen: "."<br />";
echo $_GET['anliegen'];
echo "</p>";
$inhaltanfrage = $_GET['name']; //Speichert die Dateien in einer txt datei
$inhaltanfrage.= "\r\n";
$inhaltanfrage.= $_GET['geschlecht'];
$inhaltanfrage.= "\r\n";
$inhaltanfrage.= $_GET['anliegen'];
$inhaltanfrage.= "\r\n";
$inhaltanfrage.= "-------------------------------";
$inhaltanfrage.= "\r\n";
$handle = fopen ("anfragen.txt", "a");
fwrite ($handle, $inhaltanfrage);
fclose ($handle);
}
?>
Alles anzeigen