... Absender einfügt.
Hi Leute,
ich hab ein eher spezielles anliegen und weiß nicht ob ich in diesem Foren Teil richtig bin. (Also bitte verschieben wenn nötig)
Ich hab auch bisher hier nix gefunden! (Also bitte keine Kommentare wie "such mal" usw.)
Also ich will eine Seite in meinem Forum erstellen mit eínem E-Mail Formular mit einigen Eingabefeldern, wo jeder (also auch jeder Gast)
mir eine E-Mail schreiben kann - also direkt von dieser Seite.
Sowas kenn ich als HTML Formular schon, aber ich würde gern 2 Besonderheiten einbauen:
1. Das Forumular prüft, ob eine Mail eingegeben ist - dürfte nicht so schwierig sein
2. Die eingegebene E-Mail wird direkt als Absender des Forumlars eingetragen <-- das ist der Springende Punkt, wo ich bisher auch nix gefunden habe...
Vielen Dank für jede Hilfe!
Gruß TObi
E-Mail Formular, was die eingegebene Mail gleich als ....
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
- franki
- Ehemaliges Teammitglied
- Beiträge: 2823
- Registriert: 21.10.2007 14:02
- Wohnort: Sonsbeck
- Kontaktdaten:
Re: E-Mail Formular, was die eingegebene Mail gleich als ...
Hallo TObi
Das einzige was ich jetzt kenne ist "mod_AJAX_contactform_0_1_3"
Leider ist die Seite von Tobi (Mod-Entwickler) seit Wochen down und habe keinen
andere Stelle zum DL gefunden.
Das einzige was ich jetzt kenne ist "mod_AJAX_contactform_0_1_3"
Leider ist die Seite von Tobi (Mod-Entwickler) seit Wochen down und habe keinen
andere Stelle zum DL gefunden.
LG Franki
- Mahony
- Ehemaliges Teammitglied
- Beiträge: 12179
- Registriert: 17.11.2005 22:33
- Wohnort: Ostfildern Kemnat
- Kontaktdaten:
Re: E-Mail Formular, was die eingegebene Mail gleich als ...
Hallo
Versuchs mal damit
folgendes musst du im Script noch anpassen:
Kontakt meineseite.de
content="meincontent"
content="Kontakt zu meineseite.de"
content="2010-08-28"
mail('test@example.com'
an test@example.com
P.S. Das originale Script wurde vor einiger Zeit mal von heise.de für die Allgemeinheit freigegeben.
Grüße: Mahony
Versuchs mal damit
Code: Alles auswählen
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>Kontakt meineseite.de</title>
<meta http-equiv="Content-type" content="charset=iso-8859-1"/>
<meta name="author" content="meincontent"/>
<meta name="description" content="Kontakt zu meineseite.de"/>
<meta name="date" content="2010-08-28"/>
</head>
<body>
<!--
...und los gehts..
-->
<?php
//Gib Fehler und Warnungen aus
error_reporting(E_ALL);
//Deutschsprachige Umgebung, damit die
//regulären Ausdrücke auch Umlaute etc. erkennen
setlocale(LC_ALL, 'de_DE');
//Erzeuge einen zufällig aussehenden Zugangscode aus dem Datum ...
$code = chr((date("y") + 7) % 10 + date("m") + 68 + (date("m") % 2) * 32) . chr((date("d") + (date("d") %2)) / 2 + 66 + (37 * (date("d") %2)));
//... den der Anwender mittels verborgenem Eingabefeld übergibt.
//So lässt sich das Gros der skriptgesteuerten Angriffe von
//vornherein abblocken.
//Wurde das Formular abgeschickt?
//Falls ja: Daten prüfen und versenden
if(isset($_POST['los'])) {
if(!isset($_POST['code']) || $_POST['code'] != $code) die('Mailcode fehlt!');
//Liste der zu überprüfenden Formularfelder:
//'absender' muss genau eine Mailadresse sein,
//'betreff' ist ein mindestens drei Zeichen langer Text ohne Umbruch,
//'text' muss zehn Zeichen lang sein.
$pruefung = array(
'absender' => '/^ [\w.!#%&\*\/=\?\^\`\{\|\}\~+-]{1,64} \@
[[:alnum:].-]{1,255} \. [a-z]{2,6} $/xi',
//prüft auf gültige E-Mail-Adresse nach RFC 2822,
//erlaubt auch ungewöhnliche Adressen wie "{@heise.de";
//strengere Prüfung (erfordert z.B. mindestens 2 Zeichen vor @
//und im Domainnamen, schließt ungewöhnliche Adressen aus):
//'absender' => '/^[\w.+-]{2,64}\@[\w.-]{2,255}\.[a-z]{2,6}$/',
'betreff' => '/^[[:print:]]{3,}$/',
//restriktivere Variante:
//'betreff' => '/^[[:alnum:]\s\?.!,;:\(\)\/\"-]{3,}$/',
'text' => '/^[[:print:][:space:]]{10,}$/'
);
//Durchlaufe alle Formulardaten:
foreach($_POST as $parameter => $wert) {
//Formularfelder, die in $pruefung stehen,
//müssen in die oben definierten Muster passen
if(isset($pruefung[$parameter])) {
if(!preg_match($pruefung[$parameter], $wert)) die('Probleme mit Feld ' . $parameter . ': ' . $wert);
} else {
//Der Rest wird weggeworfen.
unset($_POST[$parameter]);
}
}
//Prüfe, ob die Absenderadresse einem gültigen MX-Host angehört
//Zu jeder Domain in einer Mailadresse (nach dem @-Zeichen)
//sollte ein Mail Exchange Resource Record (MX-RR) im Domain Name
//System (DNS) eingetragen sein. Die MX-Hosts versenden die E-Mail
//per SMTP. getmxrr() schreibt MX-Hosts in das Array $mxhosts
//ACHTUNG: Dieser Befehl ist nur auf Unix-Maschinen implementiert,
//unter anderen Betriebssystemen ist die Zeile zu streichen!
//Außerdem scheint getmxrr() Probleme mit Umlautdomains zu haben.
if(!getmxrr(substr(strstr($_POST['absender'], '@'), 1), $mxhosts)) die("Konnte keine gültige Domain für " . $_POST['absender'] . " finden!");
//Die Formulardaten sind ok -- der Mailversand wird vorbereitet:
//mail() erwartet Empfänger, Betreff, Text und weitere Kopfdaten
if(mail('test@example.com', $_POST['betreff'], $_POST['text'], "From:" . $_POST['absender'])) {
//Es hat geklappt: Bestätigung ausgeben
echo "<p>Nachricht von " . $_POST['absender'] . " an test@example.com gesendet!</p>";
} else {
//Irgendwas ist schiefgelaufen :-(
echo "<p>Nachricht konnte nicht gesendet werden!</p>";
}
} else {
//Es wurden keine Formulardaten übergeben ->
//Gib einen HTML-Block mit dem Formular aus.
?>
<p>Senden Sie eine Nachricht:</p>
<form method="post" action="">
<table>
<tbody>
<tr>
<td>
<label for="absender">Absender:</label><br/>
E-Mail-Adresse
</td>
<td>
<input id="absender" name="absender"/>
</td>
</tr>
<tr>
<td>
<label for="betreff">Betreff:</label><br/>
mindestens drei Zeichen
</td>
<td>
<input id="betreff" name="betreff"/>
</td>
</tr>
<tr>
<td>
<label for="text">Text:</label><br/>
mindestens zehn Zeichen
</td>
<td>
<textarea id="text" name="text" rows="3" cols="40">
</textarea>
<input type="hidden" id="code" name="code" value="<?php echo($code); ?>"/>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" name="los" value="Abschicken!"/>
</td>
</tr>
</tbody>
</table>
</form>
<?php
//Schließt die if-else-Schleife
}
?>
</body>
</html>
Kontakt meineseite.de
content="meincontent"
content="Kontakt zu meineseite.de"
content="2010-08-28"
mail('test@example.com'
an test@example.com
P.S. Das originale Script wurde vor einiger Zeit mal von heise.de für die Allgemeinheit freigegeben.
Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Re: E-Mail Formular, was die eingegebene Mail gleich als ...
Vielen Dank für eure Antworten!!
@mahony: Habs grad ausprobiert und genau so einen Code hab ich gesucht! Awesome
Muss es jetzt nur noch um paar felder ergänzen und nen "Zurück" butten im Falle eines Fehlers wäre nicht schlecht!
Gruß Tobi
@mahony: Habs grad ausprobiert und genau so einen Code hab ich gesucht! Awesome

Muss es jetzt nur noch um paar felder ergänzen und nen "Zurück" butten im Falle eines Fehlers wäre nicht schlecht!
Gruß Tobi