Rouven: Doppelter Mailversand

Beitrag lesen

Hi,

also die Tipps mal der Reihe nach aufgegriffen:

  1. Für dein primäres Problem:
    Mit Hilfe der Funktion print_r kannst du dir Variablen ausgeben lassen, insbesondere Arrays. Tu dies mit dem superglobalen $_POST-Array um zu sehen, welcher Wert für deine Variablen eigentlich ankommt, insbesondere für $email_me.

  2. Nutzereingaben:
    Es ist eine große Gefahr, wenn man Nutzerangaben ungeprüft übernimmt. Aus deinem Skript lässt sich z.B. gut eine Spamschleuder bauen, weil ich offenbar alle Werte einfach von außen einschmuggeln kann. Dank FROM-Header kann ich sogar den Absender fälschen.
    PHP-FAQ: Böse und gute Variablen
    PHP-FAQ: Traue niemandem

  3. Register Globals.
    Dein Skript scheint register_globals=on zu verwenden. Was heißt das? PHP nimmt Daten die per Formular oder URL übergeben und verwandelt sie automatisch in Variablen. Vorteil für dich: Gibts im Formular ein Input namens "name", dann gibts in PHP auch gleich eine Variable namens $name. Problem: Indem ich einfach wildfremde Variablen an dein Skript schicke kann ich unter Umständen (je nach Programmierung) Sachen kaputt machen oder Zugriff auf geschützte Informationen nehmen. Bei neueren Versionen von PHP ist deshalb register_globals von Haus aus deaktiviert. Der bevorzugte Zugriff geht stattdessen über die superglobalen Arrays, insbesondere $_GET und $_POST, die somit klar von den lokalen Skriptvariablen getrennt bleiben.
    PHP-FAQ: Register Globals

MfG
Rouven

--
-------------------
Death is nature's way of telling you to slow down.