POST-Daten nach Mailversand löschen?

Hi ho an alle :slight_smile:

Ich hab da mal ein kleines größeres Problem. Also ich habe ein kleines Umfrageformular gebastelt welches eigentlich keine besondere Funktion haben sollte außer:

  • Fragen beantworten lassen
  • bei druck auf Senden-Button den schmus auf einer Dankeseite auswerten lassen
  • Daten per Mail() versenden… fertig!

Ich möchte nun aber das die Daten wenn Sie abgesendet wurden nicht per F5 nochmals an die Mail versendet werden. Ich habe versucht als 1. irgendwie eine „header Location“ in die „Headers“ der Mailfunktion zu machen, aber das will nicht.

[php]

<?php $sNachricht= "Hier bastel ich das Aussehen der Mail zusammen" $sHeader = "MIME-Version: 1.0\n"; $sHeader .= "Content-type: text/html; charset=utf-8\n"; #$sHeader .= "Content-Transfer-Encoding: quoted-printable"; $sHeader .= "From:Versteckt\n"; #$sHeader .= 'Bcc: E-Mail' . "\r\n"; $sHeader .= //Verschicken der E-Mail mail("E-Mail", "\"Name der Umfrage\"", $sNachricht, $sHeader); ?>

[/php]

Ich wollte erst auf Headers verzichten, weil ich dann alles auf einer Seite machen könnte und dann einen Header auf die Dankeseite setzen könnte. Leider kommt dann aber die E-Mail völlig zerschossen an.

Ich hatte mir als 2. Alternative überlegt den true-Wert aus der Funktion auslesen zu lassen und unter die mail() ca. so zu schreiben:

if(mail==true)
{
header zu Dankeseite
}

Problematik, ich programmiere noch im Anfangsstadium und weiß leider nicht wie man diesen Rückgabewert, ohne das man eine Variable setzt, aus der Funktion auslesen kann.

Meine Befürchtung wäre aber im Vorfeld schon das es nicht klappt, weil ich ja dann wieder nen Header sende. Kann mich aber auch irren, weil der Header ja eigentlich nur die Mail() betrifft (verwirrend) ;ugl

Das Vorhaben durch den Header ist der Neuaufruf der Seite, sodas die POST-Daten wech sind.

So, tut mir leid das ich so kleinlich und extrem genau geschrieben habe, aber ich bin es gewöhnt immer möglichst so zu schreiben, dass wenig Fragen bleiben :slight_smile:

Ich danke auf jeden Fall vorher schon für die Hilfe :smiley:

Mfg Quaacks ^^

[B][COLOR=„Red“]Mod-Edit: Code-Tag hinzugefügt - Beim nächsten Mal bitte drank denken /B

das macht man mit der funktion header().

Nils aka XraYSoLo

Stimme ich dir voll und ganz zu, allerdings sagt mir das Script dann „Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.“ :-?

danns schreibs doch einfach um, dass es einmal weitergeleitet wird und fertig.

Nils aka XraYSoLo

Genau an solchen Problemen hängt es ja. Ich suche momentan noch den Grund für den Fehler. Erst dann kann ich mir überlegen wie ich diesen umgehen kann.

Danke aber erstmal für den Tip.

Mfg Quaacks ^^

[php]if(!isset($_SESSION[‚gesendet‘) or $_SESSION[‚gesendet‘] != ‚jawoll‘)
{
mail(„E-Mail“, „"Name der Umfrage"“, $sNachricht, $sHeader);
$_SESSION[‚gesendet‘] = ‚jawoll‘;
}
else echo „schon gesendet“;
[/php]

weil ja auch so viele bots cookies schlucken und man sie nicht deaktivieren kann :slight_smile:

ip loggen würde ich sinnvoller finden.

Ok, die Session ist natürlich auch ne gute Möglichkeit :expressionless:

Hab mich glaub ich zu sehr in eines Sache vertieft ohne Alternativen zu suchen :?

tausendfaches Danke @sysop :smiley:

Mfg Quaacks ^^

geht es um bots ?
die anfrage war, wie man das drücken der f5 taste umgehen kann.
ein zusätzliches header (meta refresh, was auch immer) kann man ja trotzdem machen.

Naja, 100% prozentig ist leider nichts sicher @freak :slight_smile:

Ich denke man kann einem Bot auch einen IP-Changer alle weiß der Geier wieviel minuten geben :wink:

Echt krass ist ja echt das ich dieses Formular nur auf einem Webspace in einem Unterordner habe, keiner (wirklich keiner) weiß das die da ist und ich heute morgen 173 Mails hatte wo einfach nur F5 gedrückt wurde… Sprich einfach leer wie es war abgesendet wurde :evil:

Einmal so nen sch*** Typen der sowas macht in die Finger bekommen hrhr Den dann mit nem Edding vollkritzeln… immer das gleiche :lol:

Mfg Quaacks ^^

am besten so:

[SIZE=1]([/SIZE]
generell nur alle 5 sekunden die möglichkeit geben ein kontaktformular zu versenden (Je nach Benutzerzahl der seite kann deis weniger / mehr sein)
[SIZE=1])
or
([/SIZE]
double opt-in
[SIZE=1])
and
[/SIZE][SIZE=1]([/SIZE]
ip speichern / beschränken
[SIZE=1])
and
([/SIZE]
texte auf ähnlichkeit überprüfen mit welchen die schon gesendet wurden und in eine extra tabelle speichern
[SIZE=1])
and
([/SIZE]
inputfelder auf ähnlichkeit prüfen, teilweise schreiben bots postwerte mit ähnlichen oder identischen inhalt
[SIZE=1])
and
(
[SIZE=2]werte auf mögliche Angriffsversuche überprüfen[/SIZE]
)
and
([/SIZE]

[SIZE=1])[/SIZE]

wie du merkst ist das eine endlose story zwischen skriptkiddys und skriptkiddys/Entwickler.

natürlich kannst du auch super logiken „errechnen“ und junk tabellen haben, so können bestimmte ipkreise die häufiger beim doubleopt-in sich nicht bestätigt haben als junk eingestuft werden, kontaktanfragen die in einem zu engen zeitraum (in betracht auf herkunft der ip / tageszeit) ausgeführt werden könnten auch genauer unter die lupe genommen werden. ip kreise von proxyservern könnten gesammelt werden, etliche anony-sürfen tools könnten abgedeckt werden.

und und und …

Nene Sysop :slight_smile: Geht nicht um Bots… Es hat auch geklappt!

Darum wie schon erwähnt… Vielen lieben Dank :slight_smile:

Mfg Quaacks ^^