Zum Inhalt springen

Hilfe bei PHP-Problem


f4e

Empfohlene Beiträge

Hallo zusammen,

ich habe einige Probleme am Mailform an dem ich immer noch rumhänge und immer wieder etwas neues finde was ich ändern möchte.....

das erste.......

Wenn ein User seine Daten in das From eingegeben hat und auf Senden drückt, bekommt er die ganzen Daten noch einmal angezeigt und das Form wird gesendet.................... ist zwas sehr schön funktioniert auch alles, aber der user hat dann keine Chance mehr etwas zu ändern....das Form ist ja gesendet...............

wie bekomme ich das hin, dass er sich das anschauen kann ohne das das Form sofort beim klicken auf "senden" auf die reise geht, sondern das der User den Sendevorgang manuel anstossen muss????

das zweite.....

da dieses Form eine Buchungsanfrage für ein Ferienhaus ist/sein soll oder mal werden soll...... möchte ich, dass wenn ein User im Textfeld für Erwachsene Personen eine 1 angibt(also 1 Erwachsener) das in der Datenansicht, wenn er sich seine daten noch einmal anschaut, ...1Erwachsener erscheint, wenn er aber eine 2 (für 2Erwachsene) eingibt, soll in der Ansicht auch 2Erwachene erscheinen und nicht wie jetzt 2 Erwachener.....

wer von euch hat eine oder auch viele Ideen???

gruss

dieter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

alle funktionen sind soweit ok, das versenden der Mail an den Inhaber und an den Anfragestelle gehen auch.....

was ich meine kann ich dir auf einem bild zeigen, wenn das hier geht

dieter

<html>

<head>

<title>xxxxxx</title>

<link href="form.css" rel="stylesheet" type="text/css" />

<style type="text/css">

<!--

.Stil4 {font-size: xx-small}

-->

</style>

</head>

<body bgcolor="#FFFFFF" background="images/bg.gif" leftmargin="0"

topmargin="0" marginwidth="0" marginheight="0" >

<table width="900" border="0" align="center" cellpadding="0"

cellspacing="0" class="border" height="794"> <tr> <td width="900" height="104" class="header"></td></tr>

<tr> <td width="100%" height="23" class="navoben" ><table width="100%" border="0">

<tr>

<td> </td>

<td></td></tr>

</table></td></tr> <tr> <td background="background="images/bg_maintable.gif"><table width="100%" border="0">

<tr> <td height="77"><br>

Anfrageformular

<br>

</td></tr> </table>

<table width="100%" height="1" bgcolor="#eeeeee" border="0" cellspacing="0" cellpadding="0">

<tr> <td bgcolor="#FFFFFF"></td></tr> </table><table width="899" height="400" border="0" cellpadding="0" cellspacing="5">

<tr> <td width="108" valign="top" height="571">  </td>

<td width="30" background="images/dotted.gif" height="571"><img src="images/Abstandhalter.gif" width="1" height="1"/>

</td><td width="575" height="700" valign="top" class="textbox">

<?php

//mit $sent==1 wird getestet, ob das Formular abgeschickt wurde

if ($sent==1)

{

//Ausgabe der eingegebenen Fromulardaten

echo "<font color=black>Ihre Anschrift:</font><br>$anrede $vorname $nachname<br>$strasse<br>$plz $ort<br>";

echo "<font color=black>Ihre Telefon-Nr:</font> $tel<br>";

echo "<font color=black>Ihre Mailadresse:</font> $email<br>";

echo "<br><font color=black>Ihre Anfrage:<br></font>$betreff<br>";

echo "<font color=black>Ihre gewünschte Unterbringungart:</font><br>$auswahl  von:$von  bis: $bis<br>";

echo "<font color=black>Anzahl der Personen:</font><br>$erwachsen Erwachener/Erwachsene,  $kind Kind/Kinder,  $tier<br>";

echo "<font color=black>Besonderheiten:</font><br>$besonders<br>";

echo "<font color=black>Ihre Nachricht:</font><br>$nachricht<br>";

echo "<hr>";

// Testen ob alle Felder ausgefüllt wurden, ggf eine Fehlermeldung ausgeben und $sent löschen, damit das Formular erneut angzeigt wird

if (!$anrede) {echo '<font color=red>Bitte geben sie Ihr Geschlecht an, da wir Sie in einer korrekten From anreden möchten!! </font><br>';unset ($sent);}

//if (!$vorname) {echo '<font color=red>Bitte geben Sie Ihren Vornamen an!! </font><br>';unset ($sent);}

if (!$nachname) {echo '<font color=red>Bitte geben Sie Ihren Nachnamen an!! </font><br>';unset ($sent);}

//if (!$strasse) {echo 'Bitte geben Sie Ihre Straße an!! </font><br>' ;unset ($sent);}

if (!$plz) {echo '<font color=red>Bitte geben Sie Ihre PLZ an!! </font><br>';unset ($sent);}

if (!$ort) {echo '<font color=red>Bitte geben Sie Ihren Wohnort an!! </font><br>';unset ($sent);}

//if (!$tel) {echo '<font color=red>Bitte geben Sie ihre Telefon-Nr. an!! </font><br>' ;unset ($sent);}

if (!$email) {echo '<font color=red>Bitte geben Sie Ihre Mail-Adresse an!!</font><font color=black>Da wir sonst nicht auf Ihre Anfrage reagieren können.</font><br>' ;unset ($sent);}

//Testen der Mail-Adresse----------------------------------------------------------------------------------------

$muster="^[_a-zA-Z0-9-](\.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{2,}\,}\.){0,}[a-zA-Z0-9-]{3,}(\.[a-zA-Z]{2,4}){1,2}$";

if (ereg($muster, $email))

{

echo " ";

}

else

{

echo "<font color=red>Bitte geben Sie eine korrekte Mail-Adresse an!!</font><br>";

}

// Ende Testen Mail-Adresse---------------------------------------------------------------------------------------

if (!$betreff) {echo '<font color=red>Bitte geben sie den Grund Ihrer Nachricht an!! </font><br>' ;unset ($sent);}

//if (!$auswahl) {echo '<font color=red>Bitte wählen Sie eine Unterbringungsart!! </font><br>' ;unset ($sent);}

//if (!$von) {echo '<font color=red>Bitte geben Sie Ihren gewünschten Anreisetag an!! </font><br>' ;unset ($sent);}

//if (!$bis) {echo '<font color=red>Bitte geben Sie Ihren gewünschten Abreisetag an!! </font><br>' ;unset ($sent);}

//if (!$erwachsen) {echo '<font color=red>Bitte geben Sie die Zahl der erwachsenen Reisenden an!! </font><br>' ;unset ($sent);}

//if (!$kind) {echo '<font color=red>Bitte geben Sie die Zahl der mitreisenden Kinder an!! </font><br>' ;unset ($sent);}

//if (!$tier) {echo '<font color=red>Bitte geben Sie die Zahl der mitreisenden Haustiere an!! </font><br>' ;unset ($sent);}

//if (!$besonders) {echo '<font color=red> Bitte geben Sie Ihre Besonderheiten an!! </font><br>' ;unset ($sent);}

if (!$nachricht) {echo '<font color=red>Bitte geben Sie Ihre Mitteilung an uns ein!! </font><br>' ;unset ($sent);}

echo "<hr>";

//Testen, ob alle Pflichtfelder ausgefüllt sind, wenn ja Mail vorbereiten und versenden

if ($anrede AND $nachname AND $plz AND $ort AND $email AND $betreff AND $nachricht)

{

//Den Nachrichtentext für eine HTML-Mail zusammenbauen

//Informationen an den Anfragesteller !!!...noch nicht fertig!!!

//$mess= "<html><body>";

$mess= "Wir bedanken uns für Ihre Anfrage!!<br>";

$mess.= "Anrede: ";

$mess.=$anrede;

$mess.= "Vorname: ";

$mess.=$vorname;

$mess.= "Nachmane: ";

$mess.=$nachname;

$mess.= "Strasse: ";

$mess.=$strasse;

$mess.= "PLZ: ";

$mess.=$plz;

$mess.= "Ort: ";

$mess.=$ort;

$mess.= "Tel-Nr.: ";

$mess.=$tel;

$mess.= "E-Mail: ";

$mess.=$email;

$mess.= "Betreff: ";

$mess.=$betreff;

$mess.= "Art der Unterbringung: ";

$mess.=$auswahl;

$mess.= "Von: ";

$mess.=$von;

$mess.= "Bis: ";

$mess.=$bis;

$mess.= "Erwachsene: ";

$mess.=$erwachsen;

$mess.= "Kinder: ";

$mess.=$kind;

$mess.= "Haustiere: ";

$mess.=$tier;

$mess.= "Besonderheiten: ";

$mess.=$besonders;

$mess.= "Nachricht: ";

$mess.=$nachricht;

//$mess.="</body></html>";

//$header="Content-type:text/plain;chartset=iso-8859-1\n";

//Informationen an den Empfänger(Inhaber)

$message= "<html><body>";

$message.= "Informationen des Anfragestellers!!<br>";

$message.=$anrede;

$message.= " ";

$message.=$vorname;

$message.= " ";

$message.=$nachname;

$message.= "<br>";

$message.=$strasse;

$message.= "<br>";

$message.=$plz;

$message.= " ";

$message.=$ort;

$message.= "<br>Tel-Nr.: ";

$message.=$tel;

$message.= "<br>E-Mail: ";

$message.=$email;

$message.= "<br>Betreff: ";

$message.=$betreff;

$message.= "<br>Art der Unterbringung:<br> ";

$message.=$auswahl;

$message.= " ";

$message.=$von;

$message.= "  -  ";

$message.=$bis;

$message.= "<br>Erwachsene:";

$message.=$erwachsen;

$message.= "<br>Kinder:";

$message.=$kind;

$message.= "<br>Tiere:";

$message.=$tier;

$message.= "<br>Besonderheiten: ";

$message.=$besonders;

$message.= "<br>Nachricht:<br> ";

$message.=$nachricht;

$message.="</body></html>";

//Den Header der Mail erstellen

$header="Content-type:text/html;chartset=iso-8859-1\n";

//Die Mail an den Empfänger(Inhaber) versenden. Wenn kein Fehler auftritt, wird eine Erfolgsmeldung ausgegeben, andernfalls eine Fehlermeldung

if(mail("admin@xx.de", "Eine Buchungsanfrage vom Ferienhaus-xxxxx!!", $message, $header))

{

//Erfolgsmeldung ausgeben

echo "Ihre Mail wurde erfolgreich versendet!! In wenigen Minuten erhalten sie eine Kopie Ihrer Anfrage.";

}

else

{

//Fehlermeldung ausgeben

echo "Die Übertragung Ihrer Mail an unseren Server ist leider fehlgeschlagen. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal!!";

//$sent löschen, damit das Formular erneut angzeigt werden kann

unset($sent);

}

//----------------------------------------------------------------------------------------------------------------------------------------

//Die Mail an den Anfragesteller versenden. Wenn kein Fehler auftritt, wird eine Erfolgsmeldung ausgegeben, andernfalls eine Fehlermeldung

if(mail("$email", "Ihre Buchungsanfrage an das Ferienhaus-xxxxx!!", $mess, $header))

{

//Erfolgsmeldung ausgeben

echo "Eine Kopie Ihrer Mail wurde erfolgreich an Ihre Mail-Adresse versendet!!";

}

else

{

//Fehlermeldung ausgeben

echo "Die Übertragung der Kopie Ihrer Mail an Ihre Mail-Adresse ist leider fehlgeschlagen. Bitte Überprüfen Sie Ihre angegebene Mail-Adresse!!";

//$sent löschen, damit das Formular erneut angzeigt werden kann

unset($sent);

}

//----------------------------------------------------------------------------------------------------------------------------------------

} //schliessende Klammer für if($vorname AND $nachname AND....)

} //schliessende Klammer für if($sent==1)

//Das Formular anzeigen, wenn $sent nicht existiert.....dies kann der Fall sein, wenn die Seite zum 1.Mal aufgerufen wird oder wenn $sent oben bei einem Fehler gelöscht wird

if(!$sent)

{

?>

post-44433-14430447711377_thumb.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier kommt der rest...davon

dieter

<form action="<?php echo $PHP_SELF; ?>" method=post>

<!-Verstecktes Feld um zu Testen, ob das Formular aufgerufen werden soll oder nicht->

<input type=hidden name=sent value=1>

<table width="99%" height="62" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="61%" valign="top">

<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="10%" rowspan="4"> </td>

<td width="16%" height="19">Anrede:*</td>

<td width="74%"><input name="anrede" type="text" size="7" maxlength="6">

</td>

</tr>

<tr>

<td width="16%">Vorname:</td>

<td><input name="vorname" type="text" size="40" maxlength="40"></td>

</tr>

<tr>

<td width="16%">Nachname:*</td>

<td><input name="nachname" type="text" size="40" maxlength="40"></td>

</tr>

<tr>

<td>Strasse:</td>

<td><input name="strasse" type="text" size="40" maxlength="40"></td>

</tr>

</table>

<table width="100%" height="21" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="10%"> </td>

<td width="8%">PLZ:*</td>

<td width="10%"><input name="plz" type="text" size="6" maxlength="5"></td>

<td width="4%"> </td>

<td width="7%"><div align="left">Ort:*</div></td>

<td width="61%"><input name="ort" type="text" size="40" maxlength="40"></td>

</tr>

</table>

<br></td>

<td width="39%" valign="top"><span class="Stil4">Legende:<br>

Die mit einem * markierten Felder müssen ausgefüllt werden!!<br>

Hinweise über die einzelnen Eingabefelder erhalten Sie, wenn Sie mit dem Mauszeiger über das entsprechende Feld fahren. <br>Nach dem Versenden Ihrer Mail/Anfrage, erhalten sie autom. ein Kopie an Ihre angegebene Mail-Adresse </span></td>

</tr>

</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="6%" rowspan="2"> </td>

<td width="6%">Tel-Nr:</td>

<td width="31%"><input name="tel" type="text" size="40" maxlength="40"></td>

<td width="6%">E-Mail:*</td>

<td width="51%"><input name="email" type="text" size="40" maxlength="40" title="Bitte versuchen Sie eine korrekte E-Mail-Adresse anzugeben, da diese vor dem Versenden der Mail überprüft wird. Es erspart Ihnen nur Arbeit und den damit verbundenen Ärger. Denn eine solche Mail wird nicht versendet!!!"></td>

</tr>

<tr>

<td width="6%">Betreff:*</td>

<td colspan="3"><input name="betreff" type="text" value="Belegungsanfrage" size="105" maxlength="100" title="Sie können den Eintrag wenn Sie möchten einfach ändern."></td>

</tr>

</table>

<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="6%"> </td>

<td width="12%">Unterbringung:</td>

<td width="16%" ><select name="auswahl">

<option>--</option>

<option value="Ferienwohnung">Ferienwohnung</option>

<option value="Ferienhaus">Ferienhaus</option>

</select></td>

<td width="4%">von:</td>

<td width="18%"><input type="text" name="von" title="z.B. 01.Aug.2007 oder 01.12.2007"></td>

<td width="4%"><div align="center">bis:</div></td>

<td width="40%"><input type="text" name="bis" title="z.B. 01.Aug.2007 oder 01.12.2007"></td>

</tr>

</table>

<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="6%"> </td>

<td width="10%">Erwachsene:</td>

<td width="6%"><input name="erwachsen" type="text" size="5" maxlength="2"></td>

<td width="6%">Kinder:</td>

<td width="10%"><input name="kind" type="text" size="5" maxlength="2"></td>

<td width="8%">Haustiere:</td>

<td width="54%"><input name="tier" type="text" maxlength="20" title="z.B. 1 mittelgroßer Hund oder 1 Katze usw."></td>

</tr>

</table>

<table width="99%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="6%"> </td>

<td width="13%">Besonderheiten:</td>

<td width="81%"><input name="besonders" type="text" size="100" maxlength="99" title="z.B. Vogel im Käfig, Allergiker, Rollstuhlfahrer usw."></td>

</tr>

</table>

<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="6%" rowspan="2"> </td>

<td width="94%">Nachricht:*</td>

</tr>

<tr>

<td valign="top"><textarea name="nachricht" class="nachricht" maxlength="255"></textarea></td>

</tr>

</table>

<br>

<table width="50%" border="0" align="left" cellpadding="0" cellspacing="0">

<tr>

<td width="27%"><div align="center">

<input type="submit" name="Submit" value="Senden">

</div></td>

<td>

<div align="left">

<input type="reset" name="Submit" value="Zurücksetzen">

</div> <div align="right"></div></td>

</tr>

</table>

</form>

<?php

} //schliessende Klammer für if(!$sent) !!WICHTIG!!!, die Klammer muss in einem PHP-Teil stehen!!

?>

<br>

<br>

<br>

<br>

<div align="center">

<table width="99%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="44%"><div align="left"><a href="" onClick="JavaScript:self.close()">Fenster schließen</a></div></td>

<td width="8%"> </td>

<td width="48%"><div align="right"><a href="" onClick="JavaScript:self.close()">Fenster schließen</a></div></td>

</tr>

</table>

</div></td><td width="1" background="images/dotted.gif" height="571"><img src="images/Abstandhalter.gif" width="1" height="1"/>

</td>

<td width="155" valign="top" height="571"> </td>

</tr> </table></td></tr> <tr> <td height="28" background="images/footer.gif" class="footer"><div align="center"><FONT COLOR="#FFFFFF"><B><FONT SIZE="1"><I>Design

by xxxx</I></FONT></B></FONT></div></td></tr> </table>

</body>

</html>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das erste Problem: Schalte einfach eine php-Seite dazwischen.

Vom Formular schickst die Daten an diese Seite zu Ansicht, unten zwei Buttons: Senden und Ändern.

Senden -> Schickt dann ab

Ändern -> zurück zur Eingabemaske

Zweites Problem: Anzahl der Erwachsenen nicht über ein Textfeld regeln, sondern eine Selectbox nehmen... maximale Anzahl auf 30 beschränken (oder so)

Hinterher die getätigte Auswahl per if-Abfrage auf Singular/Plural Erwachsene überprüfen, entsprechnd dem Ergebnis die Beschriftung wählen.

Ein kleiner Hinweis zu deinem Quelltext: Viel zu unübersichtlich! Einrückungen helfen ungemein

Link zu diesem Kommentar
Auf anderen Seiten teilen

Problem 1:

Lade den Inhalt einfach in eine Form auf einer zwischen Seite, dort kann der Benutzer das ganze nochmal verändern bevor es entgültig an Mail "geparametert" wird. Alternativ kannst du bei der Überprüfenseite Links mit href="javascript:history.back() einsetzen, soweit ich weiß verbleibt der Inhalt bei modernen Browsern.

Wie jemand anderes bereits erwähnt hat solltest du die Formulardaten dann erst auf einer Seite danach versenden.

Problem 2:


// Suffix

if ($erwachsen == 1) {
$suffix = "r";
} else {
$suffix = "";
}

// Und jetzt auf der anderen Seite
echo "Personen: ".$erwachsen." Erwachsene".$suffix."__und so weiter__";
[/php]

Übrigens: So wie ich mir den Code ansehe hast du dich nocht nicht viel mit PHP beschäftigt und beherrscht grundlegende HTML-Techniken nicht. Vielleicht probierst du einfach mal ein wenig mehr aus um Erfahrungen zu sammeln. Du kannst mit dem Script allein viel mehr anstellen, z. B. die Option hinzufügen ob man denn überhaupt eine Kopie will oder du schreibst die Mail neben dem Versenden auch noch in eine Datei oder sonst was.

PS: Wer oder was sind Erwachene? ;)

Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

danke für deine Hilfe und auch sehr guten anmerkungen...... nein du hast recht, mit php beschäftige ich mich sonst nicht sehr oft.......mein job ist es neben der betriebsicherheit noch ca 750 server am laufen zu halten......:D

aber ich habe den fehler mit dem immer wieer leeren form gefunden..ich habe etwas vergessen einzutragen:

value="<?php echo $vorname;?>

damit geht es..... wer lesen kann ist immer klar im vorteil

ich denke das jeder der eine Ferienwohnung buchen möchte auch gerne eine kopie der buchung haben will, aber du hast recht, ich werde diese möglichkeit einbauen..........

grüsse

dieter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...