Spamschutz in Kontaktform einbauen?

  • #1
L

LanClan

Guest
Hallo!
Vielleicht kann mir hier jemand helfen?
Ich hab auf meiner Webseite ein sehr einfaches aber für meine Zwecke völlig ausreichendes php Script zum Abarbeiten eines Kontaktformulars integriert. Bis dato hat es seinen Zweck gut erfüllt, aber in letzter Zeit wird es von ein paar Scherzbolden missbraucht d.h. es wird ständig von außerhalb (also nicht direkt von meiner Webseite) aufgerufen. Das möchte ich nun abstellen und ne Abfrage einbauen die sicherstellt, dass das script nur dann ausgeführt werden kann, wenn das Kontaktformular direkt auf der Webseite aufgerufen wird. Es muss doch irgendwie möglich sein z.B. mit Abfrage des Severnamens bzw. dessen IP zu verhindern, dass das script von außerhalb aufgerufen wird. Leider kenn ich mich mit php noch nicht so gut aus und weiß nicht ob ich in dieses Script dementsprechnde Befehle einbauen kann und falls ja welche. Könnt ihr mir hierbei vielleicht helfen?

Hier das sript:

Code:
<?php 
$my_email = [email protected]; 
$continue = [url]http://www.blabla.tld/danke.htm;[/url] 
if ($HTTP_SERVER_VARS['REQUEST_METHOD'] != POST){
	exit;
} 
while(list($key,$value) = each($HTTP_POST_VARS)){
	if(!(empty($value))){
		$set=1;
	}
	$message = $message . $key: $value\n\n;
} 
if($set!==1){
	header(location: $HTTP_REFERER);
	exit;
} 
$message = $message . ---Mein Mailscript---; 
$message = stripslashes($message); 
$subject = Anfrage; 
$headers = Wrom: NVWWCUFP.....
?>

* Code sortiert ;) *
 
  • #2
Gibt es einen Link zu der Seite ?

Dein 2. +3. Posting hab ich gelöscht, da sich das ja erledigt hat ;) ;)
 
  • #4
z.B. mit Abfrage des Severnamens bzw. dessen IP

das würde nichts nützen, da das Script ja auf deinem Server ausgeführt wird, egal von wo es aufgerufen wird.

Eine Möglichkeit währe, mit einer Session arbeiten und beim Aufruf des Scripts eine bestimmte Session-Variable abfragen. Ist ist diese nicht vorhanden (also ein Fremdaufruf) wird das Script beendet.
Dazu müsstest du allerdings deine vorhandenen Seiten in *.php umwandeln.
 
  • #5
Conny schrieb:
Eine Möglichkeit währe, mit einer Session arbeiten und beim Aufruf des Scripts eine bestimmte Session-Variable abfragen. Ist ist diese nicht vorhanden (also ein Fremdaufruf) wird das Script beendet.

Aha, und wie kann ich das bewerkstelligen?

Conny schrieb:
Dazu müsstest du allerdings deine vorhandenen Seiten in *.php umwandeln.
Das werde ich dieses WE machen.
 
  • #6
LanClan schrieb:
Das werde ich dieses WE machen.

Naja, wenn du so leicht zu überreden bist, soll mir das nur recht sein ;DD
Oder sollte ich dir evtl. noch mitteilen, dass du dann ALLE Links in deiner Seite von *.htm auf *.php abändern musst ;)

OK Session, im Prinzip ganz einfach.

Auf jeder Seite setzt du ganz am Anfang ( noch VOR <html> ) einen PHP-Einzeiler:
Code:
<?php session_start(); ?>
<html>
<head>
......

Bei den Seiten, die du als Einstiegsseite gelten lassen möchtest, d.h. die Seiten, die direkt aufgerufen werden dürfen (also nicht im Kontaktformular), definierst du noch eine Variable, z.B.
Code:
<?php session_start(); $_SESION[valid] = true; ?>
<html>
<head>
......

Im Kontaktformular wird dann diese Variable wieder abgefragt. Ist sie nicht gesetzt, wurde das Formular direkt aufgerufen, und das willst du ja nicht.

Code:
<?php
session_start();
if($_SESSION[valid] != 1) die(Direktaufruf des Formulars nicht möglich!!);

$my_email = [email protected];
$continue = [url]http://www.blabla.tld/danke.htm;[/url]
......
......
?>

Möchtest du das deine Seite ausschließlich über die Startseite betreten wird, brauchst du die Variable auch nur auf dieser zu definieren, diese wird dann autom. in der Session von Seite zu Seite weitergereicht.

Siehe auch =>

Is doch einfach, oder ;) ;D
 
  • #7
Conny schrieb:
Naja, wenn du so leicht zu überreden bist, soll mir das nur recht sein  ;DD
Immer wenns um Spamschutz oder Sicherheit geht bin ich (vorausgesetzt es bringt auch was) relativ leicht zu überreden.  :)
Conny schrieb:
Oder sollte ich dir evtl. noch mitteilen, dass du dann ALLE Links in deiner Seite von *.htm auf *.php abändern musst  ;)
Das sollte mit dem richtigen Editor kein wirkliches Problem darstellen. In Dreamweaver zB gehts recht flott  8)
Conny schrieb:
Is doch einfach, oder  ;) ;D
Klar, wenn man weiß wie`s geht *g*.
SUPER!! Ich hätte nicht damit gerechnet, gleich so ne tolle Anleitung zu bekommen. Den Link werd ich mir dieses WE auch gleich zu Gemüte führen. Schließlich will man ja auch was lernen.  ;)

Danke nochmals!!!
 
Thema:

Spamschutz in Kontaktform einbauen?

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben