PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [html/php] Formmailer



Paco
27.12.2005, 20:24
1. Ich möchte noch überprüfen lassen ob ein Mail korrekt abgeschickt wurde oder oder ein fehler eingeschlichen hat. halt sowas wie "Ihre Mail wurde erfolgreich abgeschickt" oder so.

2. Ich bin nicht so bewandert in PHP und möchte daher wissen was noch fehlt damit die Email-Formular einwandfrei auf die Homepage (not me!)funtkioniert. :rolleyes:

Ich verschwind dann mal von dannen und lasse mich (PHP-Noob) von PHP-Profi helfen.

Inhalt form.html




<!-- Feedback

<form action="forms.php" method="post">
<center>
Name:<br>
<input type="text" name="name"><br>
E-Mail*:<br>
<input type="text" name="email"><br>
Subject:<br>
<input type="text" name="subject"><br>
Text*:<br>
<textarea name="text" cols="40" rows="7"></textarea><br>
<input type="submit" value="senden">
</form><br><br>

<!-- Mailinglist

<form action="form.php" method="post">
<center>
<input type="radio" name="subject" value="subscribe" checked>subscribe<br>
<input type="radio" name="subject" value="unsubscribe">Unsubscribe<br><br>
E-Mail:
<input type="text" name="email" size="30"><br><br>
<input type="submit" value="senden">
</form>



Inhalt forms.php



<?php

if("" == $_POST['email']) {
echo "Bitte geben sie einen E-Mail-Adresse ein";
}

if("" == $_POST['text']) {
echo "Bitte geben sie einen Text ein";
}

$admin = 'abc@def.gh';

mail ($admin, $_POST['subject'], $_POST['text'], $_POST['email']);

?>


Inhalt form.php



<?php

if("" == $_POST['email']) {
echo "Bitte geben sie einen E-Mail-Adresse ein";
}

$admin = 'abc@def.gh';

mail ($admin, $_POST['subject'], $_POST['email']);

?>

Manni
27.12.2005, 21:30
Du könntest noch prüfen, ob die Emailadresse gültig ist ;)
Emailadresse überprüfen (http://www.developer.com/lang/php/article.php/10941_3290141_2)
Und

if(empty($_POST['email']))
ist erstens schöner und zweitens afaik sicherer als das

if("" == $_POST['email'])

Du könntest die Länger der Eingaben überprüfen:

if(strlen($_POST['text']) < 50)
die("Der Text muss mindestens 50 Zeichen haben.")

Du könntest den Wert des Radiobuttons überprüfen:

if($_POST['subject'] =! "subscribe" && $_POST['subject'] =! "unsubscribe")
die("Ungültiger Wert für'subject'!");
Sonst fällt mir nicht mehr viel ein.

Ach ja: Den Text könntest du auch noch mit einer Maximallänge belegen ;)

Teelicht
08.01.2006, 14:20
Ja, ok, der Thread ist schon etwas älter, aber ich bin erst seit gestern hier, und vielleicht hilft das Paco ja weiter:


1. Ich möchte noch überprüfen lassen ob ein Mail korrekt abgeschickt wurde oder oder ein fehler eingeschlichen hat. halt sowas wie "Ihre Mail wurde erfolgreich abgeschickt" oder so.

wird afaik einfach nach der mail()-funktion als echo ausgegeben(?)

Manni hat vorgeschlagen, etliche dinge überprüfen zu lassen, und du machst es ja teilweise auch schon im quellcode. Ein Tipp: Wenn du den Kram mit JavaScript statt Php überprüfst, ist es für den Besucher bequemer, da er die Fehlermeldungen nicht erst nach drücken des "Abschicken" Buttons erhält, sondern sofort nach seiner Eingabe!