18.02.2003, 18:08
Nagut *die Finger entknot*
Erst einmal muss dir bewusst sein, dass das Script auf ein und der selben Seiten läuft und in der Formular-action="" der Dateiname der selben Seite stehen muss.
Das Script arbeit so, dass es wenn Mail und Name (und anderen Felder) ausgefüllt sind, die Mail absendet und dann sowas wie "Mail abgesendet" printet. Andernfalls tritt die else-Anweisung in Kraft und es wird das Formular geprintet.
Das Problem, du hast HTML und PHP Version seperat gepostet, was aber gar nicht gehen sollte, weil PHP und HTML ja fest zusammen hängen (z.B. Formular-HTMLcoded ist in der PHP-else-Anweisung drin).
Weiterhin solltest du drauf achten die Variablen nicht nach festen Funktionen/Methoden oder HTML-Tags oder Attributen zu benennen. Deshalb sind Feldnamen wie name="name" oder name="mail" ungeeignet. Nimm ruhig etwas genauere und notfalls längere Definitionen und nutze auch den Unterstrich _ .
dann habe ich gesehen, dass du die Textarea mit "beschreibung" benannt hast, aber ebenso die Funktionsvariable bei mail(), die den Text der bei dir ankommenden Mail darstellt. Eigentlich sollte die eingegebene Beschreibung des Users nur ein Teil dieses Mailtextes sein. Deshalb musst du bei der Mailversendungsfunktion mail() und schon bei der Zusammenpuzzlung der Beschreibung und IP einen anderen Variblennamen wie $mail_text nehmen. Ich ändere das unten grün .
So, innerhalb der Zitate hab ich zweimal was grünes reingeschrieben und bei der "Massen"-Prüfung der Felder hast du statt name='' ... namen='' mit n am Ende geschrieben. Habe das korrigiert
Soweit erstmal.
Tobias
Erst einmal muss dir bewusst sein, dass das Script auf ein und der selben Seiten läuft und in der Formular-action="" der Dateiname der selben Seite stehen muss.
Das Script arbeit so, dass es wenn Mail und Name (und anderen Felder) ausgefüllt sind, die Mail absendet und dann sowas wie "Mail abgesendet" printet. Andernfalls tritt die else-Anweisung in Kraft und es wird das Formular geprintet.
Das Problem, du hast HTML und PHP Version seperat gepostet, was aber gar nicht gehen sollte, weil PHP und HTML ja fest zusammen hängen (z.B. Formular-HTMLcoded ist in der PHP-else-Anweisung drin).
Weiterhin solltest du drauf achten die Variablen nicht nach festen Funktionen/Methoden oder HTML-Tags oder Attributen zu benennen. Deshalb sind Feldnamen wie name="name" oder name="mail" ungeeignet. Nimm ruhig etwas genauere und notfalls längere Definitionen und nutze auch den Unterstrich _ .
dann habe ich gesehen, dass du die Textarea mit "beschreibung" benannt hast, aber ebenso die Funktionsvariable bei mail(), die den Text der bei dir ankommenden Mail darstellt. Eigentlich sollte die eingegebene Beschreibung des Users nur ein Teil dieses Mailtextes sein. Deshalb musst du bei der Mailversendungsfunktion mail() und schon bei der Zusammenpuzzlung der Beschreibung und IP einen anderen Variblennamen wie $mail_text nehmen. Ich ändere das unten grün .
Zitat:Original von Real_Master
[QUOTE] <form method="post" action="reise_insert.php" name="reise">
<p align="justify">Wir würden uns sehr freuen, wenn du uns deinen Urlaubsbericht zukommen lassen würdest. Du hilfst anderen damit bei ihrer Reiseplanung. </p><br>
<table border="0">
<tr>
<td width="90">Name<font color="darkred">*</font></td>
<td><input type="text" name="name" maxlength="25" size="20"></td>
</tr>
<tr>
<td width="90">E-Mail<font color="darkred">*</font></td>
<td width="90"><input type="text" name="mail" maxlength="20" size="20"></td>
</tr>
<tr>
<td width="90">Reiseziel<font color="darkred">*</font></td>
<td width="90"><input type="text" name="ziel" maxlength="30" size="20"></td>
</tr>
<tr>
<td width="90">Anzahl Personen</td>
<td><select name="personen">
<option value="1pers"> 1 Person
<option value="2pers"> 2 Personen
<option value="3-4pers"> 3 oder 4 Personen
<option value="4mehr"> mehr als 4 Personen
</select></td>
</tr>
<tr>
<td width="90">Tauchbasis</td>
<td><input type="text" name="basis" maxlength="30" size="20"></td>
</tr>
</table>
<br>
Beschreibung <i>(Bitte beschreibe deinen Urlaub ausführlich.)</i><br>
<textarea name="beschreibung" style="height:150px;width:350px;" wrap="soft">Danke für Deine Mühe.</textarea> <br><br>
<table border="0">
<tr>
<td width="400">Ich bin damit einverstanden, dass meine E-Mail Adresse für andere Benutzer für Rückfragen sichtbar ist.</td>
<td><input type="radio" name="mail_sichtbar" value="ja" checked>Ja<br>
<input type="radio" name="mail_sichtbar" value="nein">Nein</td>
</tr>
<tr>
<td width="400">Ich möchte über Neuigkeiten per E-Mail informiert werden. (Wir versenden keine Werbung und kein Spam!)</td>
<td><input type="radio" name="newsletter" value="ja" checked>Ja<br>
<input type="radio" name="newsletter" value="nein">Nein</td>
</tr>
</table>
<br>
<input type="submit" value="Abschicken"><br>
<br>
<table width="100%">
<tr><td>Wir behalten uns vor, den Text zu kürzen.</td></tr></table>
</form>
Zitat:<?php
$mail_subject = 'Reisebericht';
$mail_to = 'support@tauch-info.net';
$header = 'From: '.$name.' <'.$mail.'>';
if(isset($mail) && isset($name))
weis nicht wofür das gut sein soll ! Hm, ist in diesem Fall nicht unbedingt nötig, weil du gleich darunter ja ALLE Felder auf Inhalt prüfst -> du lässt erst eine mail versenden, wenn wirklich ALLE Felder einen Inhalt haben.
{
if($mail == '' || $name == '' || $beschreibung == '' || $basis == '' || $ziel == '')
{
print '<p align="center"><font size="4"><b>Du hast eines der Pflicht-Felder nicht ausgefüllt!</b></font></p>
<br><p align="center"><font size="3"><b><a href="javascript:history.back()">zurück</a></b></font></p>';
}
else
{
$mail_text = '
Name: '.$name.' ';
$mail_text .= '
Beschreibung: '.$beschreibung.' ';
$mail_text .= '
IP: '.$REMOTE_ADDR.' ';
mail($mail_to,$mail_subject,$mail_text,$header);
print 'Dein Reisebericht wurde erfolgreich abgesendet und in Kürze bearbeitet!';
}
}
else
{
print 'Für was ist das? -> DA kommt der Formular-HTML-Code rein, der ausgegeben wird, falls keines der Formularfelder ausgefüllt wurde (else) und damit die Mail nicht versendet werden könnte. ';
?>
So, innerhalb der Zitate hab ich zweimal was grünes reingeschrieben und bei der "Massen"-Prüfung der Felder hast du statt name='' ... namen='' mit n am Ende geschrieben. Habe das korrigiert
Soweit erstmal.
Tobias