Captcha in class.php einbinden

Alternativ kannst du auch diese doppelte IF abfrage durch eine AND verknüpfung lösen, also:

PHP:
if ( md5($income['captcha']) == $_SESSION['captcha']  && $validates == true) {
// Code...
} 
else {
 //anderer Code bzgl des errors
}

OK danke :) .

Da ich später coden möchte in php und das auch können möchte / WILL, kaufe ich mir ein PHP5 & MySQL5 buch :).

PS: NoUse4aNick ich werde es versuchen danke viel mal!

EDIT:

Es hat nicht geklappt mit:

PHP:
if ( md5($income['captcha']) == $_SESSION['captcha']  && $validates == true) {
// Code...
} 
else {
 //anderer Code bzgl des errors
}


Habe das beim index:

HTML:
            <label for="captcha">Captchacode</label><br>
            <img src="captcha/captcha.php" border="0" alt="captcha"><br>
            <input name="captcha" size="5" type="text" id="captcha">

Alles wird angezeigt, jedoch steht dan beim button nur: "Working..."


und bei der MySQL Datenbank wurde auch nichts eingetragen?

Gruss 0grish
 
Zuletzt bearbeitet:
Gib dir doch mal kurz zum debuggen die Werte der Variablen vor deiner If abfrage aus:
PHP:
echo md5($income['captcha'])."<br />". $_SESSION['captcha']."<br />".$validates."<br />";

Mit diesen werten solltest du eigenltich den Fehler analysieren können. Ansonsten schreib doch mal deinen output hier hienein.

lg NoUse4aNick
 
Gib dir doch mal kurz zum debuggen die Werte der Variablen vor deiner If abfrage aus:
PHP:
echo md5($income['captcha'])."<br />". $_SESSION['captcha']."<br />".$validates."<br />";

Mit diesen werten solltest du eigenltich den Fehler analysieren können. Ansonsten schreib doch mal deinen output hier hienein.

lg NoUse4aNick

der md5 kommt beim debuggen : d41d8cd98f00b204e9800998ecf8427e

sollte ja alles klappen

EDIT:

Habe ein neuen Captcha reingemacht jedoch zeigt es mir nun in ROT wo sonst die ERRORS angezeigt werden, denn Inhalt der Textfelder...

Hier beim submit.php:

PHP:
<?php

// Error reporting:
error_reporting(E_ALL^E_NOTICE);

include "connect.php";
include "comment.class.php";

/*
/	This array is going to be populated with either
/	the data that was sent to the script, or the
/	error messages.
/*/

$arr = array();
$validates = Comment::validate($arr);

/* Hier der neue Code: */

if((isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam'])  && $validates == true){

unset($_SESSION['captcha_spam']); 

/* Hier der neue Code ENDE */

	/* Everything is OK, insert to database: */
	
	mysql_query("	INSERT INTO comments(name,url,email,body)
					VALUES (
						'".$arr['name']."',
						'".$arr['url']."',
						'".$arr['email']."',
						'".$arr['body']."'
					)");
	
	$arr['dt'] = date('r',time());
	$arr['id'] = mysql_insert_id();
	
	/*
	/	The data in $arr is escaped for the mysql query,
	/	but we need the unescaped variables, so we apply,
	/	stripslashes to all the elements in the array:
	/*/
	
	$arr = array_map('stripslashes',$arr);
	
	$insertedComment = new Comment($arr);

	/* Outputting the markup of the just-inserted comment: */

	echo json_encode(array('status'=>1,'html'=>$insertedComment->markup()));

}
else
{
	/* Outputtng the error messages */
	echo '{"status":0,"errors":'.json_encode($arr).'}';
}

?>
 
Zuletzt bearbeitet:
GAILTALER hat gesagt.:
was is ein captcha?

mfg

Captcha:

Sollte ein Schwer Lesbarer Text sein, wo der Besucher ihn versucht zu "entschlüsseln" oder muss halt den "Sicherheitscode" = "Captcha" eingeben. Captcha nüzt gegen Spamm's und verhindert noch, dass so gennante "BOT's" den Captcha lesen können und diesen umgehen können, doch da ich nur einen einfachen Sicherheitscode brauche, brauche ich kein schwerlesbaren text.

Schwierigere captchas:

http://www.fititis.gr/fititis2/images/stories/aa_ioannou_paulos/captcha.png
 
Zuletzt bearbeitet:
kommt bei dem debug Befehl nur der MD5? Falls ja fehlen sowohl validates als auch die Session (sind also nicht gesetzt).

Desweiteren benutze nicht das schlüsselwort AND sondern &&. AND ist VB.
 
Wusste nicht das es in PHP tatsächlich AND gibt. Dachte immer das ist ein VB spezifischer Befehl.

Würde aber trotzdem zu && raten.

lg
NoUse4aNick
 
Zurück