| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

15-10-2009, 21:50
|
|
madeinpolska
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 10
|
|
[gelöst] keine Fehlermeldung wenn im Formular leere Felder
Hallo
habe folgendes Problem
Mein Script sollte eigentlich eine Fehlermeldung ausgeben, wenn jmd beim FOrmular nicht alle Felder ausgefüllt hat und diese ausgeben. Ist leider nich der Fall ich finde den Fehler nicht kann jemand helfen ?
HTML-Code:
<form action="versand.php" method="post" class="Body">
<table>
<tr><td width="152" align="left" valign="middle">Name:</td>
<td width="368" align="left" valign="middle"><input name="name" type="text" size="25"></td></tr>
<tr>
<td align="left" valign="middle"> Email:</td>
<td align="left" valign="middle"><input name="mail" type="text" size="25"></td></tr>
<tr>
<td align="left" valign="middle">Telefon:</td>
<td align="left" valign="middle"><input name="phone" type="text" size="25" id="phone"></td>
</tr>
<tr>
<td align="left" valign="middle"> </td>
<td align="left" valign="middle"> </td>
</tr>
<tr>
<td align="left" valign="middle">Art der Feier:</td>
<td align="left" valign="middle"><input name="event" type="text" size="25" id="event"></td>
</tr>
<tr>
<td align="left" valign="middle">Datum:</td>
<td align="left" valign="middle"><input name="date" type="text" size="25" id="date"></td>
</tr>
<tr>
<td align="left" valign="middle">Uhrzeit:</td>
<td align="left" valign="middle"><input name="hour" type="text" size="25" id="hour"></td>
</tr>
<tr>
<td align="left" valign="middle">Anzahl Personen:</td>
<td align="left" valign="middle"><input name="people" type="text" size="25" id="people"></td>
</tr>
<tr>
<td align="left" valign="middle">Raucher:</td>
<td align="left" valign="middle"><input name="smoker" type="text" id="smoker" value="ja / nein / gemischt" size="25"></td>
</tr>
<tr>
<td align="left" valign="middle"> </td>
<td align="left" valign="middle"> </td>
</tr>
<tr>
<td align="left" valign="middle">Besondere Wünsche:</td>
<td align="left" valign="middle"><textarea name="text" rows="10" cols="50"></textarea></td></tr>
</table>
<br>
<input type="submit" value="Reservierung versenden">
</form>
PHP-Code:
<?php
$fehler = "";
$name = $_POST['name'];
$mail = $_POST['mail'];
$phone = $_POST['phone'];
$event = $_POST['event'];
$date = $_POST['date'];
$hour = $_POST['hour'];
$people = $_POST['people'];
$smoker = $_POST['smoker'];
$text = $_POST['text'];
if (empty($name)) {
$fehler .= "<li>der Absendername fehlt</li>" ;
}
if (empty($mail)) {
$fehler .= "<li>die Mailadresse fehlt</li>" ;
}
if (empty($phone)) {
$fehler .= "<li>keine Telefonnummer eingetragen</li>" ;
}
if (empty($event)) {
$fehler .= "<li>kein Event eingetragen</li>" ;
}
if (empty($date)) {
$fehler .= "<li>kein Datum eingetragen</li>" ;
}
if (empty($hour)) {
$fehler .= "<li>keine Uhrzeit eingetragen</li>" ;
}
if (empty($people)) {
$fehler .= "<li>keine Anzahl der Personen eingetragen</li>" ;
}
if (empty($smoker)) {
$fehler .= "<li>Raucherfrage nicht beantwortet</li>" ;
}
if (empty($fehler)) {
if (get_magic_quotes_gpc()) {
$text = stripslashes($text);
}
$return = chr(13).chr(10);
$an = "***" ;
$betreff = "Reservierung" ;
$von = "From: Reservierung <***" ;
$datum = "Datum: ".date("j.n.Y").$return;
$zeit = "Zeit: ".date("H:i").$return;
$abs = "Von: ".$name." <".$mail."> <".$phone.">".$return;
$trennen = "-----------------------------------------------".$return;
$reservierung = " Event: ".$event.$return." Datum: ".$date.$return." Uhrzeit: ".$hour.$return." Personen: ".$people.$return." Raucher: ".$smoker.$return." Besondere Wünsche: ".$text."";
$nachricht = "Reservierung versandt am: ".$datum.$zeit."".$abs.$trennen.$reservierung.$return;
mail($an,$betreff,$nachricht,$von);
}
?>
|

15-10-2009, 22:03
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Cześć,
zu diesem if fehlt der else-Teil, in dem dann die Ausgabe erfolgen müsste:
PHP-Code:
if (empty($fehler)) {
Gruß,
Amica
|

15-10-2009, 22:29
|
|
madeinpolska
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 10
|
|
dobry wieczór 
ich blick das nicht ganz bin leider nicht so fit in php
PHP-Code:
if (empty($name)) { $fehler .= "<li>der Absendername fehlt</li>" ; }
dachte da habe ich schon die meldung bestimmt ?
|

15-10-2009, 22:38
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von madeinpolska
PHP-Code:
if (empty($name)) {
$fehler .= "<li>der Absendername fehlt</li>" ;
}
dachte da habe ich schon die meldung bestimmt ?
|
Da hast du eine Fehlermeldung an die Variable $fehler angehangen.
Variableninhalte geben sich aber nicht von selber aus, das musst du schon noch explizit machen ... und die geeignetste Stelle dafür wäre ein ELSE-Block zu dem IF, in dem du die Verarbeitung vornimmst, wenn kein Fehler vorliegt.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

15-10-2009, 22:45
|
|
madeinpolska
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 10
|
|
also wäre das dann
PHP-Code:
if (empty($fehler)) {
echo "Reservierung erfolgreich versandt";
} else {
echo $fehler; }
??
|

15-10-2009, 22:54
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Genau, aber vielleicht sollte zusätzlich zur Fehlermeldung noch das Formular erneut angezeigt und mit den bereits eingegebenen Werten gefüllt werden, sonst müsste der Benutzer erst eine Seite zurück gehen und dann alles nochmal eintippen.
Google mal nach "Affenformular".
|

15-10-2009, 23:27
|
|
madeinpolska
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 10
|
|
danke die meldungen werden jetzt angezeigt beim umleiten
aber das mit dem affenformular blicke ich halt mal garnicht
dass die daten wieder drinnstehen wäre schon gut
wie sieht das dann aus ?
so?
HTML-Code:
<input type="text" name="text"
value="<?php echo isset($_POST['text']) ? htmlspecialchars($_POST['text']) : ''; ?>" />
|

15-10-2009, 23:40
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Sehr gut, dem ist nichts hinzuzufügen!
|

15-10-2009, 23:51
|
|
madeinpolska
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 10
|
|
irgendwas stimmt noch nicht
muss das in jedes feld von input type text zb name email etc ??
|

16-10-2009, 00:05
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Ja in jedes, aber nicht nur Textfelder. Auch Select-Boxes sollten vorbelegt werden mit selected="selected" für das entsprechende option-Element und Checkboxes und Radiobuttons mit checked="checked".
|

16-10-2009, 10:59
|
|
madeinpolska
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 10
|
|
ok bei mir gibts nur textfelder
irgendwie funktioniert es trotzdem nicht ?
muss das auch bei form action oder submit rein ??
|

16-10-2009, 11:04
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Nein, dort musst du nur drauf achten, dass method="post" angegeben ist und action auf dieselbe Seite (mit dem Formular) verweist. Bei dir verweist dieses Attribut derzeit auf "versand.php". Wenn das die PHP-Datei mit dem Formular ist, dann ist das richtig. Wenn nicht, ist das der Grund, warum es nicht funktioniert.
|

16-10-2009, 11:32
|
|
madeinpolska
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 10
|
|
versand.pjp ist die php datei in der die mail versendet wird
das formular ist in einer html datei -> reservierung.html
also der code ist wie er gepostet ist in 2 verschiedenen dateien - wie löse ich das problem jetzt?
Geändert von madeinpolska (16-10-2009 um 11:35 Uhr)
|

16-10-2009, 11:44
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Die reservierung.html in reservierung.php umbenennen und dort den Auswertungscode einbauen.
PHP-Code:
$fehler = "";
// alles testen und $fehler füllen
if (empty($fehler)) {
// Mail verschicken
// Bestätigung, Dank, ... anzeigen
}
else {
if (!empty($_POST)) {
// Fehler ausgeben
}
// Formular nochmal anzeigen
}
|

19-10-2009, 16:37
|
|
madeinpolska
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 10
|
|
also jetzt kommt gar keine email mehr an...
der code sieht wie folgt aus
Reservierung.html
HTML-Code:
<style type="text/css">
.Body {
color: #463c3c;
font-family: 'HoeflerText-Regular', 'Hoefler Text', 'Times New Roman', serif;
font-size: 14px;
font-style: normal;
font-variant: normal;
font-weight: normal;
letter-spacing: 0;
line-height: 17px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 0px;
padding-top: 0px;
text-align: left;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
</style>
<form action="versand.php" method="post" class="Body">
<table>
<tr>
<td colspan="2" align="left" valign="middle">Um zu reservieren bitte <strong>alle Felder</strong> ausfüllen!</td>
</tr>
<tr><td width="152" align="left" valign="middle">Name:</td>
<td width="368" align="left" valign="middle"><input name="name" type="text" size="25"></td></tr>
<tr>
<td align="left" valign="middle"> Email:</td>
<td align="left" valign="middle"><input name="mail" type="text" size="25"></td></tr>
<tr>
<td align="left" valign="middle">Telefon:</td>
<td align="left" valign="middle"><input name="phone" type="text" size="25" id="phone"></td>
</tr>
<tr>
<td align="left" valign="middle"> </td>
<td align="left" valign="middle"> </td>
</tr>
<tr>
<td align="left" valign="middle">Art der Feier:</td>
<td align="left" valign="middle"><input name="event" type="text" size="25" id="event"></td>
</tr>
<tr>
<td align="left" valign="middle">Datum:</td>
<td align="left" valign="middle"><input name="date" type="text" size="25" id="date"></td>
</tr>
<tr>
<td align="left" valign="middle">Uhrzeit:</td>
<td align="left" valign="middle"><input name="hour" type="text" size="25" id="hour"></td>
</tr>
<tr>
<td align="left" valign="middle">Anzahl Personen:</td>
<td align="left" valign="middle"><input name="people" type="text" size="25" id="people"></td>
</tr>
<tr>
<td align="left" valign="middle">Raucher:</td>
<td align="left" valign="middle"><input name="smoker" type="text" id="smoker" value="ja / nein / gemischt" size="25"></td>
</tr>
<tr>
<td align="left" valign="middle"> </td>
<td align="left" valign="middle"> </td>
</tr>
<tr>
<td align="left" valign="middle">Besondere Wünsche:</td>
<td align="left" valign="middle"><textarea name="text" rows="10" cols="50"></textarea></td></tr>
</table>
<br>
<input type="submit" value="Reservierung versenden" />
</form>
und versand.php
PHP-Code:
<?php
$fehler = "";
$name = $_POST['name'];
$mail = $_POST['mail'];
$phone = $_POST['phone'];
$event = $_POST['event'];
$date = $_POST['date'];
$hour = $_POST['hour'];
$people = $_POST['people'];
$smoker = $_POST['smoker'];
$text = $_POST['text'];
if (empty($name)) {
$fehler .= "<li>der Absendername fehlt</li>" ;
}
if (empty($mail)) {
$fehler .= "<li>die Mailadresse fehlt</li>" ;
}
if (empty($phone)) {
$fehler .= "<li>keine Telefonnummer eingetragen</li>" ;
}
if (empty($event)) {
$fehler .= "<li>kein Event eingetragen</li>" ;
}
if (empty($date)) {
$fehler .= "<li>kein Datum eingetragen</li>" ;
}
if (empty($hour)) {
$fehler .= "<li>keine Uhrzeit eingetragen</li>" ;
}
if (empty($people)) {
$fehler .= "<li>keine Anzahl der Personen eingetragen</li>" ;
}
if (empty($smoker)) {
$fehler .= "<li>Raucherfrage nicht beantwortet</li>" ;
}
if (empty($fehler)) {
if (get_magic_quotes_gpc()) {
$text = stripslashes($text);
}
$return = chr(13).chr(10);
$an = "***" ;
$betreff = "Reservierung" ;
$von = "From: Reservierung <***>" ;
$datum = "Datum: ".date("j.n.Y").$return;
$zeit = "Zeit: ".date("H:i").$return;
$abs = "Von: ".$name." <".$mail."> <".$phone.">".$return;
$trennen = "-----------------------------------------------".$return;
$reservierung = " Event: ".$event.$return." Datum: ".$date.$return." Uhrzeit: ".$hour.$return." Personen: ".$people.$return." Raucher: ".$smoker.$return." Besondere Wünsche: ".$text."";
$nachricht = "Reservierung versandt am: ".$datum.$zeit."".$abs.$trennen.$reservierung.$return;
mail($an,$betreff,$nachricht,$von);
}
?>
<html>
<head>
<title>Reservierung</title>
<meta http-equiv="refresh" content="5; URL=../Reservierung.html">
<meta name="keywords" content="automatic redirection">
</head>
<body>
Sie werden umgeleitet.
<?php
if (empty($fehler)) {
echo "Reservierung erfolgreich versandt";
} else {
echo $fehler; }
?>
</body>
</html>
wo ist der fehler ? ich blicks nicht
wenn man auf versenden klickt und alles eingegeben hat kommt zwar die meldung aber keine mail wird versand :?
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|