Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2008, 04:56   #1
Andrey1433
Пользователь
 
Регистрация: 07.03.2008
Сообщений: 11
По умолчанию Система проверки на человека

народ , короче при регестрации юзверей нужно зделать такую проверку, то есть выводить рисунок с запутанными цифрами что бы подтвердить что это человек, догадываюсь что нужно через пхп загенерить это изображение черз GD функции но как незнаю .. может кто че подсказать
Andrey1433 вне форума Ответить с цитированием
Старый 11.03.2008, 09:32   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Забанили в поиске?
PHP код:
<?php
session_start
();
 
 
class 
CaptchaSecurityImages {
 
   var 
$font 'monofont.ttf';
 
   function 
generateCode($characters) {
      
/* list all possible characters, similar looking characters and vowels have been removed */
      
$possible '23456789bcdfghjkmnpqrstvwxyz';
      
$code '';
      
$i 0;
      while (
$i $characters) { 
         
$code .= substr($possiblemt_rand(0strlen($possible)-1), 1);
         
$i++;
      }
      return 
$code;
   }
 
   function 
CaptchaSecurityImages($width='120',$height='40',$characters='6') {
      
$code $this->generateCode($characters);
      
/* font size will be 75% of the image height */
      
$font_size $height 0.75;
      
$image imagecreate($width$height) or die('Cannot initialize new GD image stream');
      
/* set the colours */
      
$background_color imagecolorallocate($image255255255);
      
$text_color imagecolorallocate($image2040100);
      
$noise_color imagecolorallocate($image100120180);
      
/* generate random dots in background */
      
for( $i=0$i<($width*$height)/3$i++ ) {
         
imagefilledellipse($imagemt_rand(0,$width), mt_rand(0,$height), 11$noise_color);
      }
      
/* generate random lines in background */
      
for( $i=0$i<($width*$height)/150$i++ ) {
         
imageline($imagemt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
      }
      
/* create textbox and add text */
      
$textbox imagettfbbox($font_size0$this->font$code) or die('Error in imagettfbbox function');
      
$x = ($width $textbox[4])/2;
      
$y = ($height $textbox[5])/2;
      
imagettftext($image$font_size0$x$y$text_color$this->font $code) or die('Error in imagettftext function');
      
/* output captcha image to browser */
      
header('Content-Type: image/jpeg');
      
imagejpeg($image);
      
imagedestroy($image);
      
$_SESSION['security_code'] = $code;
   }
 
}
 
$width = isset($_GET['width']) && $_GET['height'] < 600 $_GET['width'] : '120';
$height = isset($_GET['height']) && $_GET['height'] < 200 $_GET['height'] : '40';
$characters = isset($_GET['characters']) && $_GET['characters'] > $_GET['characters'] : '6';
 
$captcha = new CaptchaSecurityImages($width,$height,$characters);
 
?>
Сохраняешь как programmersforumcaptcha.php, пишешь в форме:
Код HTML:
<img src="programmersforumcaptcha.php?width=100&height=40&characters=5" alt="captcha" />
<input id="security_code" name="security_code" type="text" />
А в форме-преемнике пишешь:
PHP код:
<?php 
   session_start
();
   if((
$_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) ) {
      
// Insert you code for processing the form here, e.g emailing the submission, entering it into a database. 
      
unset($_SESSION['security_code']);
   } else {
      
// Insert your code for showing an error message here
   
}
?>
Ну и наконец, немного фокусов. При включенном mod_rewrite в .htaccess'е пишешь:
Код:
RewriteEngine on
RewriteRule captcha.jpg /programmersforumcaptcha.php
В таком случае, вместо "programmersforumcaptcha.php?width= 100&height=40&characters=5" пишешь таким образом, чтобы в итогк было так: <img src="captcha.jpg" />, перед тем соостветственно подправив код внутри скрипта или в htaccess'е.

Надеюсь, то что недоговорил - поймешь сам, иначе - в поиск, так как таких примеров, как минимум - море.
SkyM@n вне форума Ответить с цитированием
Старый 11.03.2008, 14:13   #3
Andrey1433
Пользователь
 
Регистрация: 07.03.2008
Сообщений: 11
По умолчанию

спасибо огромное
Andrey1433 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти человека по номеру мобильного 2006demon2006 Свободное общение 7 15.09.2009 12:24
отключение проверки при вводе engeneer Паскаль, Turbo Pascal, PascalABC.NET 21 23.07.2008 19:45
Написать програму проверки знания даты второй мировой войны. TurboPaskal Паскаль, Turbo Pascal, PascalABC.NET 22 24.04.2008 19:10
Задача на определение температуры человека Versifikator Microsoft Office Excel 2 10.02.2008 05:14