Ich hab mir hier alle (na ja, zumindest viele) Threads zur Forumlarüberprüfung angesehen, aber irgenwie hilft es mir nicht weiter. Auch die Online-Doku von php.net hat nicht geholfen, sowie meine 4 (!) Bücher über PHP und diverse Tutorials im WWW.
Folgendes Prob:
habe eine Seite gebaut (in HTML) mit Kontaktformular. Über PHP werden die Daten (Absender-Name, Absender-Adresse, Betreff, Inhalt der Mail) per E-Mail an meine Adresse verschickt. Jetzt möchte ich aber prüfen, ob die Felder ausgefüllt sind. So funktioniert alles (ohne die Überprüfungsfunktion), aber die Funktion macht selber Mist:
Egal ob etwas eingetragen wird oder nicht, werden alle Schleifen durchlaufen, also die Fehlermeldung ausgegeben, dass nichts eingetragen wäre. Der soll ja nur dann die Fehlermeldung anzeigen, wenn nichts eingetragen ist, wenn was drinsteht, (in allen Feldern), soll er die verflixte Mail schicken. Ich raffs nicht... HILFE...
ich habe schon alles probiert (isset, empty, das jetztige, und was weiss ich was es da noch fuer optionen gibt). ich dachte schon daran, dass vielliecht keine globale Variabele definiert wäre, aber ... ach menno, sagt mir, was ich falsch mache...
Quellcode:
<?php
// Funktion um auf vollstaendige Eingaben zu pruefen
function testforms($errors)
{
if($von="") //hier hatte ich auch die Versionen emty($von), isset($von)...
{
echo "Ihr Name fehlt...";
echo "<br>";
$errors++;
}
if($vonmail="")
{
echo "Ihre E-Mail-Adresse fehlt...";
echo "<br>";
$errors++;
}
if($betreff="")
{
echo "Ihr Betreff fehlt...";
echo "<br>";
$errors++;
}
if($inhalt="")
{
echo "Ihre Nachricht fehlt...";
echo "<br>";
$errors++;
}
return $errors;
}
$body="";
foreach($_POST as $name=>$value)
{
$body=$body."$name=$value\n";
}
// Benachrichtigung im E-Mail Formular
$inhalt="$von ($vonmail) schreibt:
$inhalt";
//Fehlerüberprüfung
if (testforms(0)>=1)
{
echo "<br>";
echo "Bitte korrigieren Sie Ihre Eingaben!";
echo "<br>";
echo "Benutzen Sie den Zurück-Button Ihres Browsers um zur Eingabemaske zurückzukehren...";
}
else
{
mail(trim($an), $betreff, $inhalt);
header("Location: $bestaetigen"); // Bestaetigen verweist auf eine Seite, die den E-Mail-Versand bestaetigt
}
?>
//und warum rückt der jetzt hier die Zeilen nicht ein????
Folgendes Prob:
habe eine Seite gebaut (in HTML) mit Kontaktformular. Über PHP werden die Daten (Absender-Name, Absender-Adresse, Betreff, Inhalt der Mail) per E-Mail an meine Adresse verschickt. Jetzt möchte ich aber prüfen, ob die Felder ausgefüllt sind. So funktioniert alles (ohne die Überprüfungsfunktion), aber die Funktion macht selber Mist:
Egal ob etwas eingetragen wird oder nicht, werden alle Schleifen durchlaufen, also die Fehlermeldung ausgegeben, dass nichts eingetragen wäre. Der soll ja nur dann die Fehlermeldung anzeigen, wenn nichts eingetragen ist, wenn was drinsteht, (in allen Feldern), soll er die verflixte Mail schicken. Ich raffs nicht... HILFE...
ich habe schon alles probiert (isset, empty, das jetztige, und was weiss ich was es da noch fuer optionen gibt). ich dachte schon daran, dass vielliecht keine globale Variabele definiert wäre, aber ... ach menno, sagt mir, was ich falsch mache...
Quellcode:
<?php
// Funktion um auf vollstaendige Eingaben zu pruefen
function testforms($errors)
{
if($von="") //hier hatte ich auch die Versionen emty($von), isset($von)...
{
echo "Ihr Name fehlt...";
echo "<br>";
$errors++;
}
if($vonmail="")
{
echo "Ihre E-Mail-Adresse fehlt...";
echo "<br>";
$errors++;
}
if($betreff="")
{
echo "Ihr Betreff fehlt...";
echo "<br>";
$errors++;
}
if($inhalt="")
{
echo "Ihre Nachricht fehlt...";
echo "<br>";
$errors++;
}
return $errors;
}
$body="";
foreach($_POST as $name=>$value)
{
$body=$body."$name=$value\n";
}
// Benachrichtigung im E-Mail Formular
$inhalt="$von ($vonmail) schreibt:
$inhalt";
//Fehlerüberprüfung
if (testforms(0)>=1)
{
echo "<br>";
echo "Bitte korrigieren Sie Ihre Eingaben!";
echo "<br>";
echo "Benutzen Sie den Zurück-Button Ihres Browsers um zur Eingabemaske zurückzukehren...";
}
else
{
mail(trim($an), $betreff, $inhalt);
header("Location: $bestaetigen"); // Bestaetigen verweist auf eine Seite, die den E-Mail-Versand bestaetigt
}
?>
//und warum rückt der jetzt hier die Zeilen nicht ein????
Kommentar