Проблем с captcha-та на логин системата

fouw

Registered
Здравейте направих си една малка система за вход но имам проблем captchata някакси в сесията се запаметява следващия код който не се вижда а се вижда друг ето виж:

Код:
$string = '';
		for($i = 0; $i < 5; $i++) {
			$string .= chr(rand(97, 122));
		}
		$_SESSION['login'] = $string;
		
	echo '
		<div id="login">
		<div id="login_title"><span>Вход</span></div>
		<div id="login_body">
		
		<form method="post"><table><tbody>
		<tr><td>Потребител:</td><td><input value="'.$_POST['user'].'" type="text" name="user" style="font-size: 11px; color: #999; height: 14px; width: 135px;" /></td></tr>
		<tr><td>Парола:</td><td><input type="password" name="pass" style="font-size: 11px; color: #999; height: 14px; width: 135px;" /></td></tr>
		<tr><td><div id="captcha_login">'.$string.'</div></td><td><input name="captcha" type="text" style="font-size: 11px; color: #999; width: 135px; height: 14px;" /></td></tr>
		<tr><td><input type="submit" name="login" value="Влез" /></td><td><input type="reset" value="Изчисти" /></td></tr>
		</tbody></table></form>
		<div id="bottom_login"><a href="index.php?actions=register">Регистрация</a> | <a href="index.php?actions=lostpassword">Забравена парола</a></div>';
		
		if(isset($_POST['login'])) {
		$username = htmlspecialchars($_POST['user']);
		$password = md5($_POST['pass']);
		$cap = htmlspecialchars($_POST['captcha']);
		
		$proverka = mysql_query("SELECT * FROM `users` WHERE `username` = '".$username."'");
		$rowp = mysql_fetch_array($proverka);
		
		if($username == NULL || $password == NULL) {
		echo '<script> alert("Попълнете всички полета!"); </script>';
		} else {
		if($username != $rowp['username']) {
		echo '<script> alert("Няма такъв потребител!"); </script>';
		} else {
		if($password != $rowp['password']) {
		echo '<script> alert("Грешна парола!"); </script>';
		} else {
		if($cap != $_SESSION['login']) {
		echo '<script> alert("Грешен код! '.$_SESSION['login'].'"); </script>';
		} else {
		$_SESSION['user_login'] = $rowp['username'];
		echo '<script> alert("Добре дошли '.$_SESSION['user_login'].'. Вие вече сте в профила си."); </script>';
		refresh("");
		}
		}
		}
		}
		
		}
 
ем пробвай да махнеш това
Код:
 for($i = 0; $i < 5; $i++) { 
         $string .= chr(rand(97, 122)); 
      }
и да оставиш само $string .= chr(rand(97, 122));
 
използвай recaptcha
http://www.google.com/recaptcha
ще ти е много по лесно

това добавяш отгоре над html-а
Код:
<?php 
/********************* RECAPTCHA CHECK ******************************* 
This code checks and validates recaptcha 
****************************************************************/ 
require_once('recaptchalib.php'); 

$resp = recaptcha_check_answer ($privatekey, 
$_SERVER["REMOTE_ADDR"], 
$_POST["recaptcha_challenge_field"], 
$_POST["recaptcha_response_field"]); 

if (!$resp->is_valid) { 
die ("<h3>Image Verification failed!. Go back and try again.</h3>" . 
"(reCAPTCHA said: " . $resp->error . ")");	
} 
?>

това на мястото където искаш да излиза рекапчата

Код:
<?php 
require_once('recaptchalib.php'); 

echo recaptcha_get_html($publickey); 
?>
и това в конфига
Код:
<?php 
/*************** reCAPTCHA KEYS****************/ 
$publickey = "xxxxxxxx"; 
$privatekey = "xxxxxxxx"; 
?>

на местата с Х слагаш кодовете след като си се регнал в сайта по-горе
и си изтеглил файловете
 

Back
Горе