• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

probleme mit formmail skript

leeenux

Member
hi,

habe hier ein formailskript das auch funktioniert. nun habe ich selbst noch die zeile Geburtsdataum "datum" eingefügt welches aber nicht in der mail erscheint die ich bekomme. vielleicht ist es nur ne kleinigkeit die php profis sofort sehen ;-)


mail($sendto,$subject,$_REQUEST['message'],$header);
 

Dr. Glastonbury

Advanced Hacker
Hi,
nachdem du bei diesem Befehl:
Code:
mail($sendto,$subject,$_REQUEST['message'],$header);
ja nirgends das Geburtsdatum rein schreibst, wird es auch nicht geschickt...

Probier die Zeile mal so:
Code:
mail($sendto,$subject,$_REQUEST['message']."\nGeburtsdatum: ".$_REQUEST['datum'],$header);

Ansonsten verschieb ich das mal ins Programmierung-Forum, weil es ja kein Problem mit dem Apache oder der Konfiguration von PHP ist ;)

edit: Was genau sollen eigentlich die beiden Zeilen bewirken?
Code:
?>
<?
<- die kannste getrost rausschmeißen ^^
 
OP
L

leeenux

Member
klasse, so funktionierts! nur kommt das datum nun unter der message...
wie muss ich vorgehen wenn ich noch mehr felder einfügen möchte?
 

Dr. Glastonbury

Advanced Hacker
Wenn das Datum VOR der Nachricht kommen soll, dann musste eben die Reihenfolge vertauschen:
Code:
mail($sendto,$subject,"Geburtsdatum: ".$_REQUEST['datum']."\n".$_REQUEST['message'],$header);

Du solltest aber dem Script auch noch eine IP-Sperre verpassen, sodass pro IP maximal zwei oder einmal pro Tag eine Mail versendet werden kann -> denn sonst kann man mit sonem Script einigen Schaden anrichten, wenn einer z.B. automatisiert tausende Mails abschickt.

Für weitere Felder würde ich so vorgehen:
Code:
$message = "Text für Feld1: ".$_REQUEST['Feld1']."\n";
$message .= "Text für Feld2: ".$_REQUEST['Feld2']."\n";
$message .= "Text für Feld3: ".$_REQUEST['Feld3']."\n";
...
mail($sendto,$subject,$message,$header);
Jeder \n macht dabei nen Zeilenumbruch -> wenn du also größere absätze haben willst, dann kannst du auch einfach mehrere \n hintereinander setzen. N tabulator geht auch: \t schau dich mal bei google um, da kannst du alle diese Befehle finden (wenn du sie nicht eh schon kennst) ;)
 
OP
L

leeenux

Member
hab da noch eine frage. ist es möglich das hier automatisch eine mail
an die adresse geschickt wird die im kontaktformular eingegeben wird?

habs mal so versucht, tut aber nicht...

Code:
<?
    }

    if ($_REQUEST['action']=="smail")
    {
      echo "<br/>Vielen Dank für Ihre Nachricht.<br/><br/>Wir werden versuchen so schnell, wie möglich darauf einzugehen.\n";
      echo "\n";
      $header= "From: ".$_REQUEST['email']."\r\n";
      $subject = "[Kontakt] ".$REQUEST['subject'];
      $sendto = "xxx";                        // eigene Mailadresse eingeben
      mail($sendto,$subject,"\n\nName: ".$_REQUEST['sender']."\n\nE-Mail: ".$_REQUEST['email']."\n\nNachricht: ".$_REQUEST['message'],$header);
	//Datei die als Antwort zurückgeschickt wird
$antworttext= "php_formail.txt";
  // Bestätigungsmail für den Interessenten
$datei = fopen( $antworttext, "r" );
$bestatigung = fread( $datei, filesize( $antworttext ) );
fclose( $datei ); 
mail( $email, "Danke fuer Ihre Anfrage", $bestatigung, "From: $sendto");
}
?>
 

Dr. Glastonbury

Advanced Hacker
Nja,
$email solltest du schon irgendwo festlegen... z.B. mit $_REQUEST['subject'] wenn ich das Feld richtig verstanden hab ;)
 
OP
L

leeenux

Member
naja, php ist einfach nicht meine welt...
das einfachste ist wohl dem "ausfüllenden" eine kopie der mail zukommen zu lassen. geht es nicht auch einfacher wenn ich nur schreiben möchte das die daten eingegangen sind und bearbeitet werden?
 
Oben