ein sich selbst verschickendes Formular
mike
- php
Hallo zusammen,
ich übergebe die Daten eines formulars an eine andere Stelle einer PHP Datei.
An dieser Stelle weder die Daten zusammenfassend dargestellt.
GLEICHZEITIG sollen an dieser Stelle die Daten in ein neues Formular als "hidden" eingetragen werden und dieses Formular soll sich selbst verschicken.
Man soll also nicht mehr auf nen button klicken müssen.
Mit onLoad() gehts leider nicht, bzw nur seh umständlich, da dies ja bereits im body der HTML Seite stehen müsste.
Kann man sonst irgendwie ein Formular beim Seitenaufruf gleichzeitig erstellen und versenden lassen ??
Bin für jeden Tipp dankbar.
cu,
mike
Theoretisch brauchst du zwei Dateien:
Einmal das Formular und einmal eine Seite an die die Daten weitergegeben werden.
Zu beachten ist allerdings, dass diese Funktion nicht offline funktioniert, du musst Sie erst auf deinen Webspace laden und dort ausprobieren!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Die erste nennst du kontakt.php die zweite mail.php:
Das steht in der kontakt.php: wichtig: im Bodytag
<h1>Kontakt-Formular</h1>
<?php
if (empty($submit)) { // Submit-Button leer, 0 oder nicht definiert?
?>
<h3>1. Bitte geben Sie Ihre Daten ein</h3>
<form action="<?PHP echo $PHP_SELF; ?>" method="post">
<table>
<tr>
<td>Vorname: </td>
<td><input type="text" name="Vorname"></td>
</tr>
<tr>
<td>Nachname: </td>
<td><input type="text" name="Name"></td>
</tr>
<tr>
<td>E-Mail: </td>
<td><input type="text" name="Mail"></td>
</tr>
<td>Ihre Meinung:</td>
<td><textarea name="Feedback" cols="50" rows="5" wrap="soft">
</textarea></td></tr>
<tr>
<td><br></td>
<td><br></td>
</tr>
<tr>
<td></td>
<td><div align="center"><input type="reset" name="reset" value="Daten zurücksetzen">
<!-- wichtig: Submit-Button mit submit benennen! -->
<input type="submit" name="submit" value="Jetzt absenden -->"></div></td>
</tr>
</table>
</form>
<?php
}
else { // Sonst, also wenn Submit-Button vorhanden
?>
<h3>2. Bitte überprüfen Sie Ihre Daten noch einmal</h3>
<?php
foreach($_POST as $key => $value) { // durchläuft alle Formularfelder
if (empty($value)) { // Wert leer, 0 oder nicht definiert?
?>
<p>Bitte füllen Sie <b>alle Felder</b> aus!</p>
<form>
<input type="button" value="<-- Zurück zum Formular"
onclick="javascript:history.back()">
</form>
<!-- Sicherheitshinweis, sichtbar nur für Benutzer ohne JavaScript: -->
<noscript>Bitte gehen Sie mit dem BACK-Button des Browser zurück</noscript>
<?php
exit; // beendet sowohl Schleife als auch Programm!
}
}
echo "<p>Hallo <b>$Vorname $Name!</b><br>\n";
echo "Ihre E-Mail-Adresse lautet <b>$Mail</b>!<br>\n";
echo "Sie haben folgendes eingegeben:<br>\n";
// Für die Ausgabe Backslashes entfernen und Zeilenumbrüche erhalten:
echo "<i>" . stripslashes(nl2br($Feedback)) . "</i><br><br>\n";
echo "Sind diese Angaben korrekt?</p>\n";
// Die vom Nutzer eingegebenen Daten werden in ein Feld geschrieben:
$botschaft="$Vorname $Name, $Mail schreibt\n$Feedback";
$botschaft=htmlspecialchars($botschaft); // HTML-Sonderzeichen maskieren
$botschaft=stripslashes($botschaft); // Backslashes entfernen
// Neues Formular erzeugen zur Weitergabe an das Mailskript
echo "<form action="mail.php" method="post">\n";
// Trick: Daten in versteckten Formularfeldern weitergeben:
echo "<input type="hidden" name="Mail" value="$Mail">\n";
echo "<input type="hidden" name="botschaft" value="$botschaft">\n";
echo "<input type="button" value="<-- Nein, bitte korrigieren" ";
echo "onclick="javascript:history.back()">\n";
// Wieder Zugeständnis für JavaScript-Abschalter:
echo "<noscript>Bitte per BACK-Button zurücknavigieren!</noscript>\n";
echo "<input type="submit" name="mailsender" ";
echo "value="Alles klar -->"></form>\n";
}
?>
Das steht dann in der Datei mail.php:
<h1>3. Daten werden versandt</h1>
<?php
if (isset($Mail) && $Mail != "") {
if(mail("email@email.de", "Hier der Betreff", "$botschaft", "From: $Mail")) {
echo "<p>Danke! Ihre Botschaft wurde weitergeleitet!</p>\n";
}
else {
echo "<p>Leider gab es einen Sendefehler!</p>\n";
}
}
?>
Hi,
ich übergebe die Daten eines formulars an eine andere Stelle einer PHP Datei.
An dieser Stelle weder die Daten zusammenfassend dargestellt.
GLEICHZEITIG sollen an dieser Stelle die Daten in ein neues Formular als "hidden" eingetragen werden und dieses Formular soll sich selbst verschicken.
Man soll also nicht mehr auf nen button klicken müssen.
warum so umständlich? Was immer Du mit den Formulardaten machen willst, Du hattest sie ja bereits alle auf der Serverseite und konntest damit anstellen, was Du wolltest.
Danach kannst Du sie ja in einer Übersicht noch einmal darstellen.
Der Mehrwert des sich selbst verschickenden Formulars erschließt sich mir nicht.
Schönen Gruß aus Bilk
Rainer
warum so umständlich? Was immer Du mit den Formulardaten machen willst, Du hattest sie ja bereits alle auf der Serverseite und konntest damit anstellen, was Du wolltest.
Danach kannst Du sie ja in einer Übersicht noch einmal darstellen.
Der Mehrwert des sich selbst verschickenden Formulars erschließt sich mir nicht.
Ja kann ich den die Formulardaten GLEICHZEITIG an 2 Ziele schicken ?
(mit action)
Die Daten sollen per PHP ausgewertet sowie dargestellt werden UND GLEICHZEITIG an einen mormmailer geschickt werden.
Wie kann man das einfacher machen ?
Danke
Hi,
Ja kann ich den die Formulardaten GLEICHZEITIG an 2 Ziele schicken ?
(mit action)
nö.
Die Daten sollen per PHP ausgewertet sowie dargestellt werden UND GLEICHZEITIG an einen mormmailer geschickt werden.
wenn es kein externer Formmailer ist, dann bau doch die Funktionalität direkt in Dein vorhandenes Skript ein.
Anderenfalls - Formmailerskripte gibt es wie Sand am Meer. Lad Dir ein gutes herunter und führe das mit Deinem unrsprünglichen Skript zusammen.
Schönen Gruß aus Bilk
Rainer