Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


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

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

Забанили в поиске?
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, 15:13   #3
Andrey1433
Пользователь
 
Регистрация: 07.03.2008
Сообщений: 11
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


22:23.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru