SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 01.03.2009, 11:52:53
ro.bo. ro.bo. ist offline
Anfänger
 
Registriert seit: Mar 2009
Alter: 62
Beiträge: 2
Verstecktes Formularfeld

Hallo zusammen

Ich habe in mein Kontaktformular, welches über eine send.php verschickt wird, zur Spamsicherheit ein verstecktes Formularfeld mit dem Namen Betreff erstellt. In der send.php habe ich den Befehl if ($_Post["Betreff"] != "") exit; eingebaut. Leider wird die Nachricht trotzdem gesandt, auch wenn das Feld "Betreff" ausgefüllt wird. Was ist in meinem Code falsch?

Code send.php:
PHP-Code:
<!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=iso-8859-1" />
<title>Kontaktformular</title>
</head>

<?php
/* Feste Variablen bestimmen */
$empfaenger "meine@emailadresse.ch";
 
/* Daten aus Formular abholen */
$name $_POST['Name'];
$vorname $_POST['Vorname'];
$firma $_POST['Firma'];
$email $_POST['Email'];
$telefon $_POST['Telefon'];
$adresse $_POST['Adresse'];
$ort $_POST['Ort'];
$betreff $_POST['Betreff'];
$nachricht $_POST['Nachricht']; 

if (
$_Post["Betreff"] != "") exit;

/* Formatierung der E-Mail */
$kopf "KONTAKTFORMULAR E-Mail von ".$vorname." ".$name." (".$email.")";
$nachricht $vorname." ".$name." schrieb:\n\nVorname: ".$vorname."\nName: ".$name."\nFirma: ".$firma."\ne-Mail: ".$email."\nTelefon: ".$telefon."\nAdresse: ".$adresse."\nOrt: ".$ort."\n\nNachricht: ".$nachricht;

/* Versenden der E-Mail */
    
if(mail($empfaenger$kopf$nachricht"From: webmaster@$SERVER_NAME\nReply-To: webmaster@$SERVER_NAME\nX-Mailer: PHP/" phpversion()))
{
    echo 
"<font face='Arial, Helvetica, sans-serif'><font size='2'>Ihre Nachricht wurde erfolgreich abgeschickt. Vielen Dank.</font>";    
}
else
{
    echo 
"<font face='Arial, Helvetica, sans-serif'><font size='2'>Fehler beim Versenden der E-Mail. Bitte versuchen Sie es noch einmal.</font>";
}
?>
Würde mich freuen, wenn Ihr mir weiterhelfen könntet. Vielen Dank.

ro.bo.

Geändert von ro.bo. (01.03.2009 um 12:00:28 Uhr)
Mit Zitat antworten
  #2  
Alt 01.03.2009, 12:28:46
Benutzerbild von wastl1337
wastl1337 wastl1337 ist offline
Anfänger
 
Registriert seit: Apr 2008
Ort: Leipzig
Alter: 38
Beiträge: 22
AW: Verstecktes Formularfeld

huhu,

Zitata: "Leider wird die Nachricht trotzdem gesandt, auch wenn das Feld "Betreff" ausgefüllt wird. "

PHP-Code:
PHP-Code:
if ($_Post["Betreff"] != "") exit; 
Dieser Code heisst zu deutsch: "Wenn Betreff nicht leer ist mache einen Skriptabbruch.
Und jetzt siehe das Zitat. :D

Soll heissen vergleiche Besser mit
PHP-Code:
if($_POST["Betreff"] == "") exit(); 
oder
PHP-Code:
if(empty($_POST["betreff"])) exit(); 
Ach ja und noch eins warum speicherst du erst die Superglobalen Variablen in lokale um sie dann nicht zu verwenden.
Merke niemals mit Benutzereingaben direkt arbeiten, besser erst validieren.

lg basti
__________________
Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware
Mit Zitat antworten
  #3  
Alt 01.03.2009, 13:54:07
ro.bo. ro.bo. ist offline
Anfänger
 
Registriert seit: Mar 2009
Alter: 62
Beiträge: 2
AW: Verstecktes Formularfeld

Hallo Basti

Vielen Dank für die rasche Antwort. Es ist schon richtig, dass das Script bei leerem Formularfeld abbrechen soll. Gehe davon aus, dass Spam-Robots auch die per css versteckten Felder ausfüllen. Habe dein erstes Script mit einem ! abgeändert (if($_POST["Betreff"] != "") exit();) und funktioniert so bestens. Bin leider absoluter php-Laie, werde aber deinen Ratschlag mit den Superglobalen Variablen und so mal nachschlagen - sagt mir so leider nix. Nochmals Merci.

ro.bo.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formularfeld automatisch auffüllen Goofy PHP Grundlagen 2 27.05.2007 09:20:58
Script zum einfügen von Text in Formularfeld s-fox HTML, CSS und JavaScript Help! 6 21.02.2004 17:46:13
Werte aus einzelnem Formularfeld ändern StefanGe PHP für Fortgeschrittene und Experten 5 05.03.2003 16:33:35
Formularfeld SELECT mit CSS formatieren Yzerman PHP Grundlagen 7 04.03.2003 23:55:35
String in Formularfeld übernehmen Ernesto PHP Grundlagen 24 25.09.2002 13:59:52


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:27:02 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt