mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 03:10 Benutzername: Passwort: Auto-Login

Thema: Kontaktformular mit PHP vom 14.09.2009


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

Dabei seit: 20.06.2008
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 14.09.2009 15:18
Titel

Kontaktformular mit PHP

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen,
ich habe folgendes Problem. Bei folgendem PHP-Code handelt es sich um ein Kontaktformular mit Pflichtfeldern.
Mein Problem ist, dass die Emails trotz fehlender Eingaben und Fehlermeldung auf der Site immer noch an mich versendet werden. Was mache ich falsch???

Code:

<?php
//-->Seiteninformationen
$sitename="tester";
$siteurl="www.tester.de";
$site_email="info@tester.de";
$recipient="info@tester.de";

//-->IP-Check
$IP=$_SERVER['REMOTE_ADDR'];
$Referer=$_SERVER['HTTP_REFERER'];
$HOST=$_SERVER['HTTP_HOST'];
$UA=$_SERVER['HTTP_USER_AGENT'];
$zeit=date("m.d.Y H:i")." Uhr";

//-->Antwort an Absender
if (mail($_POST["email"], "$sitename bedankt sich fuer Ihre Nachricht auf $siteurl",
"Hallo ".$_POST["name"].",

Ihre Nachricht wurde erfolgreich an uns weitergeleitet.
Wir werden diese umgehend bearbeiten und uns mit Ihnen
in Verbindung setzen.

Viele Gruesse,
$sitename


Ihre Nachricht lautete:

".$_POST["nachricht"]."


Ansprechpartner: ".$_POST["name"]."
Firma: ".$_POST["firma"]."
Telefon: ".$_POST["telefon"]."
Betreff: ".$_POST["betreff"]."
Email: ".$_POST["email"]."
Sendezeitpunkt: $zeit",
"From: ".$site_email.""))
 
 {$status_intern=true;}
 else
 {$status_intern=false;}
 
//-->Nachricht an Empfaenger
(mail("$recipient","Nachricht von $siteurl",
"Sie haben folgende Nachricht von ".$_POST["name"]." erhalten:

".$_POST["nachricht"]."

Ansprechpartner: ".$_POST["name"]."
Firma: ".$_POST["firma"]."
Telefon: ".$_POST["telefon"]."
Betreff: ".$_POST["betreff"]."
Email: ".$_POST["email"]."
Sendezeitpunkt: $zeit


Absenderinformationen:

Sender: $IP
Referer: $Referer
Host: $Host
UserAgent: $UA
Mailerversion: 1.0 Final",
"From: ".$site_email.""));


//-->Statuspruefung in Flash
if ($status_intern)
{
print "Vielen Dank f&uuml;r Ihre Email! Wir werden uns bald mit Ihnen in Verbindung setzen.";
}
else
{
print "Es ist ein Fehler aufgetreten. Bitte versuchen sie es <a href=\"javascript:history.back();\"> erneut</a>.";
}
?>
[/code]
  View user's profile Private Nachricht senden
S.Franke

Dabei seit: 27.03.2007
Ort: Bielefeld
Alter: 45
Geschlecht: Männlich
Verfasst Mo 14.09.2009 15:22
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo,

wenn ich das richtig sehe, wertest du doch "nur" den return-Status von mail() aus.

Eine syntaktische bzw. logische Prüfung deiner Werte findet doch gar nicht statt.

LG Stulle
  View user's profile Private Nachricht senden
Anzeige
Anzeige
DesignKater

Dabei seit: 26.06.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 14.09.2009 15:33
Titel

Antworten mit Zitat Zum Seitenanfang

Ich hab mir gerade vorhin erst auch ein kleines Formular zusammengeschustert:

Code:

<?php
/*
--------------------------------------------------------------------------
 Validierung des Formulares mit PHP
--------------------------------------------------------------------------
*/
//prüfen ob der sendebutton gedrückt wurde erst dann code ausführen
if(isset($_POST['submit']))
{
 $error = array();

$name = (utf8_decode($_POST['name']));
$email = (utf8_decode($_POST['email']));
$ort = (utf8_decode($_POST['ort']));
 
 //wenn name andere zeichen als aufgelistet enthält und ort leer ist
 if(!preg_match("#^([a-z0-9 \?\!\.\'_-]+)$#si",$name) or (!$ort))
 {
  $error['name_false'] = 'Bitte füllen Sie alle Pflichtfelder aus!';
 }
 if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
 {
  $error['email_false'] = 'Die angegebene E-Mail Adresse ist nicht korrekt!';
 }
 //wenn nun keine Fehler auftreten dann versenden
 if((!$error))
 {
$myemail  = "ziel e-mail adresse";
$message = (utf8_decode("Titel der Mail:

Name, Vorname: $name
E-Mail: $email
Ort: $ort
"));

mail($myemail, "Betreff", $message,"From: $email\r\n");
header('Location: index.php');
 }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
   <form action="<?php echo htmlentities($_SERVER['SCRIPT_NAME']) ?>" method="post">
    <div><?php
if(isset($_POST['submit']) && count($error) > 0)
{
 foreach($error as $msg)
 {
  echo $msg.'<br>';
 }
}
?></div>
Name: <input id="name" name="name" value="<?php echo $name; ?>" /><br />
E-Mail: <input id="email" name="email" value="<?php echo $email; ?>" /><br />
Ort: <input id="ort" name="ort" value="<?php echo $ort; ?>" /><br />
<input name="submit" type="submit" />
    </form>
</body>
</html>


Überlass ich dir gerne als Vorlage Lächel


Zuletzt bearbeitet von DesignKater am Mo 14.09.2009 15:35, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Mo 14.09.2009 15:36
Titel

Antworten mit Zitat Zum Seitenanfang

Darf ich die URLs zu euren Formularen haben damit ich darüber meine Blauen Pillen bewerben kann? Lächel

Zuletzt bearbeitet von Pixelpole am Mo 14.09.2009 15:36, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
DerM

Dabei seit: 18.01.2009
Ort: -
Alter: 42
Geschlecht: Männlich
Verfasst Mo 14.09.2009 16:23
Titel

Antworten mit Zitat Zum Seitenanfang

Pixelpole hat geschrieben:
Darf ich die URLs zu euren Formularen haben damit ich darüber meine Blauen Pillen bewerben kann? Lächel


*ha ha*
  View user's profile Private Nachricht senden
elricone
Threadersteller

Dabei seit: 20.06.2008
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 14.09.2009 17:55
Titel

Antworten mit Zitat Zum Seitenanfang

Ich danke Euch für die schnellen Antworten!
@DesignKater -> Danke ich check das mal aus.
Wenn ich das Problem gefixed hab poste ich den Code...

@Pixelpole -> Meine Güte!
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Mo 14.09.2009 20:45
Titel

Antworten mit Zitat Zum Seitenanfang

http://lmgtfy.com/?q=e-mail+injection
  View user's profile Private Nachricht senden
DesignKater

Dabei seit: 26.06.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 15.09.2009 13:46
Titel

Antworten mit Zitat Zum Seitenanfang

Danke für den Hinweis Pole, an sowas denk ich immer nich Lächel

Code:

if ( preg_match( "/[\r\n]/", $name ) || preg_match( "/[\r\n]/", $email ) )
{
exit();
}


sollte ja dann erstmal ausreichen. Wer spamt muss auch keinen Hinweis auf einen Fehler bekommen Grins
  View user's profile Private Nachricht senden
 
Ähnliche Themen PHP Kontaktformular
PHP Kontaktformular
Kontaktformular
PHP-Kontaktformular
Kontaktformular
Kontaktformular
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.