spamschutz zufallszahl

Brothers

Mitglied
nabend...

ich habe ein script das mir 5 zufallszahlen von 1 -10 in bildern ausgibt...

diese zahl will ich mit einer eingegebenen zahl (über $_POST) vergleichen (ganz normaler spamschutz)

nur wenn ich submit drücke läd er die seite neu und der spamschutz wird neu generiert und php vergleicht jetzt erst dem alten einegebenen und dem neu generierten spamschutz...

das ganze in die url schmeissen klappt auch nicht weil ich vor dem submit das action="" festlegen muss und erst nach den submit den eingegebenen wert habe...

wie löse ich das problem?

habe schon dran gedacht den generierten spamschutz in die mysql datenbank zu packen und nach dem submit wieder raushole... wobei ich denke das wenn 2 leute gleichzeitig auf submit klicken sich die werte überschreiben :rolleyes:

http://startseite.machtkampf-musik.de/register.php

PHP:
include ('mysql.php');
include ('functions.php');

// Objekt erzeugen ($error wird bereits im Konstrukt definiert und ist hier nur optional)
$template = new template("templates/register.html");
// Datei einlesen
$template->readtemplate();
// Platzhalter ersetzen
$spam_temp = rand(1,9);
$spam_bild = '<img src="spamschutz/'.$spam_temp.'.PNG" />';
$spam_zahl = $spam_temp * 10000;
$template->replace("SPAM1", $spam_bild);

$spam_temp = rand(0,9);
$spam_bild = '<img src="spamschutz/'.$spam_temp.'.PNG" />';
$spam_zahl = $spam_zahl + $spam_temp * 1000;
$template->replace("SPAM2", $spam_bild);

$spam_temp = rand(0,9);
$spam_bild = '<img src="spamschutz/'.$spam_temp.'.PNG" />';
$spam_zahl = $spam_zahl + $spam_temp * 100;
$template->replace("SPAM3", $spam_bild);

$spam_temp = rand(0,9);
$spam_bild = '<img src="spamschutz/'.$spam_temp.'.PNG" />';;
$spam_zahl = $spam_zahl + $spam_temp * 10;
$template->replace("SPAM4", $spam_bild);

$spam_temp = rand(0,9);
$spam_bild = '<img src="spamschutz/'.$spam_temp.'.PNG" />';
$spam_zahl = $spam_zahl + $spam_temp;
$template->replace("SPAM5", $spam_bild);
echo $_GET['spam_zahl']; 
$template->replace("SPAM123", $_POST["spamschutz"]);
// Seite ausgeben
$template->parse();

mysql_connect ($db_host, $db_user, $db_password);
mysql_select_db("$db_name");

echo $_POST["spamschutz"];
echo "<br>";
echo $spam_zahl;

if($_POST['senden']==true){
	if($_POST["user_pw1"] == $_POST["user_pw2"]){
		if($_POST["user_pw1"] != "" && $_POST["user_name"] != "" && $_POST["user_email"] != ""){
			if (preg_match("/@/i", $_POST["user_email"]) && !preg_match("/ /i", $_POST["user_email"]) && preg_match("/./i", $_POST["user_email"])) {
				if($spam_zahl == $_POST["spamschutz"]){
					/*$db_abfrage = "SELECT * FROM user";
					$db_ergebnis = mysql_query($db_abfrage);
					while ($row = mysql_fetch_array($db_ergebnis))
					{
						echo $row['user_email'];
						echo "<br>";	
					}  
					if($row['user_email'] == $_POST["user_email"]){*/
						//abfrage
						$db_anfrage = ("select user_id from settings");
						$db_ergebnis = mysql_query($db_anfrage);
						$row = mysql_fetch_object($db_ergebnis);
						$user_id = $row->user_id;
						echo $user_id;
						if (mysql_db_query ($db_name, $db_anfrage, $db_verbindung)) {
						print ("<br><br>anfrage erfolgreich.");
						} else {
						print ("Es traten Probleme auf.");
						}
						//ändern
						$db_aendern = "UPDATE settings SET user_id = $user_id+1"; 
						if (mysql_db_query ($db_name, $db_aendern, $db_verbindung)) {
						print ("<br><br>aendern erfolgreich.");
						} else {
						print ("Es traten Probleme auf.");
						}
						//user daten in die user tabelle eintragen
						$user_name = $_POST["user_name"];
						$user_email = $_POST["user_email"];
						$user_pw = $_POST["user_pw1"];
						$db_anfrage = "INSERT INTO user (user_id, user_name, user_email, user_pw) VALUES ('$user_id', '$user_name', '$user_email', '$user_pw')";
						$db_ergebnis = mysql_query($db_anfrage);
						/*}else{
						echo "Email-Adresse bereits Registriert.";
						}*/
				}else{
				echo "Spamschutz falsch.";
				}
			}else{
			echo "Keine g&uuml;tige Email Adresse angegeben.";
			}
		}else{
		echo "Es m&uuml;ssen alle Felder ausgef&uuml;llt werden.";
		}
	}else{
	echo "Passw&ouml;rter stimmen nicht &uuml;berein.";
	}
}

mysql_close ($db_verbindung);
 
Aber wirklich effektiv ist der Schutz nicht, da man die Zahlen aus deinem Quelltext auslesen kann ohne die Bilder zu betrachten. Du kommst hier wohl besser, wenn du mit PHP ein Bild erzeugst in dem alle Zahlen enthalten sind und in dessen Dateinamen die Zahlen nicht vorkommen.
 
Zurück