powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] установка капчи
1 сообщений из 1, страница 1 из 1
[PHP] установка капчи
    #37717709
малый84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здраствйуте, нашол в сети интересную капчу, помогите пожалуйста пристоить её к сайту. Должно после правильного ввода открывать доступ к станице, тоисть нужно условие сделать.
капча находиться в папке:
libcaptcha/captcha_gen.php?gen1'
вот сам код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
<?php
if(!session_id())
  @session_start();


if(isset($_GET['gen']) && isset($_SESSION['captcha_ok']) && $_SESSION['captcha_ok']==1)
  die('<html><head><meta http-equiv="Content-Type" content="text/html;charset=windows-1251"></head><body>The text entered correctly</body></html>');

if(!isset($_SESSION['code']) || $_SESSION['code']=='')
{
  $_SESSION['code']=$code=substr(str_replace(Array('9','0'),Array('1','2'),mt_rand()),0,5);
  $_SESSION['entered']='';
  $_SESSION['coords']=Array();
  $_SESSION['captcha_ok']=0;
  header('Location: ?gen1');
  die();
}
else
{
  $code=$_SESSION['code'];
}





if(defined('GENERATE_CAPTCHA'))
{
  $cp=CAPTCHA_PATH;
  $coords=Array(Array(2,22),Array(2,54),Array(2,87),Array(34,22),Array(34,54),Array(34,87),Array(67,22),Array(67,54));
  shuffle($coords);
  $_SESSION['coords']=$coords;

  $img=imagecreatefrompng($cp.'back.png');
  for($i=1;$i<=8;$i++)
  {
    $tmp=imagecreatefrompng($cp.$i.'.png');
    imagecopy($img,$tmp,$coords[$i-1][0],$coords[$i-1][1],0,0,30,30);
    imagedestroy($tmp);
  }

  $tmp=imagecreatefrompng($cp.'arrow.png');
  imagecopy($img,$tmp,67,87,0,0,30,30);
  imagedestroy($tmp);

  imagettftext($img,9,0,2,14,imagecolorallocate($img,0,0,0),'arial.ttf',to_unicode('Введите '.$_SESSION['code']));
  imagettftext($img,9,0,2,133,imagecolorallocate($img,0,120,0),'arial.ttf',to_unicode('Введено: '.$_SESSION['entered']));


  header('Content-type: image/png');
  imagepng($img);
  die();
}

function captcha_gen()
{
  if(isset($_POST['cap_x']) && isset($_POST['cap_y']) && !is_array($_POST['cap_x']) && !is_array($_POST['cap_y']) && preg_match('/^\d+$/',$_POST['cap_x']) && preg_match('/^\d+$/',$_POST['cap_y']))
  {
    $num='';

    for($i=1;$i<=8;$i++)
    {
      $a=$_POST['cap_x']-$_SESSION['coords'][$i-1][0];
      $b=$_POST['cap_y']-$_SESSION['coords'][$i-1][1];

      if($a<33 && $a>0 && $b<33 && $b>0)
      {
        $num=$i;
        break;
      }
    }

    if($num>0 && strlen($_SESSION['entered'])<5)
    {
      $_SESSION['entered'].=$num;
      header('Location: ?gen1');
      die();
    }


    $a=$_POST['cap_x']-67;
    $b=$_POST['cap_y']-87;

    if($a<33 && $a>0 && $b<33 && $b>0 && strlen($_SESSION['entered'])>0)
    {
      $_SESSION['entered']=substr($_SESSION['entered'],0,-1);
      header('Location: ?gen1');
      die();
    }
  }


  if($_SESSION['entered']===$_SESSION['code'])
  {
    $_SESSION['captcha_ok']=1;
    die('<html><head><meta http-equiv="Content-Type" content="text/html;charset=windows-1251"></head><body>The text entered correctly</body></html>');
  }


  $r=mt_rand();

print <<<HERE
<html><body style='margin:0px 0px 0px 0px;'>
<form action='?gen1' method='post'>
<input type='image' name='cap' src='?gen&$r'>
</form>
</body></html>
HERE;
}



function to_unicode($text,$from='w')
{
  $text=convert_cyr_string($text,$from,'i');
  $uni='';

  for($i=0, $len=strlen($text); $i<$len; $i++)
  {
    $char=$text{$i};
    $code=ord($char);
    $uni.=($code>175) ? "&#".(1040+($code-176)).";" : $char;
  }

  return $uni;
}

function clean_captcha()
{
  global $_SESSION;
  $_SESSION['captcha_ok']=NULL;
  $_SESSION['code']=NULL;
  $_SESSION['entered']=NULL;
  $_SESSION['coords']=NULL;
  unset($_SESSION['captcha_ok']);
  unset($_SESSION['code']);
  unset($_SESSION['entered']);
  unset($_SESSION['coords']);
}

function check_captcha()
{
  global $_SESSION;
  return isset($_SESSION['captcha_ok']) && $_SESSION['captcha_ok']===1;
}

?>

...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] установка капчи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]