mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 09:25 Benutzername: Passwort: Auto-Login

Thema: form mailer problem ? vom 10.06.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> form mailer problem ?
Autor Nachricht
ma1973
Threadersteller

Dabei seit: 17.02.2006
Ort: borken
Alter: 50
Geschlecht: Männlich
Verfasst So 10.06.2007 20:19
Titel

form mailer problem ?

Antworten mit Zitat Zum Seitenanfang

mmh *Schnief* ich schwör das hat die ganze zeit
geklappt aber nun ...

ich habe ein Formular, welches kurz die
Inhalte checkt und anschließend soll das
ganze zu mir ... aber da kommt nix an!!

Code:

..
$empfaenger = "muster@muster.de";
$betreff = "testmail";
$mailtext = "Name: $name
Anrede: $anrede
Vorname: $vorname
Strasse: $strasse
PLZ/Ort: $plz $ort
eMail: $email";
if(empty($anrede) || empty($name) || empty($vorname) ||
empty($strasse) || empty($plz) || empty($ort) ||  empty($email) )
{
echo("Danke und Tschüss!!!");
}
else
{
mail("$empfaenger", "$betreff", "$mailtext", "From: $email");
echo("Vielen Dank für Ihre Unterstützung. Die Angaben wurden
soeben erfolgreich verschickt.
   ");
}
?>
..


was ist hier falsch?!
HILFE
  View user's profile Private Nachricht senden
SPL1FFSTAR

Dabei seit: 04.06.2007
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 10.06.2007 20:50
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
$empfaenger = "muster@muster.de";
$betreff = "testmail";
$mailtext = "Name: ".$name."
Anrede: ".$anrede."
Vorname: ".$vorname."
Strasse: ".$strasse."
PLZ/Ort: ".$plz.", ".$ort."
eMail: ".$email."";
if(empty($anrede) || empty($name) || empty($vorname) ||
empty($strasse) || empty($plz) || empty($ort) ||  empty($email) )
{
echo("Danke und Tschüss!!!");
}
else
{
mail($empfaenger, $betreff, $mailtext, "From: ".$email."");
echo("Vielen Dank für Ihre Unterstützung. Die Angaben wurden
soeben erfolgreich verschickt.
   ");
}
?>

dazu kommt noch das die variablen aus dem formular via. get oder post übergeben werden, also $_GET['bla'] oder $_POST['bla']. davon sehe ich auch nichts, aber das überlasse ich dann mal dir


Zuletzt bearbeitet von SPL1FFSTAR am So 10.06.2007 20:51, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst So 10.06.2007 22:01
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
aber da kommt nix an!!

Was heißt das?

Bis wohin wird dein Script denn ausgeführt?
Setze da an verschiedene Stellen mal ein echo"1"; echo"2"; usw.. Dann kannst du erkennen, bis wohin dein Code ausgeführt wird und wo es nicht mehr weitergeht.

Ich schätze mal, es hakt in der ersten if-Abfrage.
Code:
if(empty($anrede) ...

Vermutlich gibt es $anrede überhaupt nicht.
Schätzungsweise müßte deine Variable $_POST['anrede'] oder $_GET['anrede'] heißen.
Das gleiche gilt auch für die folgenden Variablen.

So wie du das machst, kann das Script nur dann funktionieren, wenn dein Hoster in der php.ini die Einstellung register_globals auf on gesetzt hat.
Und das macht nicht jeder Hoster, weil das ziemlich auf Kosten der Sicherheit geht...

Und ansonsten sieht dein Script eher nach Spamschleuder aus, als nach Mailscript.
Alle Daten, die von außen kommen, müssen grundsätzlich als "böse" angesehen werden und ggf. bereinigt werden.
Ansonsten könnte man deinem Script noch weiter Mailheader, CC-, BCC-Felder unterjubeln.
Sieh beispielsweise zu, daß du alle Zeilenumbrüche aus den Eingaben (mit Ausnahme des eigentlichen Mailtextes) rausfilterst. (Mailheader werden durch Zeilenumbrüche voneinander getrennt.)
Siehe auch hier: http://de.wikipedia.org/wiki/E-Mail-Injektion

Außerdem kannst du der mail()-Funktion noch zusätzliche Header übergeben und diese Option solltest du auch in jedem Fall nutzen.
Wenn du möchtest, daß Umlaute und Sonderzeichen in deiner Mail korrekt angezeigt werden, dann solltest du zumindest das verwendete Charset mit angeben.
  View user's profile Private Nachricht senden
ma1973
Threadersteller

Dabei seit: 17.02.2006
Ort: borken
Alter: 50
Geschlecht: Männlich
Verfasst Mo 11.06.2007 08:16
Titel

Antworten mit Zitat Zum Seitenanfang

Lächel yo danke an euch beiden,

ich denke ich hab was gefunden ... aber
sobald ich alle Daten zusammen habe erfolgt eine
Fehlermeldung:

Meine Fehlermeldung ist die:


Code:

..
Warning: Cannot modify header information - headers already sent by (output started at /homepages/4/test/htdocs/muster/inc/header.inc.php:4) in /homepages/4/test/htdocs/muster/inc/module/mail_spam_schutz.php on line 7
..



das ist der script:



Code:
..
// Wenn alle Felder ausgefuellt wurden und der Captcha
stimmt, wird ein Cookie gesetzt

if($_GET['action'] != "" && !empty($_POST['name'])
&& !empty($_POST['vorname'])
&& !empty($_POST['strasse'])
&& !empty($_POST['plz'])
&& !empty($_POST['ort'])
&&  !empty($_POST['email'])
&& ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['email']))
{
setcookie("spam_protection", "spam_protection", time()+500);
}


?>

<?php

// Wenn das Formular gesendet werden soll...
if($_GET['action'] == "send")
{

// ...der Cookie gegen Spam nicht gesetzt ist...
if($_COOKIE["spam_protection"] != "spam_protection")
{

}


// ...und die eingegeben E-Mail Adresse in Wahrheit keine ist...
if(!ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*
@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['email']))
{

// ...dann eine Fehlermeldung ausgeben!
echo "<p><span class='info_link'>Die eingegebene
 E-Mail-Adresse ist ung&uuml;ltig!</span></p>";

}

// Ansonsten, wenn die eingegebene E-Mail Adresse
auch wirklich eine ist...
if(ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*
@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['email']))
{

// ...und kein Feld leer ist...
if(!empty($_POST['name'])
&& !empty($_POST['vorname'])
&& !empty($_POST['strasse'])
&& !empty($_POST['plz'])
&& !empty($_POST['ort'])
&& !empty($_POST['email']) && !empty($_POST['message']))
{

// dann den ganzen Muell von Spambots oder auch menschlichen Spammern entfernen...
$name          = nl2br(stripslashes(htmlspecialchars($_POST['name'])));
$IP            = getenv("REMOTE_ADDR");

$absender      = preg_replace( "/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im", "", $_POST['email'] );
$absender      = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $absender );

$nachricht     = nl2br(stripslashes(htmlspecialchars($_POST['message'])));

// ...die Nachricht, die Sie erhalten moechten, wenn eine neue Nachricht an
Sie versandt wurde, definieren...
$mailnachricht = "Hallo!\n\nEs ist eine neue
Nachricht fuer Sie eingetroffen:\n\n---------------------------------------------
\n\nName:\n$name\n\nIP:\n$IP\n\nE-Mail:
\n$absender\n\nNachricht:\n$nachricht\n\n---------------------------------------------
\n\nSie koennen dem Absender der Nachricht direkt
antworten, indem Sie einfach auf diese E-Mail antworten.\n\nMfG";

// ...an Sie verschicken...
mail("muster@mustermann", "test", $mailnachricht, "From: $name <$absender>");

// ...und dem Benutzer sagen, dass alles glatt lief!
echo "<p><span class='info_link'>Vielen Dank für
Ihre Unterstützung. Die Angaben wurden soeben
erfolgreich verschickt.
</span></p>";

}

// Wenn nicht alle Felder ausgefuellt wurden, dann...
else

{

// eine Fehlermeldung ausgeben!
echo "<p><b>Bitte f&uuml;llen Sie alle Felder
aus!</b></p>";

}

}

}



?>
..


Zuletzt bearbeitet von ma1973 am Mo 11.06.2007 09:58, insgesamt 10-mal bearbeitet
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Mo 11.06.2007 22:41
Titel

Antworten mit Zitat Zum Seitenanfang

Das ist keine Fehlermeldung. Das ist nur ein Warning.
Ich weiß jetzt nicht, welche Funktion das Warning fabriziert.
Schau doch mal in die gemeldete Datei und poste den Code der entsprechenden Zeile.

Eventuell handelt es sich um die Zeile, wo du setcookie() aufrufst?
Cookies werden per HTTP-Header zum Client geschickt.
Die Header sind das erste, was gesendet wird.
Wenn bereits HTML-Code zum Browser geschickt wurde, dann wurden auch bereits Header versendet und setcookie(), session_start(), header() oder ähnliche Funktionen funktionieren nicht mehr.

Eventuell liegt es auch nur an einer Leerzeile.
Schau. Das hier würde funktionieren:
Code:
<?php
setcookie();
?>

Und das hier nicht:
Code:


<?php
setcookie();
?>

Im zweiten Fall stehen vor dem ersten PHP-Bereich zwei Leerzeilen.
Damit würden diese Leerzeilen zum Browser geschickt werden - und damit wurden dann auch bereits HTTP-Header versandt.
Ein erneutes Verschicken von Headern ist dann logischerweise nicht mehr möglich.
  View user's profile Private Nachricht senden
ma1973
Threadersteller

Dabei seit: 17.02.2006
Ort: borken
Alter: 50
Geschlecht: Männlich
Verfasst Mi 18.07.2007 14:17
Titel

Antworten mit Zitat Zum Seitenanfang

... ich komme nicht weiter ??? was ist
hier falsch ... *Schnief*

kann mir jemand helfen???
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst Mi 18.07.2007 14:58
Titel

Antworten mit Zitat Zum Seitenanfang

Nein man, schau endlich in die Doku!!!

Zuletzt bearbeitet von am Mi 18.07.2007 14:58, insgesamt 1-mal bearbeitet
 
 
Ähnliche Themen php form mailer 2 probleme
[gesucht] Form-Mailer für Anfänger
Mailer-Problem auf Kundenserver
problem mit <form> und suchfeld
Problem form-Tag im Popup Fenster?
[C4d] Eigene Form + Textur = Problem
Neues Thema eröffnen   Neue Antwort erstellen
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.