hoffe ich bin hier richtig. Zu meinem Problem. Ich versuche immoment eine kleine Homepage für ein Event zu basteln, das hat bis jetzt auch sehr gut funktioniert, nur das angesprochene Kontaktformular, über das man Tickets bestellen kann, verschickt keine Mails. Man muss dazu sagen, dass ich das Formular, nicht selber programmiert habe, sondern mit einem "Generator" erstellt habe und sich meine Kenntnisse im programmieren von Webseiten noch etwas im Aufbau befinden
<script type="text/javascript"> // Kontaktformular vor dem absenden überprüfen var fehlerfarbe = "#FFFFDD"; function check() { if (document.getElementsByTagName("input").length < 1) {return false;} else if (document.Form.vorname.value == "") {document.Form.vorname.style.backgroundColor=fehlerfarbe; document.Form.vorname.focus(); return false;} else if (document.Form.nachname.value == "") {document.Form.nachname.style.backgroundColor=fehlerfarbe; document.Form.nachname.focus(); return false;} else if (document.Form.feld1.value == "") {document.Form.feld1.style.backgroundColor=fehlerfarbe; document.Form.feld1.focus(); return false;} else if (document.Form.feld2.value == "") {document.Form.feld2.style.backgroundColor=fehlerfarbe; document.Form.feld2.focus(); return false;} else if (document.Form.feld3.value == "") {document.Form.feld3.style.backgroundColor=fehlerfarbe; document.Form.feld3.focus(); return false;} else if (document.Form.mailfrom.value == "") {document.Form.mailfrom.style.backgroundColor=fehlerfarbe; document.Form.mailfrom.focus(); return false;} else if (document.Form.nachricht.value == "") {document.Form.nachricht.style.backgroundColor=fehlerfarbe; document.Form.nachricht.focus(); return false;} else return true; } function check2(ziel) { if (ziel.value == "") { ziel.style.backgroundColor=fehlerfarbe; } else { ziel.style.backgroundColor="#FFFFFF"; } } </script>
</head> <body>
<?php /* Kontaktformular - Erstellt am: 30.01.2011 (Sprache: deutsch) mit dem Kontaktformular Generator - www.homepage-total.de Wichtig: Der Webserver muss PHP unterstützen. Speichern Sie die Datei zum Beispiel als: "kontakt.php". */
// Ihr Name (wird für die E-Mail-Kopie // an den Besucher benötigt!) $webmaster = "";
// Ihre E-Mail-Adresse: $mailto = "info[at]***.de";
// Ihre Webseite (Startseite). Nach dem absenden der E-Mail // gelangt der Besucher über einen Link auf Ihre Startseite. $url = "http://www.***.de/";
if (isset($_POST["sendung"])) { // Pflichtfelder überprüfen if (strlen($vorname) <= 2) {$eingabefehler .= "• Vorname fehlt!<br>";} if (strlen($nachname) <= 2) {$eingabefehler .= "• Nachname fehlt!<br>";} if ($feld1 == "") {$eingabefehler .= "• Geburtsdatum fehlt!<br>";} if ($feld2 == "") {$eingabefehler .= "• Anschrift fehlt!<br>";} if ($feld3 == "") {$eingabefehler .= "• PLZ, Ort fehlt!<br>";} if (!preg_match("/^([_a-z0-9-äöüß])(([-_a-z0-9-äöüß._])*([_a-z0-9-äöüß]))*\@([_a-z0-9-äöüß])(([_a-z0-9-äöüß-])*([_a-z0-9-äöüß]))+(\.([_a-z0-9-äöüß])([-a-z0-9_-])?([_a-z0-9-äöüß])+)+$/i", $mailfrom)) { $eingabefehler .= "• Fehler in der E-Mail-Adresse!<br>"; } //if (strlen($nachricht) <= 19) {$eingabefehler .= "• Die Nachricht " . ((strlen($nachricht) == 0) ? " fehlt" : " ist zu kurz") . " (min. 20 Zeichen)!<br>";} if ($eingabefehler == "") { // Diese Nachricht wird an Ihre E-Mail-Adresse gesendet (\n = neue Zeile) $text = "Datum: " . date("d.m.Y H:i") . "\n Vorname: $vorname \n Nachname: $nachname \n Geburtsdatum: $feld1 \n Anschrift: $feld2 \n PLZ, Ort: $feld3 \n E-Mail: $mailfrom \n Nachricht: $nachricht \n\n Anzahl der Karten: $auswahl1 \n "; // E-Mail versenden @mail($mailto, $betreff, $text, "From: " . $mailfrom); // Bestätigung der E-Mail echo "<p style='text-align:center; margin-top:200px;'>"; echo "Vielen Dank " . $vorname . " " . $nachname . ", die Nachricht wurde gesendet.<br><br>"; if (isset($_POST["kopie"])) { // Diese Nachricht wird an die E-Mail-Adresse des Besuchers gesendet $kopie = "Vielen Dank für Deine Besuch bei $url.\n Wir haben folgende Nachricht erhalten:\n\n ====\n\n Vorname: $vorname \n Nachname: $nachname \n Geburtsdatum: $feld1 \n Anschrift: $feld2 \n PLZ, Ort: $feld3 \n E-Mail: $mailfrom \n Nachricht: $nachricht \n\n Anzahl der Karten: $auswahl1 \n ====\n\n Mit freundlichen Grüßen,\n $webmaster "; // E-Mail Kopie versenden @mail($mailfrom, "Kopie einer Anfrage", $kopie, "From: " . $mailto); // Bestätigung der E-Mail Kopie echo "Sie erhalten eine Kopie Ihrer Anfrage an Ihre E-Mail-Adresse.<br><br>"; } // Link zur Startseite echo "<a href=\"" . $url . "\" target=\"_top\">Weiter zur Startseite</a></p>"; } else { // Eingabefehler und Formular ausgeben echo str_replace("<!-- Fehleranzeige -->", "<strong>Die Nachricht wurde aus folgendem Grund nicht gesendet:</strong><br>$eingabefehler", $formular); } } else { // Formular ausgeben echo $formular; } ?>
</body> </html>
Hoffe Ihr könnt mir helfen. Vielen Dank schonmal !
31.01.2011, 06:29
#
2
FreewareGuide
Moderator
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Was Du zuerst mal ausprobieren solltest ist das @ vor dem ersten "mail(" wegzunehmen, denn das unterdrückt wohl die Ausgabe von Fehlermeldungen - wenig hilfreich bei der Fehlersuche.
Ein Problem kann sein, dass PHP im Webserver gar nicht für E-Mail-Versendung konfiguriert ist, bei gemietetem Webspace sollte das eigentlich nicht so sein (und Du bist ja scheinbar bei STRATO). Testest Du bereits online auf der Seite oder mit einem lokalen Webserver auf Deinem System?
Grüße,
Thorsten
31.01.2011, 10:31
#
3
Dre
Threadstarter
Registriert seit: 19.10.2010
Beiträge: 10
Hallo FreewareGuide,
bist aber nen ganz früher Vogel
Das @ habe ich mal rausgenommen und getestet, da passiert immernoch das gleiche. Man füllt das Formular aus, verschickt es und man springt auf die Startseite zurück.
:idea:
Mir ist grad noch was eingefallen und habs mal sofort getestet. Meine Seite ist so aufgebaut, dass ich eine index.php habe und hier der content mit include eingeblendet wird. Wenn ich jetzt also einfach nur die tickets.php als einzigste Seite auf die Page mache, funktioniert alles wunderprächtig. Folglich muss ich das irgendwie erreichen, dass die ticket-Seite von dem include verschond bleibt. Die Frage ist nur wie
Das mit der Fehlermeldung, hat bei mir den Funken ausgelöst
31.01.2011, 11:05
#
4
FreewareGuide
Moderator
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Zitat:
Zitat von Dre
Man füllt das Formular aus, verschickt es und man springt auf die Startseite zurück.
Das ist ja eine grundsätzlich andere Problembeschreibung (vorausgesetzt Startseite ungleich Bestell-/Kontaktseite) als:
Zitat:
Zitat von Dre
nur das angesprochene Kontaktformular, über das man Tickets bestellen kann, verschickt keine Mails.
Okay, sei es drum. Dein Include-Mechanismus scheint tatsächlich das Problem zu sein, aber bei dem Mechanismus sollte es reichen, auch den Namen der Zielseite (Formular) wieder als versteckten Parameter im Formular mitzuschicken: