Как да сложа Capcha при Вход ?

Boech123

Registered
Как да сложа Capcha при Вход ?
ето
login.php
PHP:
<?php
ob_start();
?>
<h2 class='stranicamenu'><center>Вход</center></h2>
<table align="center"><FORM action="" method="POST">
<tr><td>Потребителско име:</td><td><input class="user" type="text" name="name"></td></tr>
<tr><td>Парола:</td><td><input class="pass" type="password" name="pass"></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Вход!"></td></tr>
</table></FORM>
<?php
if(isset($_POST['submit'])) {
if($_POST['name'] != NULL && $_POST['pass'] != NULL) {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass']);
$query = "SELECT * FROM users WHERE name = '$name' AND pass = '$pass'";
$do = mysql_query($query);
$row = mysql_fetch_array($do);
$admin = $row['level'];
if($name == $row['name'] && $pass == $row['pass']) {
session_register("name");
session_register("pass");
$ip = $_SERVER['REMOTE_ADDR'];
$query=mysql_query("UPDATE `users` SET `ip` = '$ip' WHERE `id` = $row[id]") or die(mysql_error());
if($admin > 0) { session_register("admin"); }
echo "<meta http-equiv=refresh content=0;url=index.php?a=myprofile>"; }
else { echo "Грешен Потребител/Парола"; }
}
}
ob_end_flush();
?>
 
Не че намирам особен смисъл от това да има captcha при логин, но ето. Само като предишния път сложи font-а

Ето login.php:
PHP:
<?php
ob_start();
session_start();
?>
<?php
if(isset($_POST['submit'])) {
if($_SESSION['randcode'] == $_POST['code'])
{
if($_POST['name'] != NULL && $_POST['pass'] != NULL) {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass']);
$query = "SELECT * FROM users WHERE name = '$name' AND pass = '$pass'";
$do = mysql_query($query);
$row = mysql_fetch_array($do);
$admin = $row['level'];
if($name == $row['name'] && $pass == $row['pass']) {
session_register("name");
session_register("pass");
$ip = $_SERVER['REMOTE_ADDR'];
$query=mysql_query("UPDATE `users` SET `ip` = '$ip' WHERE `id` = $row[id]") or die(mysql_error());
if($admin > 0) { session_register("admin"); }
echo "<meta http-equiv=refresh content=0;url=index.php?a=myprofile>"; }
else { echo "Грешен Потребител/Парола"; }
}
}
else
{
echo "Грешен код!";
}
}
ob_end_flush();
?>
<h2 class='stranicamenu'><center>Вход</center></h2>
<table align="center"><FORM action="" method="POST">
<tr><td>Потребителско име:</td><td><input class="user" type="text" name="name"></td></tr>
<tr><td>Парола:</td><td><input class="pass" type="password" name="pass"></td></tr>
<tr><td>Код от катинката:</td><td><input type="text" name="code"></td></tr>
<tr><td><img src="captchalog.php"></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Вход!"></td></tr>
</table></FORM>


captchalog.php
PHP:
<?php
    session_start();
	$string = '';
	for($i = 0; $i < 5; $i++)
	{
	    $string .= chr(rand(97,122));
	}
	$_SESSION['randcode'] = $string;
	$dir = "fonts/";
	$image = imagecreatetruecolor(170, 60);
	$black = imagecolorallocate($image, 0, 0, 0);
	$color = imagecolorallocate($image, 200, 100, 90);
	$white = imagecolorallocate($image, 255, 255, 255);
	imagefilledrectangle($image, 0, 0, 170, 60, $white);
    imagettftext($image, 30, 0, 30, 40, $color, $dir."arial.ttf", $_SESSION['randcode']);
	header("Content-type: image/png");
	imagepng($image);
?>

Тестван е и работи !
 

Back
Горе