Einfacher Formmailer PHP
Hoppi
- php
0 Ingo Turski0 mbr0 Hoppi
0 Wastl
Hallo, kann mir jemand sagen ob so der eingebundene Einfache Formmailer(PHP)funktionieren kann? (siehe unten) Die Malis kommen alle einwandfrei an, nur die Dankesseite kommt nicht,
nach dem absenden Formmailer verschwindet und Feld bleibt leer.
Grüße
Hoppi
---------------------------------------------------------------
<html>
<head>
<title>Test</title>
<style type="text/css">
body { margin:0px; padding:0px; }
a:link { font-family:helvetica,tahoma,arial; font-size:12px; text-decoration:none; color:#FFFF00; }
a:visited {font-family:helvetica,tahoma,arial; font-size:12px; text-decoration:none; color:#FFFF00; }
a:hover {font-family:helvetica,tahoma,arial; font-size:12px; font-weight:bold; text-decoration:none; color:#FFFFFF; }
a:active {font-family:helvetica,tahoma,arial,verdana; font-size:12px; text-decoration:none; color:#FFFFFF; }
a:focus {font-family:helvetica,tahoma,arial; font-size:12px; text-decoration:none; color:#FFFFFF; }
</style>
<script type="text/javascript" src="coolmenus3.js">
/*****************************************************************************
Copyright (c) 2001 Thomas Brattli (www.bratta.com)
eXperience DHTML coolMenus - Get it at www.bratta.com
Version 3.02
This script can be used freely as long as all copyright messages are
intact.
******************************************************************************/
</script>
</head>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" bgcolor="#0F2749">
<script type="text/javascript" src="menue-top.js"></script>
<table border="0" width="100%" cellpadding="0" cellspacing="0" height="100%" bgcolor="" align="center">
<tr>
<td align="left" valign="top" height="768">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td height="43" width="210" align="left" valign="top" background="images/H30.jpg" nowrap>
<img src="images/o1.gif" width="190" height="138" border="0"></td>
<td height="43" width="100%" background="images/H30.jpg" valign="top" align="left" nowrap>
<table cellpadding="0" cellspacing="0" width="80%">
<tr>
<td height="100" nowrap>
<img src="images/TCH5b.gif" width="312" height="60" border="0"><img src="images/TCH5a.gif" width="349" height="60" border="0"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="429" colspan="0" rowspan="0" width="210" align="left" valign="top" nowrap>
<dl>
<dt><img src="images/o2.gif" width="190" height="70" border="0" align="top">
<img src="images/o3.jpg" width="190" height="182" border="0"><img src="images/o4.gif"
width="190" height="209" border="0" usemap="#ImageMap1">
</dl>
</td>
<td height="429"><table cellpadding="0" cellspacing="0" width="55%">
<tr>
<td width="500" align="left" valign="top" nowrap>
<dl>
<dt><map name="ImageMap1">
<area shape="rect" coords="33, 45, 159, 65" href="http://ahoppstaedter.de/haft.html">
<area shape="rect" coords="58, 97, 134, 115" href="http://ahoppstaedter.de/impr.html">
<area shape="rect" coords="78, 56, 79, 57" href="http://ahoppstaedter.de/haft.html">
<area shape="rect" coords="112, 103, 113, 104" href="http://ahoppstaedter.de/impr.html">
<area shape="rect" coords="64, 146, 126, 165" href="http://ahoppstaedter.de/kontakt.php">
</map>
<?php
$strEmpfaenger = 'xy@web.de';
$strFrom = '"Formmailer"xy@web.de';
$strSubject = 'Nachricht';
$strReturnhtml = 'http://www.ahoppstaedter.de/danke.html';
$strDelimiter = ":\t";
if($_POST)
{
$strMailtext = "";
while(list($strName,$value) = each($_POST))
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."n";
}
}
if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}
mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
header("Location: $strReturnhtml");
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<dt>
<title>Kontakformular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<br><dt><font color="#75ADE2">
Haben Sie noch Fragen oder möchten Sie Kontakt zu uns aufnehmen?<br>
Hier können Sie uns schnell und bequem Ihre Anfrage oder eine Nachricht<br> zukommen lassen.
* Ihre Telefonnummer ermöglicht auch einen Kontakt zu Ihnen.<br><br>
Ihre Anfrage wird so schnell wie möglich bearbeitet.
<dt>
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
<dt>
<font color="#75ADE2"><font><dt>
<font color="#75ADE2">Ihr Name:<br></dt>
<input type="text" name="Versender" / size="35"></dd>
<dt><font color="#75ADE2">Ihre E-Mail:<br></dt>
<input type="text" name="E-Mail" / size="35"></dd>
<dt>Ihre Telefonnummer*:<br></dt>
<input type="text" name="telefon" size="35" maxlength="30" value="optional (freiwillig)"></dd>
<dt><textarea name="Nachricht" rows="8" cols="60">Ihre Mitteilung an uns...</textarea><font>
<dt>
<input type="submit" value="Senden" />
<input type="reset" value="Zurücksetzen" />
</dl>
</form>
</td>
</tr>
</table>
</body>
</html>
<font color="#75ADE2"></font>
Hi,
Die Malis kommen alle einwandfrei an
ohne Zeilenumbrüche nennst Du das einwandfrei?
nur die Dankesseite kommt nicht,
logisch und wenn du mal die Fehlermeldungen aktvieren würdest, könntest Du auch die Ursache lesen.
<html>
hier fängt Deine Seite an (leider fehlt davor noch was, aber das hat mit dem Problem nichts zu tun.
<script type="text/javascript" src="coolmenus3.js">
OT: Dir ist klar, dass dieses Menü für Besucher ohne Javascript und Suchmaschinen nicht vorhanden ist?
<?php
und hier fängt nun das Formmailer-Script an? ...
if($_POST)
... das auch nicht ganz perfekt ...
mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
... aber zumindest keine Spam-Schleuder ist ...
header("Location: $strReturnhtml");
... und das will danach einen HTTP-Header senden - was aber nicht mehr geht, da ja bereits Ausgaben erfolgt sind.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Oops - ein DOCTYPE. Schön, aber im selben Dokument? Und danach:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<dt>
<title>Kontakformular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<br><dt><font color="#75ADE2">
Du kennst schon den Aufbau einer HTML-Seite und die Syntax für XHTML 10 Strict? ...
</body>
</html>
<font color="#75ADE2"></font>
... offensichtlich leider ganz und gar nicht... :-(
freundliche Grüße
Ingo
Hallo,mir wurde dieses Script empfohlen weil man angeblich nicht so viel ändern braucht.
Da ich mich mit PHP nicht auskenne, wäre es ja mal nett gewesen
wenn man mir klar und deutlich erklärt hätte, wie ich das Problem lösen könnte, als nur meine Fehler zu unterstreichen.
(Was mir sowieso nichts sagt), weil mir alle Kenntnisse von(PHP)fehlen.
Wüsste ich alles wie Ihr würde ich mich sicherlich hier nicht melden und euch nerven.
Es sind halt noch einige Fehler drin es sendet auch Mail weg obwohl keine Felder ausgefüllt worden sind.
Leider weiß ich auch nicht wie ich die Fehlermeldung aktivieren kann.
Ich habe zwar erkannt dass man da noch einge Angaben machen muss unter der: ### Ende Konfiguration ###.
Für mich war die Konfiguration beendet, wo das steht, bis dahin habe ich es noch verstanden: ### Ende Konfiguration ###
Grüße
Hoppi
hallo,
mir wurde dieses Script empfohlen weil man angeblich nicht so viel ändern braucht.
Es ist sehr unwahrschenlich, daß dir genau _das_ empfohlen wurde, was du gepostet hast. Wenn ja, solltest du denjenigen, dsr dir das empfohlen hat, zu einem Grundlehrgang "Webdesign" schicken, damit er künftig keine derart schlecht einsetzbaren Empfehlungen mehr gibt.
Da ich mich mit PHP nicht auskenne, wäre es ja mal nett gewesen
wenn man mir klar und deutlich erklärt hätte, wie ich das Problem lösen könnte
Ich bin so nett: lerne PHP, und so lange du davon nicht wenigstens die Grundlagen erlernt hast, solltest du überhaupt kein PHP einzusetzen versuchen.
Es sind halt noch einige Fehler drin
Nein. Dein gesamter Code ist ein einziger Fehler.
Leider weiß ich auch nicht wie ich die Fehlermeldung aktivieren kann.
Aber du weißt schon, daß es ein recht brauchbares PHP-Handbuch gibt, in dem dir gewiß auch die Sache mit der Aktivierung von Fehlermeldungen erklärt wird?
Ich habe zwar erkannt dass man da noch einge Angaben machen muss unter der: ### Ende Konfiguration ###.
Möglicherweise "muß" man das gar nicht. Aber man sollte verstehen, was ein Script tut (und wie es das tut), ehe man es einsetzt.
Grüße aus Berlin
Christoph S.
Hi,
Da ich mich mit PHP nicht auskenne, wäre es ja mal nett gewesen
wenn man mir klar und deutlich erklärt hätte, wie ich das Problem lösen könnte, als nur meine Fehler zu unterstreichen.
Wenn Du meine Antwort genau gelesen hättest, müsstest Du eigentlich auch Deine Fehler verstanden haben. Aber lies die ausgührliche Antwort von mbr...
(Was mir sowieso nichts sagt), weil mir alle Kenntnisse von(PHP)fehlen.
von HTML offenbar leider auch.
Es sind halt noch einige Fehler drin es sendet auch Mail weg obwohl keine Felder ausgefüllt worden sind.
Das woederum ist kein Fehler - das Script prüft dies lediglich nicht.
Leider weiß ich auch nicht wie ich die Fehlermeldung aktivieren kann.
<?php error_reporting(E_ALL); ?> ganz am Anfang.
Für mich war die Konfiguration beendet, wo das steht, bis dahin habe ich es noch verstanden: ### Ende Konfiguration ###
die Konfiguration ist auch nicht Dein Problem, sondern due fehlerhafte Einbindung des Scripts in Deine Seite.
freundliche Grüße
Ingo
Hallo Hoppi,
Mit dieser Zeile
header("Location: $strReturnhtml");
versucht dqas Skript auf die Dankesseite umzuleiten. Leider funktioniert das nur, wenn vor dieser Zeile noch _KEIN_ Schnippselchen HTML ausgegeben wurde (wirklich kein einziges, nicht mal ein Space, oder ein Zeilenumbruch). PHP zählt hierbei nicht, da es nicht ausgegeben wird, sondern vom Server verarbeitet. Die Lösung wäre, den PHP Code (also alles ziwschen <?php und ?> direkt an den Anfang des Skriptes zu stellen (bitte aufpassen, dass wirklich keine Ausgabe vor dem <?php erfolgt, also auch kein Zeilenumbruch, aber ich wiederhole mich ;-)
Viel Erfolg
mbr
P.S.: Wie Ingo schon erwähnt hat, musst du natürlich ausserdem noch dein HTML in Ordnung bringen. Du hast (nur so zum Beispiel) einen Doctype miten im Dokument. Der gehört da wirklich nicht hin. Das hat zwar mit PHP nichts zu tun, ist aber trotzdem wichtig. Eigentlich kann man sich nur wundern, dass der Browser so einen Schmarrn (bitte entschuldige den Ausdruck, aber es muss einfach mal so klar gesagt werden) überhaupt vernünftig anzeigt und nicht völlig verwirrt das Handtuch wirft. Uff, genug der Belehrung. Wie gesagt: viel Erfolg und eine gute Nacht.
Hallo das ist doch mal eine Erklärung, ja nun weiß ich auch warum die Dankesseite nur erscheint wenn ich das Script direkt aufrufe und nicht das eingebundene. Habe das Php script eben hinter den html code gesetzt was dann wohl falsch war.
Kann ich das Script noch mal neu einbauen damit es richtig funktioniert, oder ist das nun für immer versiebt?
Zu dem Doctype, der gehört doch zu dem PHP code wenn der nun überfüssig ist wieso steht er dann drin? :
http://aktuell.de.selfhtml.org/artikel/php/form-mail/
Grüße
Hoppi
N'abend,
die "danke.html" mußt du natürlich erst mal erstellen. Die wird nicht automatisch generiert.
Dann fehlt da noch ein Backslash ...
$strMailtext .= $strName.$strDelimiter.$value."\n";
Außerdem tut's ein Leerzeichen auch ...
$strDelimiter = ": ";
Gruß Wastl