close

Вход

Забыли?

вход по аккаунту

?

php captcha

код для вставкиСкачать
Лабораторная работа №3
Captcha
Цель работы: Реализовать капчу на php.
Краткие теоретические сведения
CAPTCHA (от англ. Completely Automated Public Turing test to tell Computers and Humans Apart - полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей) - компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. Термин появился в 2000 году, в Рунете устоялось название капча. Основная идея теста: предложить пользователю такую задачу, которую с лёгкостью может решить человек, но которую несоизмеримо сложнее решить компьютеру. CAPTCHA - это товарный знак университета Карнеги - Меллона, разработавшего тест. По состоянию на 2013 г., примерно 320 миллионов капчей вводится каждый день пользователями во всём мире
Варианты реализации
В наиболее распространённом варианте капчи пользователь вводит символы, изображённые на рисунке (зачастую с добавлением помех или полупрозрачности). По общепринятым нормам доступности интернета для людей со слабым зрением, такая капча должна дополняться вариантом, основанным на распознавании речи (аудио-капча).
Могут также применяться другие плохо алгоритмизуемые задачи: например, узнать, что находится на картинке, отметить все картинки с кошками или ответить на вопрос, связанный со знаниями или менталитетом людей (например, "висит груша, нельзя скушать"). Тем не менее, стандартом стало именно распознавание символов: оно не привязано ни к какой культуре (основная помеха - слабое зрение), работает даже на мобильных браузерах, и пользователь со стажем быстро опознаёт картинку как капчу.
Код программы
captcha.php
<?php
session_start();
$ranStr = md5(microtime());
$ranStr = substr($ranStr, 0, 6);
$_SESSION['cap_code'] = $ranStr;
$newImage = imagecreatefromjpeg("../images/cap_bg.jpg");
$txtColor = imagecolorallocate($newImage, 0, 0, 0);
imagestring($newImage, 5, 5, 5, $ranStr, $txtColor);
header("Content-type: image/jpeg");
imagejpeg($newImage);
?>
login.php
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
session_start();
require_once '../utils/dbhelper.php';
dbConnect();
$login = $_POST['login'];
$pass = $_POST['pass'];
if ($_POST['login']) {
if ($_SESSION['cap_code'] == $_POST['captcha']) {
if (($id=dbValidateUser($_POST['login'], $_POST['pass']) )!=NULL) {
$_SESSION['login'] = $_POST['login'];
header("Location: /index.php");
$_SESSION['id']=$id;
} else {
echo 'Помилка при введенні пароля <br>';
}
} else {
echo 'Помилка при введенні капчi<br>';
}
}
?>
<form name="login_form" action="login.php" method="POST">
Ваш логiн:<br>
<input type="text" name="login"/><br>
Ваш пароль:<br>
<input type="password" name="pass" /><br>
<br>
<img src="../utils/captcha.php"/> <input type="text" name="captcha" size="13"/><br>
<input type="submit" value="Увiйти" name="login_btn" />
</form>
<input type="submit" value="Регiстрацiя" name="reg_btn" />
</body>
</html>
Документ
Категория
Рефераты
Просмотров
58
Размер файла
20 Кб
Теги
captcha, php
1/--страниц
Пожаловаться на содержимое документа