Форум с авторизацией

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Dmitriy.A
ст. сержант
Сообщения: 383
Зарегистрирован: 2006-12-15 17:09:14
Откуда: Москва

Форум с авторизацией

Непрочитанное сообщение Dmitriy.A » 2007-03-27 9:13:47

Скиньте пожалуйста ссылку на скрипт проверки автоматической регистрации на форуме.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35126
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-03-27 12:30:27

невкурил...
Убей их всех! Бог потом рассортирует...

Dmitriy.A
ст. сержант
Сообщения: 383
Зарегистрирован: 2006-12-15 17:09:14
Откуда: Москва

Непрочитанное сообщение Dmitriy.A » 2007-03-27 22:13:25

Ну при регистрации пользователя чтоб надо было цифры с картинки вводить, чтоб роботы не регистрировались.
Уже сделал на пхп. Проверил gocr. Вроде работает Могу поделится если кому нужно.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-03-28 10:28:10

Dmitriy.A писал(а):Ну при регистрации пользователя чтоб надо было цифры с картинки вводить, чтоб роботы не регистрировались.
Уже сделал на пхп. Проверил gocr. Вроде работает Могу поделится если кому нужно.
Нужно.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

selinia
ефрейтор
Сообщения: 53
Зарегистрирован: 2007-02-20 0:06:30

Непрочитанное сообщение selinia » 2007-03-28 14:34:35

в vbulletin эта опция встроена, боты всё-равно регаются, прогресс на месте нестоит =)

Dmitriy.A
ст. сержант
Сообщения: 383
Зарегистрирован: 2006-12-15 17:09:14
Откуда: Москва

Непрочитанное сообщение Dmitriy.A » 2007-03-28 19:29:07

Делюсь. для улучшения работы можно добавить цветные цифры которые вводить не надо, но мне пока не требуется.

этим рисуется картинка (шрифт arbat.ttf -можно любой самый корявый)

Код: Выделить всё

bash-2.05b# cat number.php
<?php

session_start();

define('STEP',10);
define('XS',150);

$_SESSION['number'] = rand(1000,9999);
setcookie('reg_num',$_SESSION['number']);

$im = @ImageCreate(XS, 25) or die ("Cannot Initialize new GD image stream");

$background_color = ImageColorAllocate ($im, 255, 255, 255);
$text_color = ImageColorAllocate($im, 00, 0, 0);


ImageSetThickness($im, 1);
ImageRectangle($im,0,0,XS-1,24,$text_color);
for($j=-2; $j<imagesx($im)/STEP+1; $j++){
    //$cur_points_y[] = -rand(0,STEP);
    //$cur_points_x[] = rand($j*STEP+STEP/1.4,$j*STEP+STEP*1.4);
    $last=0;
    for($i=-2; $i<imagesy($im)/STEP+1; $i++)
    {
        $last = STEP*$i+rand(STEP/1.4,STEP*1.4);
        $cur_points_y[] = $last;
        $cur_points_x[] = rand($j*STEP+STEP/1.4,$j*STEP+STEP*1.4);
    }
    $cur_points_y[] = 25;
    $cur_points_x[] = rand($j*STEP+STEP/1.4,$j*STEP+STEP*1.4);
    for($i=1; $i<5; $i++)
    {
        ImageLine($im,$prev_points_x[$i], $prev_points_y[$i], $cur_points_x[$i], $cur_points_y[$i], $text_color);
        ImageLine($im,$prev_points_x[$i-1], $prev_points_y[$i-1], $cur_points_x[$i], $cur_points_y[$i], $text_color);
        ImageLine($im,$prev_points_x[$i], $prev_points_y[$i], $cur_points_x[$i-1], $cur_points_y[$i-1], $text_color);
    }
    unset($prev_points_x);
    unset($prev_points_y);
    $prev_points_x = $cur_points_x;
    $prev_points_y = $cur_points_y;
    unset($cur_points_x);
    unset($cur_points_y);
}

$num = (string)$_SESSION['number'];

for($i = 0; $i < strlen($num); $i++)
{
    $cipher = substr($num, $i, 1);
    $psize = rand(imagesy($im)-8,imagesy($im)-3);
    $angle = rand(0,10)-5;
    $sizes = ImageTTFBBox($psize, $angle, "arbat.ttf", $cipher);
    $width = $sizes[2]-$sizes[0];
    $height = $sizes[1]-$sizes[7];
    $dh = (23-$height)/2;
    $px = (imagesx($im)/strlen($num))*$i+(imagesx($im)/strlen($num)-$width)/2;
    $py = ($height+$dh+1)+rand(-$dh, $dh);
    ImageTTFText ($im, $psize, $angle, $px, $py, $text_color, "arbat.ttf", $cipher);
}

ob_start();
ImagePng($im);
$content=ob_get_contents();
ob_end_flush();

Header("Accept-ranges: bytes");
Header("Content-length: ".strlen($content));
Header("Content-type: image/png");
echo $content;

?>
а тут сравнивается (можно как угодно сделать)

Код: Выделить всё

bash-2.05b# cat index.php
<?php
// Проверяем отправлена ли форма
$action = empty($_POST["number"]) ? false : true;
// Если нет, то выводим ее
if(!$action)
{
echo "<form action=\"index.php\" method=\"post\">";
echo "<input type=\"text\" name=\"number\">";
echo "<img alt=\"Введите цифры на картинке\" src=\"number.php\" border=\"0\"><br>";
echo "<input type=\"submit\" value=\"Run\">";
echo "</form>"; }
else {
// если да, то проверяем код
// если введены не цифры или цифры
// и буквы, то выдаем сообщение
if(!is_numeric($_POST["number"]))
{ die("Неправильный формат кода!"); }
// Проверка на правильность кода
if($_COOKIE['reg_num']!==$_POST["number"])
{
// Если не правильный
echo "Код не совпадает!";
}
else
{ // Если правильный
echo "Код правильный!"; }
}
?>

Аватара пользователя
Urgor
лейтенант
Сообщения: 663
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2007-03-30 11:27:48

if($_COOKIE['reg_num']!==$_POST["number"])
Т.е. теперь даже не надо OCR делать, достаточно код из куки достать.... Эххх, и почему рапида до такого не додумалась? :))))
Вот нашел интересную ссылочку мегасцылка
Власть в руках у чужаков, и ты им платишь дань...

Dmitriy.A
ст. сержант
Сообщения: 383
Зарегистрирован: 2006-12-15 17:09:14
Откуда: Москва

Непрочитанное сообщение Dmitriy.A » 2007-03-30 21:29:41

Код можно откуда хочешь достать - хоть в файл копируй и шифруй, потом из файла доставай и расшифровывай - главное рисунок :) Если круче напишешь поделись, я просто не php программер.

Аватара пользователя
Urgor
лейтенант
Сообщения: 663
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Непрочитанное сообщение Urgor » 2007-04-02 8:05:46

Код: Выделить всё

<?php 
session_start(); 

Генерим фразу, картинку....

$_SESSION['captcha'] = $captcha;
?>
Проверка CAPTCHA

Код: Выделить всё

<?php 
session_start(); 
if (isset($_POST['captcha']) && 
$_POST['captcha'] == $_SESSION['captcha']) 
{ 
// пускаем 
} 
else { 
// не пускаем
} 
?>
Власть в руках у чужаков, и ты им платишь дань...

Dmitriy.A
ст. сержант
Сообщения: 383
Зарегистрирован: 2006-12-15 17:09:14
Откуда: Москва

Непрочитанное сообщение Dmitriy.A » 2007-04-02 18:47:11

Можно и так :)