• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Daten abschicken und überprüfen?ß

trix0matrix9

Neues Mitglied
hiho,
mein problem ist, das ich zwei textfelder habe (textfield, textfield2) und einen Button (Klasse: Abschicken) und ich will jetzt, das wenn der benutzer auf den button klickt, zuerst überprüft wird, ob etwas in den textfeldern steht und dann eine e-mail verschickt. So eine Art aufmerksamkeit. in der e-mail sollen dann die Daten drinnen stehen, die in den textboxen stehen. Wie kann ich sowas machen??
 
Werbung:
Werbung:
Die Überprüfung der Eingabefelder machst du mit Javascript.
Also diese Aussage halte ich für sehr gewagt. Eine Prüfung per PHP oder sonst eine serverseitige Scriptsparche ist meiner Meinung nach die einzig richtige Empfehlung, zumal die Formulardaten so oder so über eine serverseitige Scriptsprache versendet werden. Ich rate bei Formularfverarbeitung in dieser Art immer zur Anwendung des "Affenformular": Guter Code - Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform oder auch hier: Affenformular

Gruß thuemmy
 
kann mir jemand diesen script erklären???
<?php
// Verarbeitung nur bei abgesendetem Formuler starten
if (!empty($_POST)) {

$fehler = array();

// Inhaltsprüfungen
if(empty($_POST['textfeld', 'textfeld2'])) {
$fehler['textfeld'] = 'Es wurden nicht alle Textfelder ausgewüfüllt!';
}
if(empty($_POST['textfeld2'])) {
$fehler['textfeld'] = 'Es wurden nicht alle Textfelder ausgewüfüllt!';
}
// weitere Prüfungen hier einfügen
if (empty($fehler)) {
// Verarbeitung war erfolgreich
// Weiterleiten beispielsweise zu einer Dankesseite
header("Location: http://example.com/danke.php");
exit;

} else {

// Ausgabe der gesammelten Fehlermeldungen
echo "<ul class='errors'>\n";
foreach ($fehler as $feldname => $meldung) {
printf("<li>%s</li>\n", htmlspecialchars($meldung));
}
echo "</ul>\n";
}
}
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<input type="submit" name="submit" value="Absenden" />
</form>

bitte :(
achja, da soll auch noch gleich eine weiterleitung passieren, wenn es überprüft wurde.
bei diesen script sehe ich nämlich nicht durch :(
 
<?php
// Verarbeitung nur bei abgesendetem Formuler starten
// Ueberpruefen, ob $_POST NICHT empty ist (deswegen das !)
if (!empty($_POST)) {
// variable $fehler soll array sein also:
$fehler = array();

// Inhaltsprüfungen:
//hier wird ueberpreuft, ob die Textfelder deines formular ueberhaupt ausgefuellt wurden.
// jedoch denke ich, dass es NUR "if(empty($_POST['textfeld'])) {" heissen sollte, da in der naechsten
// if abfrage textfeld 2 ueberprueft wird
if(empty($_POST['textfeld', 'textfeld2'])) {
// nun erhaelt das array $fehler einen Schluessen (textfeld) und einen wert (der String)
// die fehlermeldungen werden gesammelt und spaeter verarbeitet.
$fehler['textfeld'] = 'Es wurden nicht alle Textfelder ausgewüfüllt!';
}
// wie oben nur wird jetzt textfeld 2 ueberprueft
if(empty($_POST['textfeld2'])) {
// siehe oben
$fehler['textfeld'] = 'Es wurden nicht alle Textfelder ausgewüfüllt!';
}
// weitere Prüfungen hier einfügen
if (empty($fehler)) {
// Verarbeitung war erfolgreich
// Weiterleiten beispielsweise zu einer Dankesseite
// ist ja eig gut beschrieben. es wird ueberprueft ob fehler aufgetretten sind (welche ja dann im array $fehler sein sollten)
// wenn nein wird der user weitergeleitet. hier: http://example.com/danke.php
header("Location: http://example.com/danke.php");
exit;

} else {

// Ausgabe der gesammelten Fehlermeldungen
// wenn irgendwelche fehler aufgetretten sind werden sie nun mittels foreach schleife ausgewertet und dem user //ausgegeben.
echo "<ul class='errors'>\n";
foreach ($fehler as $feldname => $meldung) {
printf("<li>%s</li>\n", htmlspecialchars($meldung));
}
echo "</ul>\n";
}
}
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<input type="submit" name="submit" value="Absenden" />
</form>

ich hab zur erklaerung neue // - kommentare eingefuegt, somit hoffe ich, dass der Bittstellende das Skript anschaut ;)
 
Werbung:
nein :D
ich glaube du verstehst nicht ganz was ein array ist :D
eine array ist eine art variable, nur das sie nicht nur 1 Wert speichern kann, sondern viele.
variable: $test = 1;
die variable test hat somit den wert 1 zugewiesen bekommen.

array auf der anderen seite verfuegen ueber keys, die mit den werten verbunden sind.
array: $test['test'] = 'blabla';
somit haben wir ein array das test heisst.
es hat 1 schluessel naemlich test und der damit verbundene wert ist blabla.
ein array kann zahlen, strings und sogar andere arrays als schluessel haben. (google=> mehrdimensionale arrays)

wenn du jetzt wissen willst welchen wert der schluessel test hat, kann man ihn z.b. so ausgeben:
echo $fehler['textfeld'];

in deinem beispiel heisst es:
$fehler['testfeld'] = 'Es wurden nicht alle Textfelder ausgewüfüllt!'

der key und der wert haben nichts damit zu tun, ob der wert in einer tabelle oder einem textfeld ausgegeben wird. dies steuert immer noch html.
ich glaube du solltest noch mal bei google nachschlagen was ein array genau ist :D
 
okay habe ich ^^ jetztverstehe ich auchwieso das falsch ist ^^
so habe ich es aufgenommen:
$fehler['textfeld'] = 'Es wurden nicht alle Textfelder ausgewüfüllt!';
hat den wert "textfeld" und schreibtes nicht in eine ^^
oder?
und dem wert "textfeld" wurde der wert "Es wurden nicht alle Textfelder ausgewüfüllt!" zugeordnet. oder habe ich etwas falsch vertanden?
 
Werbung:
$fehler['textfeld'] = 'Es wurden nicht alle Textfelder ausgewüfüllt!';
hat den wert "textfeld" und schreibtes nicht in eine ^^
oder?

du meinst das richtige, nur heisst es KEY oder SCHLUESSEL nicht wert. der wert ist "Es wurden nicht alle Textfelder ausgewüfüllt!".

und dem wert "textfeld" wurde der wert "Es wurden nicht alle Textfelder ausgewüfüllt!" zugeordnet.
hier ist das erste wert falsch und muss wert heissen :D das zweite wert ist richtig :D
die unterscheidung zwischen key und value oder auf deutsch schluessel und wert ist entscheidend.
 
Zurück
Oben