Другие языки программирования и технологии
Ввод защитного кода при добавлении комментария
Создаётся сайт, и нужно при добавлении комментария вставить проверку на "человечность". Например ввод защитного кода с картинки. Как это можно сделать в 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
<?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
Или скрипт какой то нужен!
Только ни кто вот так вот тебе не будет это делать. Тут нужно привязывать (желательно) к конкретной странице.
Так что поспрашивай не в этой рубрике, а у программистов. Может и поделятся, хотя врядли.
А PHP - ДА!
Ну допустим у меня есть два варианта, но они интегрированы в страницы и если их выдернуть, то работать не будут.
Только ни кто вот так вот тебе не будет это делать. Тут нужно привязывать (желательно) к конкретной странице.
Так что поспрашивай не в этой рубрике, а у программистов. Может и поделятся, хотя врядли.
А PHP - ДА!
Ну допустим у меня есть два варианта, но они интегрированы в страницы и если их выдернуть, то работать не будут.
да их как грязи.. .бесплатных и на любой вкус.
- вот к примеру - на выбор:
http://best-php-scripts .com/captcha_scripts.htm (пробел убрать перед .com)
или просто в гугл - captcha php free
- вот к примеру - на выбор:
http://best-php-scripts .com/captcha_scripts.htm (пробел убрать перед .com)
или просто в гугл - captcha php free
а не хочешь просто по регистрации например чтоб можно было только комменты +? просто эти картинки БЕСЯТ ПРОСТО!
Похожие вопросы
- Как очистить код от комментариев? c++. Код сильно засорился комментариями, как бы их по быстрому удалить? )
- С++ Проверка на некорректный ввод значения переменной
- Как на паскале написать код программы,которая при вводе числа,выводит его словами?
- Язык ввода
- C++: файловый ввод-вывод.
- Проблема с вводом текста в фотошопе!
- C++ Проверка правильности ввода данных.
- Оператор ввода в C#
- очень нужно создать макрос для перевоа вордовского текста в эквивалентный код html разметки. пожалуйста с комментариями
- assembler почему с этой процедурой макс значение ввода =25
А без картинок спамеры и флудеры просто задавят =(