mail funktioniert nach include nicht mehr

maxwave

Grünschnabel
Ich hoffe ihr hattet alle erholsame Weihnachtsfeiertage. :)

Ich leider nicht, da ich leider die ganze Zeit ein Problem im Kopf hatte und heute morgen mir zumindest aufgefallen ist woran es liegt. :(

Ich habe ein einfaches Kontaktformular in PHP geschrieben. So funktioniert es, nur wenn ich es dann über include woanders einbinde, werden die Mails nicht mehr Versand, hat zufällig jemand eine Lösung für dieses Problem parat?
 
Hast du vielleicht die php datei mit dem eigentlichen Mailer nicht richtig verlinkt mit der Form-Datei

lg
 
Danke erstmal für die schnelle Antwort.

Also das Formular funktioniert und wird auch richtig ausgegeben, das einzige was nicht passiert ist, dass die EMails ankommen.
 
Code:
<?php
$strEmpfaenger = 'test@anonym.de';

$strFrom       = '"bla" <test@anonym.de>';

# Welchen Betreff sollen die Mails erhalten?
$strSubject    = 'Anmeldung';

$strReturnhtml = 'done.php';

$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;
}

?>
 
Hi,
lass doch mal eine Meldung von der "mail"-Datei ausgeben, wenn die E-Mail korrekt versendet wurde. Momentan kann ich mir nur vorstellen, dass deine "mail"-Datei nicht per include eingebunden wird und somit nicht ausgeführt wird.

Mein Gedanke ist sozusagen, dass dir bei deiner <form> der include Parameter fehlt.

Wenn es das nicht ist, wäre es hilfreich etwas mehr von deinem Include-Code und Formular zu sehen.

Gruß
Manuel
 
Hi,

ich habs mir mal ganz kurz angeschaut, aber hätte da einen vermutlich richtigen Vorschlag für dich.

Hier ein Ausschnitt aus deiner anmeldung.php den du bestimmt kennst:

HTML:
      <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
        <input type="hidden" name="sent" value=1>
        <table width="565" border="0">

Bei dem Attribute action fehlt noch etwas, damit die Seite auch wieder eingebunden wird. Ändere dies einfach wie folgt ab:

HTML:
      <form action="<?php print $_SERVER['PHP_SELF']; ?>?c=anmeldung" method="post">
        <input type="hidden" name="sent" value=1>
        <table width="565" border="0">

Probiers einfach mal aus. Good Luck!

Gruß
Manuel
 
jetzt bekomm ich diese fehlermeldung.

Warning: Cannot modify header information - headers already sent by (output started at /data/htdocs/web7/html/telesense/index.php:6) in /data/htdocs/web7/html/telesense/content/anmeldung.php on line 52
 
Abend,

also der gesuchte Fehler ist damit behoben. Du darfst jetzt in der anmeldung.php natürlich keine header() Anweisung mehr ausführen, weil ja bereits Informationen ausgegeben wurden.

Kommentier die header() Anweisung aus und leite auf eine andere Art weiter. Dann sollte es funktionieren.

Gruß
Manuel
 

Neue Beiträge

Zurück