Другие языки программирования и технологии

Ввод защитного кода при добавлении комментария

Создаётся сайт, и нужно при добавлении комментария вставить проверку на "человечность". Например ввод защитного кода с картинки. Как это можно сделать в php или скрипт может какой нужен?
index.php:
<?php
session_start();
if(isset($_POST['submit'])) {
if(!empty($_POST['name']) && !empty($_POST['message']) && !empty($_POST['code'])) {
if($_POST['code'] == $_SESSION['rand_code']) {
$accept = "спасибо, коментарий добавлен";
} else {
$error = "введите корректный код. ";
}
} else {
$error = "заполните все поля";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Contact Us</title>
<style type="text/css">
form {margin:0;
padding:0;}
input {padding:2px;
width:200px;}
textarea {
padding:2px;
width:200px;
height:100px;}
.button {
width:60px;}
p {margin:0 0 5px 0;
padding:0;}
.error {
color:#FF0000;
margin:0 0 10px 0;}
.accept {
margin:0 0 10px 0;}
</style>
</head>
<body>
<?php if(!empty($error)) echo '<div class="error">'.$error.'</div>'; ?>
<?php if(!empty($accept)) echo '<div class="accept">'.$accept.'<div>'
$fil=fopen($ind.txt,a+);
fputs($_post['name'],$ind.txt);
fclose;
; ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<p><input type="text" name="name" />ваше имя</p>
<p><textarea name="message"></textarea>текст коментария</p>
<img src="captcha.php"/>
<p><input type="text" name="code" /> цифры с картинки<p>
<p><input type="submit" name="submit" value="Send" class="button" /></p>
</form></body></html>
capcha.php:
<?php
session_start();
$string = '';
for ($i = 0; $i < 5; $i++) {
$string .= chr(rand(97, 122));}
$_SESSION['rand_code'] = $string;
$dir = 'fonts/';
$image = imagecreatetruecolor(170, 60);
$black = imagecolorallocate($image, 0, 0, 0);
$color = imagecolorallocate($image, 100, 100, 190);
$white = imagecolorallocate($image, 255, 255, 255);
imagefilledrectangle($image,0,0,399,99,$white);
imagettftext ($image, 40, 0, 20, 40, $color, $dir."zan.ttf", $_SESSION['rand_code']);
header("Content-type: image/png");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
imagepng($image);
?>
в той же директории создаешь папку fonts и кидаешь в нее файл .ttf c любым шрифтом (читабельным) обзываешь его zan.ttf
Файзиддин Сайходжаев
Файзиддин Сайходжаев
42 851
Лучший ответ
Или скрипт какой то нужен!
Только ни кто вот так вот тебе не будет это делать. Тут нужно привязывать (желательно) к конкретной странице.
Так что поспрашивай не в этой рубрике, а у программистов. Может и поделятся, хотя врядли.
А PHP - ДА!
Ну допустим у меня есть два варианта, но они интегрированы в страницы и если их выдернуть, то работать не будут.
Санек Овчаров
Санек Овчаров
82 332
да их как грязи.. .бесплатных и на любой вкус.
- вот к примеру - на выбор:
http://best-php-scripts .com/captcha_scripts.htm (пробел убрать перед .com)

или просто в гугл - captcha php free
Pavlo Lysytsya
Pavlo Lysytsya
60 969
а не хочешь просто по регистрации например чтоб можно было только комменты +? просто эти картинки БЕСЯТ ПРОСТО!
Ринат Головдинов Нет, сайт сделан таким образом что регистрация там не желательна.
А без картинок спамеры и флудеры просто задавят =(