PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Hilfe bei meinem Formular


Sgt.DC
14.04.2008, 18:24:24
Hi ihr fleissigen PHPler :-)
ich habe vor kurzem angefangen mich mit PhP ein wenig zu befassen und hab mich deshalb mal hier bei euch registriert :-)
Bin derzeit dabei, mich mit Formularen auseinanderzusetzen.

Ich hab mal angefangen ein Formular zu basteln mit folgenden Aufgaben:

1) 5 Pflichtfelder, diese Felder werden validiert /

2) Wenn etwas falsch ausgefüllt wurde erscheinen Warnmitteilungen. /

3)Wenn das Formular abgeschickt wird, soll der Absender eine Bestätigungsemail bekommen und des Formular soll verschwinden und
4) ein Bestätigungstext "Vielen Dank" soll erscheinen.

Das alles ohne großes css- gestaltungs schnickschnak, es geht mir nur mal um die Funktionen an sich und das es einfach klappt.

Soweit so gut ^^ Leider scheitere ich ab dem Punkt 3)"emailbestätigung" und 4)"Bestätigungstext". Leider habe ich dazu auch nirgends im Internet was einfach zu verstehendes finden können, bin halt noch ein noob :(

Ich poste vielleicht einfach mal meine 2 scripte, wäre cool ob ihr mir vielleicht sagen könntet, ob des alles so richtig is und wie ich das eventuell erweitern müsste, damit die oben genannten zwei letzten Punkte auch noch erfüllt werden :/
viele grüße


Einmal des Formular(index.php):


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mein PHP Formular</title>


<!-- CSS -->
<style type="text/css">
<!--
.Stil2 {
color: #0033CC;
font-family: "Times New Roman", Times, serif;
}
-->
</style>
</head>

<!-- Body Bereich -->

<body>
<h1 align="left" class="Stil2">Kontakt</h1>
<br>

<!-- Formular -->

<form action="script.php" method="post">
<table border="0" align="left" cellpadding="1" cellspacing="2">
<tr>
<th scope="row">Name:*</th>
<td><input name="name" type="text" size="20" maxlength="30" <?php echo $from_name; ?>/></td>
</tr>
<tr>
<th scope="row">Vorname:</th>
<td><input name="vorname" type="text" size="20" maxlength="30" /></td>
</tr>
<tr>
<th scope="row">Strasse:*</th>
<td><input name="strasse" type="text" size="20" maxlength="30" <?php echo $mail_strasse; ?> /></td>
</tr>
<tr>
<th scope="row">PLZ:*</th>
<td><input name="plz" type="text" size="20" maxlength="5" <?php echo $mail_plz; ?>/></td>
</tr>
<tr>
<th scope="row">Ort:*</th>
<td><input name="ort" type="text" size="20" maxlength="40" <?php echo $mail_ort; ?> /></td>
</tr>
<tr>
<th scope="row">Land:</th>
<td>
<select name="land" size="1">
<option selected="selected">Deutschland</option>
<option>Großbritannien</option>
<option>Frankreich</option>
</select>
</td>
</tr>
<tr>
<th scope="row">Telefon:</th>
<td><input name="telefon" type="text" size="20" maxlength="20" /></td>
</tr>
<tr>
<th scope="row">Mobil:</th>
<td><input name="mobil" type="text" size="20" maxlength="20" /></td>
</tr>
<tr>
<th scope="row">E-Mail:*</th>
<td><input name="email" type="text" size="20" maxlength="30" <?php echo $from_mail; ?> /></td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="hidden" value="1" name="s">
<input name="Send" type="submit" value="Abschicken" />
<input name="Reset" type="reset" value="Löschen" />
</td>
</tr>
</table>
</form>
</body>
</html>


Und einmal des php script dazu(script.php):


<?php

//Mailadresse (empfänger)
$mail_to="maxmustermann@test.de";

$from_name=$_POST['name'];
$from_mail=strtolower($_POST['email']);
$mail_strasse=$_POST['strasse'];
$mail_ort=$_POST['ort'];
$mail_plz=$_POST['plz'];
$send=$_POST['s'];

if(trim($from_name)=="") $err_text.="Bitte geben Sie Ihren Namen an.<br>";
if(trim($from_mail)=="") $err_text.="Bitte geben Sie Ihre E-Mail-Adresse an.<br>";
else
if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$from_mail))
$err_text.="Bitte geben Sie eine gültige E-Mail-Adresse an.<br>";

if(trim($mail_strasse)=="") $err_text.="Bitte geben Sie eine Strasse ein.<br>";
if(trim($mail_ort)=="") $err_text.="Bitte geben Sie einen Ort ein.<br>";
if(trim($mail_plz)=="") $err_text.="Bitte geben Sie eine Postleitzahl ein.<br>";

if(($send=="1") && (isset($err_text))) {
echo "<p><big><b>Fehler:</b></big><br>";
echo "$err_text</p>";
}

?>

Heinrich
14.04.2008, 20:30:57
Und wo ist der Script-Teil, mit dem du die Mail sendest?

Sgt.DC
14.04.2008, 20:49:21
Sooo habs jetz nochmal aktualisiert, jetzt sollten Absender und Empfänger eine Mail bekommen, ich brauche aber Hilfe für die noch fehlende if-abfrage, diese fehlt nämlich hier in meinem script noch:
Wenn (if) alle felder richtig(true) ausgefüllt sind, dann führe die Funktion
mail($to, $betreff, $nachricht, $header); aus und lass das Formular verschwinden und gib ein echo " vielen dank" aus. ^^ Ich weiss leider nich so wie ich diese abfrage schreiben soll =(

@Heinrich: es sollen nicht wirklich email verschickt werden, also hab kein Mailserver oder so zur Verfügung will das alles nur über MAMP/XAMPP testen, kenne mich da jetz aber auch nich wirklich aus =/


<?php

//Mailfunktion
$to = $_POST["email"], test.test@gmx.de;
$betreff = 'Formular';
$nachricht = 'Danke f&uuml;r das Ausf&uuml;llen des Formulars:'.$_POST['name'].'<br>'
.strtolower ($_POST['email']).'<br>'.$_POST ['strasse'].'<br>'. $_POST['ort'].'<br>'. $_POST['plz'];
$header = 'From: mail@form.de';


//Abfrage Funktion
$from_name=$_POST['name'];
$from_mail=strtolower($_POST['email']);
$mail_strasse=$_POST['strasse'];
$mail_ort=$_POST['ort'];
$mail_plz=$_POST['plz'];
$send=$_POST['s'];

if(trim($from_name)=="") $err_text.="Bitte geben Sie Ihren Namen an.<br>";
if(trim($from_mail)=="") $err_text.="Bitte geben Sie Ihre E-Mail-Adresse an.<br>";
else
if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$from_mail))
$err_text.="Bitte geben Sie eine gültige E-Mail-Adresse an.<br>";

if(trim($mail_strasse)=="") $err_text.="Bitte geben Sie eine Strasse ein.<br>";
if(trim($mail_ort)=="") $err_text.="Bitte geben Sie einen Ort ein.<br>";
if(trim($mail_plz)=="") $err_text.="Bitte geben Sie eine Postleitzahl ein.<br>";

if(($send=="1") && (isset($err_text))) {
echo "<p><big><b>Fehler:</b></big><br>";
echo "$err_text</p>";
}

?>

Franzx
14.04.2008, 20:57:26
Moin, moin und herzlich Willkommen im Forum!

Variable config.php:

<?php
$to = "email"; // Deine eMail-Adresse
$webmaster ="email"; //

$erfolg = "<html><head><title> ... und eine gesamtes Template in ...
</body>
</html>";
?>

Mit der script.php die config.php includen und nach der Prüfung auf Dateninhalt folgendes in script.php einfügen:

mail("$to", "$subject", "$name sendete Ihnen eine Nachricht am $datum.\n\n
$name\n$strasse\n$plz\n$message\n\n
Danke $firma","From: $from\n");

mail("$from", "$webmaster", "$name Ihre Nachricht wurde weitergeleitet.\n
Ich werde Ihre Mitteilung schnell wie möglich bearbeiten. <br>
Mit freundlichen Grüssen\n$webmaster\n$copy","From: $to\n");
echo "$erfolg";



Vielleicht eine Anregung!

Sgt.DC
14.04.2008, 22:11:03
Danke werds damit mal versuchen :-)