PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mail senden



GroundZero
13-10-2003, 12:30
Hallo Community. Ich hab jetzt ein mail skript fast fertig eingerichtet. Ich hab folgendes Problem.Ich will das alle Boxen und Textareas ausgefüllt werden. Geht auch noch. Nur, wenn ich ein bestimmtes vergessen habe auszufüllen, soll das Skript schreiben z.B. Sie müssen ihren Namen eingeben. Könnt ihr helfen?
Bedanke mich schon mal im vorraus.


Hier mein jetztiges Skript:


<?
/*############### INSTALLATION ###############*/

// 1. Variablen anpassen
$title = ""; //Formulartitel
$recipient = "zensiert :-) "; //Empfänger
// $subject = ""; //Betreff

// 2. Seite verlinken

// 3. Dateien im ASCII Modus auf den Server kopieren

/*############### SCRIPT ###############*/
echo "
<html>
<head>
<title>$title</title>
</head>
<body>
<h1>$title</h1>
<table cellspacing='0' cellpadding='5' border='0'>
";

if(strlen($name) > 3 && strlen($email) > 3 && strlen($message) > 3 && strlen($subject) > 3){
$mail.="
Nachricht von: $name ($email)

Betreff: $subject
Nachricht:
$message
";

mail($recipient,$subject,$mail,"From:$name <$email>\n");
echo "
<tr>
<td>Vielen Dank für Ihre Nachricht!<br><br>Ich werde mich sobald wie möglich darum kümmern.</td>
</tr>
";
}
else
echo "
<form action='$PHP_SELF' method='post'>
<tr>
<td colspan='2'>Bitte füllen Sie alle Felder korrekt aus!</td>
</tr>
<tr>
<td>Ihr Name: </td>
<td><input type='text' name='name' value='$name'></td>
</tr>
<tr><td>Ihr Bertreff:</td>
<td><label>
<input type='radio' name='subject' value='Terminnachfrage'>
Terminanfrage</label></td>
</tr>
<tr><td> </td>
<td><label>
<input type='radio' name='subject' value='Preisnachfrage'>
Preisnachfrage</label></td>
</tr>
<tr>
<td>Ihre eMail-Adresse: </td>
<td><input type='text' name='email' value='$email'></td>
</tr>
<tr>
<td valign='top'>Ihre Nachricht: </td>
<td><textarea wrap='virtual' name='message'>$message</textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type='submit' value='Abschicken'> <input type='reset' value='Abbrechen'></td>
</tr>

</table>

</form>
";

echo "
</table>
</body>
</html>
";
?>

elrond
13-10-2003, 13:25
das kannst du nur beim Seitenaufbau nochmals prüfen:

statt


<td>Ihr Name: </td>
<td><input type='text' name='name' value='$name'></td>
</tr>


benutzt du einfach



$nfeld=$name;
if(strlen($name) > 3) { $nfeld="<input type='text' name='name' value='$name'>";}
<td>Ihr Name: </td>
<td>$nfeld</td>
</tr>

GroundZero
14-10-2003, 00:41
Bei mir kommt da nur ein Parse Error( ja ; ist gesetzt :-) )

Kannst du mir vielleicht den betreffenden Abschnit kurz schreiben, weil ich nicht richtig weiß wie ich das machen soll.
Danke für deine Mühe

elrond
14-10-2003, 06:39
Du hast aber schon vor dich mit php zu beschäftigen, oder?
Wenn Du nur ein Script suchst um Mails zu verschicken findest du im Internet reichlich davon. >>Goolge ist dein Freund<< ;)

Wenn Du allerdings PHP lernen möchtest, solltest Du einfach mein Stück Code von oben nehmenen und damit Dein Problem lösen.

Ein Tip zu deinem Code: Schließ doch mal den else-Teil deine if-Abfrage auch in geschweifte klammern ein.( Ist zwar erst dann notwendig wenn mehr als eine Anweisung in den Block kommt, vermeidet aber an dieser stelle mögliche spätere Fehler... ) Wenn Du dann VOR dem echo die notwendigen Variabeln belegst, sollte nichts mehr schiefgehen.

GroundZero
14-10-2003, 19:26
Das mit Google habe ich gestern getan :-) Hab ein Script gefunden, das jetzt fast perfekt läuft. Brauch nur noch in einem Punkt Hilfe. Wenn eine E-Mail versendet wurde, zeigt er bei mir nicht die eingegebene E-Mail Adresse an. Das Hatte ich vor indem ich zwei Variablen zuammenfüge ( Also hier
$Subject = $Emailsender . $ Betreff ). Nur weiß ich nicht an welche Stelle dieses Stück hin muss. Ich habe mal so ein paar Stellen versucht, die für mich richtig waren, aber ich bekomme nur ein Parse Error. Könnt ihr helfen?

P.s.: Ja, ich habe vor mich mit PHP zu beschäftigen. Hab hier ein 750 Seitiges Buch durchgelesen, jetzt versuche ich mich an der Praxis.

P.p.s.: Hier mein jetziger Code:


<?php
#
# Mit "emailform" koennen Besucher Ihrer Homepage E-Mails an eine vorher festgelegte E-Mail-Adresse versenden.
# Der erste Aufruf erstellt einen Formular mit den Feldern Empfaenger, Betreff und Text der Nachricht.
# Bevor die E-Mail abgeschickt wird, erfolgt eine Überprüfung der Eingabe.
# Falls nicht alle Formularfelder Eingaben enthalten, wird der Formular erneut aufgerufen.
# Die bisherigen eingegebenen Werte werden uebernommen und ein Hinweis wird eingeblendet.
# Erst wenn keine Eingaben fehlen, wird die Mail gesendet.
#
# Das PHP-Programm emailform.php kann frei kopiert, modifiziert und benutzt werden.
# Der Einsatz dieses Programms erfolgt auf eigenes Risiko des Benutzers.
# Die Autoren übernehmen keine Verantwortung für die Folgen des Einsatzes.
# Der Verkauf ohne Zustimmung von cgidienst.de auch in einer modifizierten Form ist unzulaessig.
#
# Powered by cgidienst.de mailto:info@cgidienst.de
#

#
# Variablen
#
$To = "meine e-mailadresse"; # Empfaenger der E-Mail
$Autoresponder = ""; # Absender der Autorespondernachricht
$Autoresponder = $To; #
$response = "response.php"; # Antwortseite
$errorpage = "errorpage.php"; # Fehlerseite

#
# Diese Funktion Ueberprueft die Eingaben
#
function CheckInput ($input)
{
$missing = 0;

if (! $input[From]) { $missing ++; }
if (! $input[Betreff]) { $missing ++; }
if (! $input[Message]) { $missing ++; }
if (! $input[Emailsender]) { $missing ++; }
return $missing;
}


#
# Diese Funktion versendet eine Mail
#
function SendMail ($To, $Betreff, $Message, $From)
{
$valid = $To && $Betreff && $Message && $From;
if (! $valid)
{
return 1;
}
$ret = mail ("$To", "$Betreff", "$Message", "From: $From");
if (! $ret)
{
return 2;
}
return 0;
}

if ($Send)
{
# Der Button "Senden" wurde angeklickt.
$errors = CheckInput ($HTTP_POST_VARS);
if (! $errors)
{
# Alle Eingaben vorhanden
$ret = SendMail ($To, $Betreff, $Message, $From);
if ($ret != 0)
{
# Vielleicht haben Sie vergesssen, den Empfaenger einzutragen
# sehe Variable $To am Anfang
require ("$errorpage");
}
else
{
if ($Autoresponder)
{
$Response = "Ihre Mail wurde an $To weitergeleitet.\n";
SendMail ($From, $Betreff, $Response, $Autoresponder);
}
require ("$response");
}
exit ();
}
else
{
$Hinweis = "<b>F&uuml;llen Sie alle mit * gekennzeichneten Felder aus!</b><br>\n";
}
}
?>

<HTML>
<HEAD>
<TITLE>Senden Sie uns eine E-Mail</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<H1>Senden Sie uns eine E-Mail</H1>
<form name="Email" method="POST">
<table width="584">
<!--DWLayoutTable-->
<tr>
<td width="175" height="21" valign="top">Name / Vorname: *</td>
<td colspan="2" rowspan="2" valign="top"><input name="From" value=<?php echo "\"$From\"";?> size="40"></td>
<td width="1"></td>
</tr>
<tr>
<td rowspan="2" valign="top">E-Mail Adresse: *</td>
<td height="1"></td>
</tr>
<tr>
<td colspan="2" rowspan="2" valign="top"><input name="Emailsender" type="text" size="40" id="Emailsender"></td>
<td height="21"></td>
</tr>
<tr>
<td rowspan="2" valign="top">Betreff: *</td>
<td height="1"></td>
</tr>
<tr>
<td colspan="2" rowspan="2" valign="top"><label>
<input type='radio' name='Betreff' value='Terminanfrage'>
Terminanfrage</label></td>
<td height="18"></td>
</tr>
<tr>
<td height="1"></td>
<td></td>
</tr>
<tr>
<td height="21"></td>
<td colspan="2" valign="top"><label>
<input type='radio' name='Betreff' value='Preisnachfrage'>
Preisnachfrage</label></td>
<td></td>
</tr>
<tr>
<td height="88" valign="top">Ihre Nachricht:* </td>
<td width="381" valign="top"><textarea name="Message" rows="4" cols="40"><?php echo "$Message";?></textarea></td>
<td width="1">&nbsp;</td>
<td></td>
</tr>
<tr>
<td height="32">&nbsp;</td>
<td>&nbsp;</td>
<td></td>
<td></td>
</tr>
<tr>
<td height="26">&nbsp;</td>
<td valign="top"><input type="submit" name="Send" value="Senden" size="40"></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="54">&nbsp;</td>
<td>&nbsp;</td>
<td></td>
<td></td>
</tr>
</table>
</form>
<?php echo "$Hinweis\n"; ?>
<HR>
</BODY>
</HTML>

GroundZero
15-10-2003, 07:23
Vergesst es. Habs mittlerweile genauso wie ich es wollte :-) Danke trotzdem nochmal