Hi, ich habe gerade erst mit PHP angefangen bin also noch ein N00B in dem Bereich, aber ich hoffe ihr helft mir bei meinem Problem.
Ich bin gerade dabei einen SPAM-Schutz zu programmieren, aber es klappt einfach nicht.
Ich wollte es erstmal an einem einfachen Projekt versuchen, wo man seine HP eintragen darf
So ich habe 3 Dateien. 1. formular.php 2. index.php und 3. captcha.php
formular.php nur das Formular:
index.php
Und zum Schluss die captcha.php
So die Problemstellen sind:
Zu Anfang scheint alles OK zu sein, aber die Bedingung ist immer Falsch, sodass einem immer wieder das Formular vor die Nase gehalten wird und da sind 2 Notizen mit dem Inhalt „Undefined variable: wert“. Liegt es daran, dass ich die Zufallszahl im captcha.php erstellt habe?
Anstatt des includen könnte man ja auch eine Weiterleitung zum Formular anordnen oder!?
Trotzdem komme ich nicht mehr zu eigentlichen Seite (index.php)
PS: Habe die Suchfunktion genutzt, aber nicht wirklich das passende gefunden.
Hoffe Ihr könnt mir helfen, schon mal vielen Dank im Voraus für Eure Bemühungen.
Gruß Steusi
Ich bin gerade dabei einen SPAM-Schutz zu programmieren, aber es klappt einfach nicht.
Ich wollte es erstmal an einem einfachen Projekt versuchen, wo man seine HP eintragen darf
So ich habe 3 Dateien. 1. formular.php 2. index.php und 3. captcha.php
formular.php nur das Formular:
PHP-Code:
<form action="index.php" method="post">
<font color="#FF0000">*</font>
URL: <input type="text" name="url" value="http://">
<font color="#FF0000">*</font>
URLname: <input type="text" name="hpname" />
<font color="#FF0000">*</font>
Name: <input type="text" name="name" />
Bannerlink: <input type="text" name="banner" />
<font color="#FF0000">*</font>
Beschreibung: <input type="text" name="beschreibung" />
<?php
// Spamschutz
echo("
<img src=\"captcha.php?wert=\"".$wert."\" />
");
echo("<input type=\"hidden\" name=\"wert\" value=\"".$wert."\" />");
echo("<font color=\"#FF0000\">* </font>
<input type=\"text\" name=\"spam\" maxlength=\"4\" />
");
?>
Spamschutz: geben Sie bitte die Zahlenfolge ein
<input type="submit" name="submit">
<input type="reset" value="Inhalt löschen" />
</form>
PHP-Code:
if((empty($_POST['name'])) OR (("http://") == ($_POST['url'])) OR (empty($_POST['url']))
OR (empty($_POST['hpname'])) OR (empty($_POST['beschreibung'])) OR ($_POST['wert'] != $_POST['spam']))
{
echo ("Bitte füllen Sie alle Pflichtfelder aus!
");
include("formular.php");
}
else {
MySQL Ausgabe ect.
}
PHP-Code:
<?php
// Zufallswert erstellen
srand();
$wert = rand(1000, 9999);
// Erstellen eine 40 mal 100 px großen Bildes
$bild = imagecreate(100,40);
// Farben definieren
$schwarz = imagecolorallocate($bild,0,0,0);
$weiss = imagecolorallocate($bild,255,255,255);
// Schrift einfügen
imagestring($bild,20,20,10,$wert,$weiss);
// Störlinien setzen
imageline($bild,0,30,100,15,$weiss);
imageline($bild,0,10,100,30,$weiss);
imageline($bild,30,0,85,40,$weiss);
// Type im Header definieren und Bild ausgeben
header("Content-Type: image/jpeg");
imagejpeg($bild);
// Bild löschen
imagedestroy($bild);
?>
PHP-Code:
echo("<img src=\"captcha.php?wert=\"".$wert."\" />");
PHP-Code:
echo("<input type=\"hidden\" name=\"wert\" value=\"".$wert."\" />");
PHP-Code:
if($_POST['wert'] != $_POST['spam'])
PHP-Code:
include("formular.php");
Zu Anfang scheint alles OK zu sein, aber die Bedingung ist immer Falsch, sodass einem immer wieder das Formular vor die Nase gehalten wird und da sind 2 Notizen mit dem Inhalt „Undefined variable: wert“. Liegt es daran, dass ich die Zufallszahl im captcha.php erstellt habe?
Anstatt des includen könnte man ja auch eine Weiterleitung zum Formular anordnen oder!?
Trotzdem komme ich nicht mehr zu eigentlichen Seite (index.php)
PS: Habe die Suchfunktion genutzt, aber nicht wirklich das passende gefunden.
Hoffe Ihr könnt mir helfen, schon mal vielen Dank im Voraus für Eure Bemühungen.
Gruß Steusi
Kommentar