PHP Formmailer Hilfe

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

PHP Formmailer Hilfe

Beitrag von bairan »

Ich habe jez neu mit Php angefangen und habe da mal ein Formmailer Script heruntergeladen und alles eingefüllt doch iergend wie will die ganze sache nicht Funktionieren! Kann mier jemand helfen? Die HTML Datei ist nicht im Gleichen Script enthalten das heisst es sind 2 Dateien. Ich habe alles ausgefüllt bei mir kommt aber immer die Meldung:
Das E-Mail konnte nicht versannt werden deine E-Mailadresse ist falsch. Ich weiss nicht aber ich habe meine e-mailadresse immer richtig eingegeben. Ich bin am verzweifeln.
Bitte helft mir hier noch die nachfolgenden angaben PHP und HTML
Hier die Php sachen hat geschrieben:Dieses Script kann in bestehende PHP-Seiten problemlos eingebaut werden.
Einfach alles markieren und kopieren. Aber denkt an die obenstehenden Bedingungen.
*/

/*Hier werden alle Daten eingegeben*/
/*An wen soll die Anfrage gerichtet sein?*/
$webmaster = "kontakt.lido@gmail.com";

/*Welche E-Mail-Adresse soll als Absender eingegeben werden?*/
$absender = "webmaster@domain.de(ich weiss nicht was das soll kann mir da auch wer helfen?)";


/*Wie soll die Mail aussehen, die an den webmaster gerichtet ist? Formularfelder werden wie folgt eingefügt "$NameDesFeldes"*/
/*Betreff*/ $betreffwebmaster = "Fommailer Nachricht";
/*Textkörper*/ $koerperwebmaster = "$name ($mail) hat über die Webseite von Domain.de folgende Nachricht hinterlassen:
$nachricht";

/*wie soll die Mail aussehen, die an den Absender gerichtet ist?*/
/*Betreff*/ $betreffabsender = "Antwort";
/*Textkörper*/ $koerperabsender = "herzlichen Dank für Deine Nachricht an das Team von www.habbo-lido.ch.vu Du hast folgende Nachricht versandt:\n $nachricht\n";

/*Welche Fehlermeldung soll ausgegeben werden, wenn die E-Mail-Adresse falsch eingegeben wurde? Bitte mit HTML-Tags arbeiten,
es können auch Klassen für CSS zugewiesen werden*/
$mailfalsch = "<p class=ueber1>Fehler</p><p>Leider ist die E-Mail-Adresse falsch</p><p>Bitte kontrolliere noch einmal die Eingabe und sende das Formular erneut ab.";

/*Welche Fehlermeldung soll ausgegeben werden, wenn nicht alle Pflicht-Felder ausgefüllt sind?*/
$felderleer = "<p class=ueber1>Fehler</p><p>Die Nachricht konnte nicht versandt werden, da nicht alle Felder ausgefüllt wurden</p>";

/*Wie soll der Text aussehen, wenn die E-Mail versendet wurde?*/
$abgesandt = "<p class=ueber1>Danke,</p><p>wir haben die Nachricht versandt und werden uns evtl. noch einmal melden.</p>";

/*Sind alle Felder ausgefüllt? für jedes Feld das ausgefüllt sein muß, muß hier ein entsprechender Eintrag gemacht werden*/
if ($name == "(hier weiss ich au nicht was einfügen bite hier auch helfen" || $mail =="" || $nachricht =="")
/*##############################################################################
#Bitte ab hier nichts mehr ändern. Alle Angaben sind im oberen Teil zu machen#
##############################################################################*/
{
/*nein*/
echo "$felderleer";
}
else
{
/*ja*/
/*Ist die E-Mail-Adresse richtig eingegeben?*/
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$", $mail))
{
/*E-Mail-Adresse ist richtig*/
mail("$webmaster","$betreffwebmaster","$koerperwebmaster\n","FROM: $absender\n");

/*Soll der Absender eine Kopie erhalten?*/
if ($kopie == "ja")
{
mail("$mail","$betreffabsender","$koerperabsender","FROM: $absender\n");
echo "$abgesandt";
}
else
{
echo "$abgesandt";
}
}
else
{
/*nein*/
echo "$mailfalsch";
}
}
?>
hier de html datei hat geschrieben:<html>
<head>
<title>Kontaktformular</title>
<link rel="stylesheet" href="layout.css" type="text/css">
</head>
<body>
<p class="ueber1">Kontakt</p>
<center><form name="form" action="danke.php" method="post"> <!--danke.php ist die Datei, die nach dem Absenden aufgerufen wird und dafür sorgt dass die Daten versendet werden -->
<table witdh=100%>
<tr>
<td><p>Name:<font color=blue>*</font></td>
<td><br></td>
<td><input type="text" name="name" size="40"></td>
</tr>
<tr>
<td><p>E-Mail-Adresse:<font color=blue>*</font></td>
<td><br></td>
<td><input type="text" name="mail" size="40"></td>
</tr>
<tr>
<td><p>Ihre Nachricht:<font color=blue>*</font></td>
<td><br></td>
<td><textarea name="nachricht" rows="5" cols="30"></textarea></td>
</tr>
<tr>
<td colspan=3<p>Möchtest Du eine Kopie dieser Nachricht erhalten?</td>
</tr>
<tr>
<td><input type=radio name=kopie value=ja checked>ja</td>
<td><br></td>
<td><input type=radio name=kopie value=nein>nein</td>
</tr>
<tr>
<td colspan=2><br></td>
<td><center><input type="submit" value="Abschicken"> <input type="reset" value="Daten löschen"></center></td>
</tr>
</table></form>
<center>Oder schickt eine Mail an <a class=link href="mailto:webmaster@domain.de">webmaster@domain.de</a>
</body>
</html>

Schon im Voraus herzlichen dank!

Mfg bairan
Zuletzt geändert von bairan am 12.08.2006 21:31, insgesamt 1-mal geändert.
Benutzeravatar
oconner
Mitglied
Beiträge: 345
Registriert: 09.02.2006 22:29
Wohnort: Siegsdorf

Beitrag von oconner »

Hallo bairan,

erstmal ein gut gemeinter Rat. Änder den Titel, sonst wird dein Beitrag hier geschlossen. Denke immer daran das andere Leute die das gleiche Problem haben dein Thema nur leicht finden können wenn es einen Titel hat der etwas bessa passt. 8)

Zu deinem Problem.

Hast du mal die Seite zum verlinken das ich mal selber Testen kann. Hab auf anhieb beim durchschauen nicht Fehler entdekt. Aber wenn du dich wirklich mit php befassen willst ist es nicht Sinn und zweck sich scripts runter zu laden, sondern erstmal Schritt für Schritt ein paar Tutorials durchzugehen.

finde

Code: Alles auswählen

if ($name == "(hier weiss ich au nicht was einfügen bite hier auch helfen" || $mail =="" || $nachricht =="") 
und ersetze mit

Code: Alles auswählen

if ($name == "" || $mail =="" || $nachricht =="") 
hier kommt in die Anführungszeichen auch nix rein, weil überprüft wird ob die Felder leer sind. :wink:
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

Beitrag von bairan »

Ach so ist das da kommt gar nichts rein^^

ja ich habe es mal auf meinen server geladen auch zum test!

Habe jez den fehler verbessert den du gesag hast jdoch jez kommt eine andere meldung nicht die mit dem e-mail sondern:

Fehler

Die Nachricht konnte nicht versandt werden, da nicht alle Felder ausgefüllt wurden
Hier noch dein Link probier es selber aus und lies nochmal das Scribt druch bitte

http://habbo-lido.pytalhost.com/test/kontakt.html


Mfg bairan
Benutzeravatar
oconner
Mitglied
Beiträge: 345
Registriert: 09.02.2006 22:29
Wohnort: Siegsdorf

Beitrag von oconner »

hm...

das script läuft sowieso ohne post oder get variablen. und das ist meines wissens nicht sehr sicher.

Vielleicht. versuchst du es mal mit meinem script hier das enthält zwar nur das nötigste, aber man kann es ja noch ausbauen.

Auf jeden Fall kann sein das dein server die Funktion das Post Variablen dierkt übertragen werden nicht eingeschaltet hat. (weis gerade nicht wie diese heißt)

auf jeden fall kannste mal noch versuchen hier

Code: Alles auswählen

$absender = "webmaster@domain.de(ich weiss nicht was das soll kann mir da auch wer helfen?)"; 
auch deine email adresse anzugeben.[/url]
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

also mal hier html mit " überall... ersetze dein html mit dem hier:

Code: Alles auswählen

<html> 
  <head> 
    <title>Kontaktformular</title> 
    <link rel="stylesheet" href="layout.css" type="text/css"> 
  </head> 
  <body> 
<p class="ueber1">Kontakt</p> 
<center><form name="form" action="danke.php" method="post"> <!--danke.php ist die Datei, die nach dem Absenden aufgerufen wird und dafür sorgt dass die Daten versendet werden --> 
<table witdh=100%> 
  <tr> 
    <td><p>Name:<font color="blue">*</font></td> 
    <td><br></td> 
    <td><input type="text" name="name" size="40"></td> 
  </tr> 
  <tr> 
    <td><p>E-Mail-Adresse:<font color="blue">*</font></td> 
    <td><br></td> 
    <td><input type="text" name="mail" size="40"></td> 
  </tr> 
  <tr> 
    <td><p>Ihre Nachricht:<font color="blue">*</font></td> 
    <td><br></td> 
    <td><textarea name="nachricht" rows="5" cols="30"></textarea></td> 
  </tr> 
  <tr> 
    <td colspan=3<p>Möchtest Du eine Kopie dieser Nachricht erhalten?</td> 
  </tr> 
  <tr> 
    <td><input type="radio" name="kopie" value="ja" checked="checked">ja</td> 
    <td><br></td> 
    <td><input type="radio" name="kopie" value="nein">nein</td> 
  </tr> 
  <tr> 
    <td colspan="2"><br></td> 
    <td><center><input type="submit" value="Abschicken"> <input type="reset" value="Daten löschen"></center></td> 
  </tr> 
  </table>
  </form> 
<center>Oder schickt eine Mail an <a class="link" href="mailto:webmaster@domain.de">webmaster@domain.de</a> 
</body> 
</html>
nun die php datei ersetzen, nicht wundern wenn sie etwas kleiner ist, ich habe die meisten kommentare rausgenommen und bessere hinzugefügt:

Code: Alles auswählen

<?PHP
$webmaster = "kontakt.lido@gmail.com"; // Hier kommt deine E-mail rein

$absender = "FROM: webmaster@domain.de";  // Hier kannst du z.b hp@meineseite.de machen ist eigenlich egal



$betreffwebmaster = "Fommailer Nachricht"; // das ist der betreff der mail

// So sieht sp&auml;ter die E-mail aus die du bekommst
$koerperwebmaster = $_POST['name']", '".$_POST['$mail']."' hat über die Webseite von Domain.de folgende Nachricht hinterlassen: '".$_POST['nachricht']."'"; 


$betreffabsender = "Antwort";   // hier kommt der betreff rein der bei der automatischen antwort ershceinen soll

// So sieht der inhalt der e-mail aus die die automatische antwort hat
$koerperabsender = "herzlichen Dank für Deine Nachricht an das Team von www.habbo-lido.ch.vu Du hast folgende Nachricht versandt:\n '".$_POST['nachricht']."'\n"; 

/*Welche Fehlermeldung soll ausgegeben werden, wenn die E-Mail-Adresse falsch eingegeben wurde? Bitte mit HTML-Tags arbeiten, 
es können auch Klassen für CSS zugewiesen werden*/ 
$mailfalsch = "<p class=ueber1>Fehler</p><p>Leider ist die E-Mail-Adresse falsch</p><p>Bitte kontrolliere noch einmal die Eingabe und sende das Formular erneut ab."; 

/*Welche Fehlermeldung soll ausgegeben werden, wenn nicht alle Pflicht-Felder ausgefüllt sind?*/ 
$felderleer = "<p class=ueber1>Fehler</p><p>Die Nachricht konnte nicht versandt werden, da nicht alle Felder ausgefüllt wurden</p>"; 

/*Wie soll der Text aussehen, wenn die E-Mail versendet wurde?*/ 
$abgesandt = "<p class=ueber1>Danke,</p><p>wir haben die Nachricht versandt und werden uns evtl. noch einmal melden.</p>"; 

/*Sind alle Felder ausgefüllt? für jedes Feld das ausgefüllt sein muß, muß hier ein entsprechender Eintrag gemacht werden*/ 
if (empty($_POST['name']) || empty($_POST['mail']) || empty($_POST['nachricht'])) 
/*############################################################################## 
#Bitte ab hier nichts mehr ändern. Alle Angaben sind im oberen Teil zu machen# 
##############################################################################*/ 
{ 
  /*nein*/ 
  echo $felderleer; 
} 
else 
{ 
  /*ja*/ 
  /*Ist die E-Mail-Adresse richtig eingegeben?*/ 
  if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$", $mail)) 
  { 
    /*E-Mail-Adresse ist richtig*/ 
    mail($webmaster,$betreffwebmaster,$koerperwebmaster,$absender); 

   /*Soll der Absender eine Kopie erhalten?*/ 
   if ($_POST['kopie'] == "ja") 
   { 
    mail($mail,$betreffabsender,$koerperabsender,$absender); 
    echo $abgesandt; 
    } 
    else 
    { 
    echo $abgesandt; 
    } 
  } 
  else 
  { 
    /*nein*/ 
    echo $mailfalsch; 
  } 
} 
?> 
das sollte nun funktionieren wenn nicht schreib was nicht geht, und wenn es einen fehler gibt dann schreib den dazu.

@oconner, meinst du vllt register_globals?
Bitte keine Anfragen mehr per PN
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
Benutzeravatar
oconner
Mitglied
Beiträge: 345
Registriert: 09.02.2006 22:29
Wohnort: Siegsdorf

Beitrag von oconner »

witzigerkiller hat geschrieben:@oconner, meinst du vllt register_globals?
jap, gnau das meinte ich. :wink:
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

Beitrag von bairan »

So danke fürs erste wenigstens meldet er jez keine fehler mehr habe jez abaer das problem das ich das E-Mail nich bekomme irgendwie gehen die Daten unterwegs verloren! Muss mann beim E-Mail oder beim Hoster irgendwas einstellen?
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

hab noch 2 post veriablen vergessen, versuch mal so, sonst müssen wir mal fehlerausgabe betreiben.

Code: Alles auswählen

<?PHP 
$webmaster = "kontakt.lido@gmail.com"; // Hier kommt deine E-mail rein 

$absender = "FROM: webmaster@domain.de";  // Hier kannst du z.b hp@meineseite.de machen ist eigenlich egal 



$betreffwebmaster = "Fommailer Nachricht"; // das ist der betreff der mail 

// So sieht sp&auml;ter die E-mail aus die du bekommst 
$koerperwebmaster = $_POST['name']", '".$_POST['$mail']."' hat über die Webseite von Domain.de folgende Nachricht hinterlassen: '".$_POST['nachricht']."'"; 


$betreffabsender = "Antwort";   // hier kommt der betreff rein der bei der automatischen antwort ershceinen soll 

// So sieht der inhalt der e-mail aus die die automatische antwort hat 
$koerperabsender = "herzlichen Dank für Deine Nachricht an das Team von www.habbo-lido.ch.vu Du hast folgende Nachricht versandt:\n '".$_POST['nachricht']."'\n"; 

/*Welche Fehlermeldung soll ausgegeben werden, wenn die E-Mail-Adresse falsch eingegeben wurde? Bitte mit HTML-Tags arbeiten, 
es können auch Klassen für CSS zugewiesen werden*/ 
$mailfalsch = "<p class=ueber1>Fehler</p><p>Leider ist die E-Mail-Adresse falsch</p><p>Bitte kontrolliere noch einmal die Eingabe und sende das Formular erneut ab."; 

/*Welche Fehlermeldung soll ausgegeben werden, wenn nicht alle Pflicht-Felder ausgefüllt sind?*/ 
$felderleer = "<p class=ueber1>Fehler</p><p>Die Nachricht konnte nicht versandt werden, da nicht alle Felder ausgefüllt wurden</p>"; 

/*Wie soll der Text aussehen, wenn die E-Mail versendet wurde?*/ 
$abgesandt = "<p class=ueber1>Danke,</p><p>wir haben die Nachricht versandt und werden uns evtl. noch einmal melden.</p>"; 

/*Sind alle Felder ausgefüllt? für jedes Feld das ausgefüllt sein muß, muß hier ein entsprechender Eintrag gemacht werden*/ 
if (empty($_POST['name']) || empty($_POST['mail']) || empty($_POST['nachricht'])) 
/*############################################################################## 
#Bitte ab hier nichts mehr ändern. Alle Angaben sind im oberen Teil zu machen# 
##############################################################################*/ 
{ 
  /*nein*/ 
  echo $felderleer; 
} 
else 
{ 
  /*ja*/ 
  /*Ist die E-Mail-Adresse richtig eingegeben?*/ 
  if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$", $_POST['mail'])) 
  { 
    /*E-Mail-Adresse ist richtig*/ 
    mail($webmaster,$betreffwebmaster,$koerperwebmaster,$absender); 

   /*Soll der Absender eine Kopie erhalten?*/ 
   if ($_POST['kopie'] == "ja") 
   { 
    mail($_POST['mail'],$betreffabsender,$koerperabsender,$absender); 
    echo $abgesandt; 
    } 
    else 
    { 
    echo $abgesandt; 
    } 
  } 
  else 
  { 
    /*nein*/ 
    echo $mailfalsch; 
  } 
} 
?>
Bitte keine Anfragen mehr per PN
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

Beitrag von bairan »

Jez melded das Script eien Fehler!



Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /srv/www/httpd/phost/h/com/pytalhost/habbo-lido/web/test/danke.php on line 11




Hier ist dann die Linie 11 im Formular(onl line11)


// So sieht sp&auml;ter die E-mail aus die du bekommst
$koerperwebmaster = $_POST['name']", '".$_POST['$mail']."' hat über die Webseite von Domain.de folgende Nachricht hinterlassen: '".$_POST['nachricht']."'";
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

ach warte mal kurz so 15 min ich code dir schnell eine mailfunktion die besser ist... mit so nem geschnaksel ohne richtige fehlerimplemention ist das nix.
Bitte keine Anfragen mehr per PN
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
Antworten

Zurück zu „Coding & Technik“