mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 20:16 Benutzername: Passwort: Auto-Login

Thema: Problem mit Formmailer vom 19.01.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Problem mit Formmailer
Seite: 1, 2  Weiter
Autor Nachricht
Bash
Threadersteller

Dabei seit: 27.02.2005
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Fr 19.01.2007 10:56
Titel

Problem mit Formmailer

Antworten mit Zitat Zum Seitenanfang

Hi Leute,

ich bin PHP-Einsteiger und hab mit dem Buch "PHP 5 echt einfach" vom Franzis-Verlag mir ein Formmailer für ne Homepage erstellt, welcher mir Daten wie Name, email-adresse und eine Nachricht an die unter $recipient angegebene email-Adresse schicken soll.

Hier könnt ihr euch die PHP-Datei auf dem Server mal anschauen:
http://web30.webbox808.server-home.net/htmldocs/anfrage.php
Und hier habt ihr die Datei um euch den Code anzuschauen:
http://web30.webbox808.server-home.net/formmailer.zip

Die Funktionalität:

Die derzeitige Funktionalität sieht so aus, dass ich die Felder
ausfüllen kann aber wenn ich dann auf "Absenden" klicke, wird die Seite nur neu geladen und die Felder sind wieder leer. Da sollte dann eigentlich eine Meldung kommen, dass die Daten abgeschickt
wurden, usw...

Ich sollte dann eine email mit den Daten die eingetragen wurden erhalten:

Code:
      $recipient="sven.leonhardt@googlemail.com";
      $subject="Anfrage auf ihr-stukkateur.com";
      $header="From: " . $email . "\r\n";
      $mail_body ="Das Kontakt-Formular wurde am " . date("d.m.Y") . " um " . date("H:i") . "Uhr ausgefüllt.\n";
      $mail_body.="Folgende Daten wurden eingetragen:\n\n";
      $mail_body.="Name: " . $name . "\n";
      $mail_body.="eMail: " . $email . "\n\n";
      $mail_body.="Message:\n";
      $mail_body.=$anfrage . "\n\n ---- Ende der automatisch generierten eMail ----";

      mail($recipient,$subject,$mail_body,$header);


Leider erhalte ich im Moment nur ne Mail mit leeren Feldern.

Wenn jemand ein Feld auslässt oder falsch ausfüllt sollte auch eine
Meldung kommen:

Code:
      if(strlen($name)<3){
      $error_msg="Bitte geben Sie Ihren Namen an.<br />";
      }
      if(!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$",$email)){
      $error_msg.="Bitte geben Sie eine gültige eMail-Adresse an.<br />";
      }
      if(strlen($anfrage)<3){
      $error_msg.="Bitte geben Sie eine Nachricht ein.<br />";
      }
      if(isset($error_msg)){
      //Eines der Felder wurde nicht korrekt ausgefüllt
      echo "Ihre Anfrage konnte aus folgenden Gründen leider nicht bearbeitet werden:<br /><br />";
      echo $error_msg;
      echo "<br />Bitte klicken Sie auf <a href=javascript:history.back(1)>zurück</a> und fülle alle Felder aus.";


Funktioniert leider auch nicht...

Hoffe, jemand kann mir da weiterhelfen.

Gruß

Bash
  View user's profile Private Nachricht senden
Kraat

Dabei seit: 05.10.2006
Ort: Köln
Alter: 42
Geschlecht: Männlich
Verfasst Fr 19.01.2007 11:03
Titel

Antworten mit Zitat Zum Seitenanfang

bei dir ist register_globals auf off gestellt, was auch richtig so ist. Leider ist dein Buch nicht nach den gängigen Richtlininen geschrieben.

Du musts mit $_POST und $_GET Arbeiten somit deine neue Source

Code:

      if(strlen($_POST['name'])<3){
      $error_msg="Bitte geben Sie Ihren Namen an.<br />";
      }
      if(!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$",$_POST['email'])){
      $error_msg.="Bitte geben Sie eine gültige eMail-Adresse an.<br />";
      }
      if(strlen($_POST['anfrage'])<3){
      $error_msg.="Bitte geben Sie eine Nachricht ein.<br />";
      }
      if(isset($error_msg)){
      //Eines der Felder wurde nicht korrekt ausgefüllt
      echo "Ihre Anfrage konnte aus folgenden Gründen leider nicht bearbeitet werden:<br /><br />";
      echo $error_msg;
      echo "<br />Bitte klicken Sie auf <a href=javascript:history.back(1)>zurück</a> und fülle alle Felder aus.";


Müsste klappen ;=)
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Bash
Threadersteller

Dabei seit: 27.02.2005
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Fr 19.01.2007 11:18
Titel

Antworten mit Zitat Zum Seitenanfang

hm, muss ich noch was ändern, was du nicht in deinem Code aufgeführt hast?

Ich hab jetzt die $wert in $_POST['wert'] umgeändert, aber es hat nichts gebracht.
muss ich irgendwo noch $_GET einsetzten?

Ach ja, ne email bekomme ich auch nicht mehr, aber ich glaube das war schon vor dieser letzten Änderung so, wenn ich mich recht erinnere...
  View user's profile Private Nachricht senden
Kraat

Dabei seit: 05.10.2006
Ort: Köln
Alter: 42
Geschlecht: Männlich
Verfasst Fr 19.01.2007 11:29
Titel

Antworten mit Zitat Zum Seitenanfang

Wie hast du denn die Form Method eingestellt method = "POST" oder method ="GET" ??

*zwinker*
  View user's profile Private Nachricht senden
Bash
Threadersteller

Dabei seit: 27.02.2005
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Fr 19.01.2007 11:30
Titel

Antworten mit Zitat Zum Seitenanfang

method="POST"
  View user's profile Private Nachricht senden
Kraat

Dabei seit: 05.10.2006
Ort: Köln
Alter: 42
Geschlecht: Männlich
Verfasst Fr 19.01.2007 11:39
Titel

Antworten mit Zitat Zum Seitenanfang

Dann poste mal bitte deine komplette Anweisung inkl. der Mail Funktion
// Bei einigen Hostern ist es erfoderlich das bei Mail der fünfte Parameter angegeben werden muss.
-f email@aufdeinemsystem.tld *zwinker*


Zuletzt bearbeitet von Kraat am Fr 19.01.2007 11:40, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Bash
Threadersteller

Dabei seit: 27.02.2005
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Fr 19.01.2007 11:43
Titel

Antworten mit Zitat Zum Seitenanfang

Die steht zwar schon in der Zip-Datei von oben, aber ich kanns auch nochmal posten *zwinker*

Code:

<?php
if(isset($_POST['Submit'])){

//HTML- und PHP-Tags aus den Eingabefeldern entfernen
$name=strip_tags($_POST['name']);
$email=strip_tags($_POST['email']);
$anfrage=strip_tags($_POST['anfrage']);
                              
//Pflichtangaben
if(strlen($_POST['name'])<3){
$error_msg="Bitten geben Sie Ihren Namen an.<br />";
}
if(!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$",$_POST['email'])){
$error_msg.="Bitte geben Sie eine gültige eMail-Adresse an.<br />";
}
if(strlen($_POST['anfrage'])<3){
$error_msg.="Bitten geben Sie eine Nachricht an.<br />";
}
if(isset($error_msg)){

//Eines der Felder wurde nicht korrekt ausgefüllt
echo "Ihre Anfrage konnte aus folgenden Gründen leider nicht bearbeitet werden:<br /><br />";
echo $error_msg;
echo "<br />Bitte klicken Sie auf <a href=javascript:history.back(1)>zurück</a> und füllen Sie alle Felder aus.";

}else{
                              
//Formular ausgefüllt - eMail generieren
$recipient="sven.leonhardt@googlemail.com";
$subject="Anfrage von ihr-stukkateur.com";
$header="From: " . $email . "\r\n";
$mail_body ="Das Anfrage-Formular wurde am " . date("d.m.Y") . " um " . date("H:i") . "Uhr ausgefüllt.\n";
$mail_body.="Folgende Daten wurden eingetragen:\n\n";
$mail_body.="Name: " . $name . "\n";
$mail_body.="E-Mail: " . $email . "\n";
$mail_body.="Nachricht:\n";
$mail_body.=$anfrage . "\n\n ---- Ende der automatisch generierten eMail ----";
                              
mail($recipient,$subject,$mail_body,$header);
                           
//Formular ausgeführt - Meldung ausgeben
echo "Ihre Nachricht wurder weitergeleitet.";
}

}else{

//Formular noch nicht ausgefüllt - Formular anzeigen
?>
Benutzen Sie das folgende Formular um Kontakt mit uns aufzunehmen:<br /><br />
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">
<table width="430px" border="0" cellspacing="2" cellpadding="2">
   <tr>
      <td width="113px">Ihr Name:</td>
      <td width="232px">
         <input type="text" name="name" size="37" />
      </td>
   </tr>
   <tr>
      <td width="113px">Ihre eMail-Adresse:</td>
      <td width="232px">
         <input type="text" name="email" size="37" />
      </td>
   </tr>
   <tr>
      <td width="113px">Ihre Nachricht:</td>
      <td width="232px">
         <textarea name="anfrage" cols="28" rows="5"></textarea>
      </td>
   </tr>
   <tr>
      <td width="113px"></td>
      <td width="232px"><input name="submit" type="Submit" value="Abschicken" /></td>
   </tr>
</table>
</form>
<?php
}
?>
  View user's profile Private Nachricht senden
baskoralle

Dabei seit: 17.02.2006
Ort: hamburch
Alter: 49
Geschlecht: Männlich
Verfasst Fr 19.01.2007 11:48
Titel

Antworten mit Zitat Zum Seitenanfang

if(isset($_POST['Submit'])){

müsste `Submit ` nicht kleingeschrieben sein
  View user's profile Private Nachricht senden
 
Ähnliche Themen Problem mit Formmailer
[PHP] FormMailer Problem!
Formmailer-Problem PHP
Problem mit Formmailer [solved]
Formmailer-Problem-neues problem
Formmailer - Problem mit E-Mail Adresse
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.