Autor |
Nachricht |
elricone
Threadersteller
Dabei seit: 20.06.2008
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 14.09.2009 15:18
Titel Kontaktformular mit PHP |
|
|
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ü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]
|
|
|
|
|
S.Franke
Dabei seit: 27.03.2007
Ort: Bielefeld
Alter: 45
Geschlecht:
|
Verfasst Mo 14.09.2009 15:22
Titel
|
|
|
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
|
|
|
|
|
Anzeige
|
|
|
DesignKater
Dabei seit: 26.06.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 14.09.2009 15:33
Titel
|
|
|
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
Zuletzt bearbeitet von DesignKater am Mo 14.09.2009 15:35, insgesamt 2-mal bearbeitet
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
Verfasst Mo 14.09.2009 15:36
Titel
|
|
|
Darf ich die URLs zu euren Formularen haben damit ich darüber meine Blauen Pillen bewerben kann?
Zuletzt bearbeitet von Pixelpole am Mo 14.09.2009 15:36, insgesamt 1-mal bearbeitet
|
|
|
|
|
DerM
Dabei seit: 18.01.2009
Ort: -
Alter: 42
Geschlecht:
|
Verfasst Mo 14.09.2009 16:23
Titel
|
|
|
Pixelpole hat geschrieben: | Darf ich die URLs zu euren Formularen haben damit ich darüber meine Blauen Pillen bewerben kann? |
|
|
|
|
|
elricone
Threadersteller
Dabei seit: 20.06.2008
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 14.09.2009 17:55
Titel
|
|
|
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 ->
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
|
|
|
|
DesignKater
Dabei seit: 26.06.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Di 15.09.2009 13:46
Titel
|
|
|
Danke für den Hinweis Pole, an sowas denk ich immer nich
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
|
|
|
|
|
|
|
|
Ähnliche Themen |
PHP Kontaktformular
PHP Kontaktformular
Kontaktformular
PHP-Kontaktformular
Kontaktformular
Kontaktformular
|
|