Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Код подтверждения 
V
    Опции темы
Shark
  Дата 26.12.2008, 05:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



пишу форум... сталкнулся с небольшой проблемкой под названием "Код подтверждения".
я сделал так:
PHP код генерирует любые 5 символов и результат показывается пользователю и заносится в сессию. после того как пользователь вводит в поле формы этот код и нажимает "Продолжить"... введенный код сравнивается с кодом, который находится в сессии, если верно - пропускает дальше, если нет- возвращает пользователя на страницу с кодом...

Можно ли так оставить или роботы которые сканируют сайт могут спокойно заполнить это поле формы?
Можно ли не использовать картинку (не хочу), а просто, допустим, зачеркнуть сгенерированный код тэгом ?


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
MoLeX
Дата 26.12.2008, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Shark @  26.12.2008,  05:37 Найти цитируемый пост)
зачеркнуть сгенерированный код тэгом 

как понимаю ты хочешь отдать её пользователю в виде html предварительно зачеркнув ее? что-то наподобие этого:
R15Iaq5C

если да то что роботу составит труда просмотреть твой хтмл код и выдрать необходимое значение?!


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Shark
Дата 26.12.2008, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



MoLeX, впринципе я так и хочу... а как его скрыть в html (если это возможно)??
1. как я уже говорил, что не хочу использовать графику (картинку), мало ли у пользователя отключена графика
2. я даже понятия не имею, как она пишется


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
MoLeX
Дата 26.12.2008, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Shark @  26.12.2008,  07:43 Найти цитируемый пост)
MoLeX, впринципе я так и хочу...

эх, зря...

как вариант - JavaScript, шифруем на РНР каким нибудь алгоритмом (что бы не все так просто было, например алгоритмом Цезаря) + даешь знать JS как надо расшифровать вот и все.

Добавлено через 4 минуты и 51 секунду
Shark, давным давно извращался с капчаткой чтобы пользователю было удобно работать погляди http://forum.vingrad.ru/forum/topic-201427.html

Добавлено через 5 минут и 16 секунд
но так она и не была доведена до ума


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
lelik133
Дата 26.12.2008, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 5
Всего: 14



действительно капча значительно удобнее в этом плане, а то что ты хочешь использовать текст по меньшей мере странно

если надумаешь использовать все таки капчу есть неплохая библиотека http://www.captcha.ru/kcaptcha/
PM ICQ   Вверх
Shark
Дата 26.12.2008, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



MoLeX, с JS тоже не дружуsmile.. посмотрел ссылку, потом в инете нашел ссылку на капчу... скачал...код пока не изучал)
lelik133, спасибо за ссылку, и от туда скачал купчу (код пока не смотрел)...

тему пока не отмечаю что она решена, коды проверю.... 


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Валерия
Дата 26.12.2008, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: 3
Всего: 8



Как бы ты не старался обойти ботов джаваскриптом, всеравно если бот выполнит этот джаваскрипт то он увидит код...
Мало того, если кто то будет намерен тебя заспамить - у него это получится)
PM MAIL   Вверх
skyboy
Дата 26.12.2008, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Валерия @  26.12.2008,  14:07 Найти цитируемый пост)
всеравно если бот выполнит этот джаваскрипт то он увидит код...

нет, ну макрос под firefox я ещё понимаю. а вот как должен "выполнить javascript" бот, написанный на РНР или поисковый паук, я не понимаю.
PM MAIL   Вверх
Shark
Дата 27.12.2008, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



значит так... на этом форуме через яндекс я нашел капчу, скачал... понравилась 
как в этот код (регистрации), вставить эту капчу???? если писать так:
Код

<?php
session_start();
include "conf.php";
?>
<LINK href="style/style.css" type=text/css rel=STYLESHEET>
<body background=#111>
<?php

if($_POST['nickname'] AND $_POST['pswrd'] == $_POST['pswrd_again'])
    {

if($_POST['codes'] == $_SESSION['ps'])
    {
        echo "НЕТ";
        exit();
    }

    if($_POST['email'])
        {
        if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
            {
                echo "Адрес должен быть вида: [email protected]";
                echo "<br/><a href=".$PHP_SELF."?user=new>Назад</a>";
                exit();
            }
        }
// Добавляем фотку
        if(!empty($_FILES['av']['name']))
        {
            
            $valid_types = array('gif', 'jpg', 'png', 'jpeg', 'tmp');
            $ext = substr($_FILES['av']['name'],1 + strrpos($_FILES['av']['name'], '.'));

            if(!in_array($ext, $valid_types))
            {
                echo 'Невозможно загрузить <b>'.$_FILES['av']['name'].'</b>, т.к. инициализировано <b>неизвестное</b> расширение файла. Допустимые расширения: <b>jpg, jpeg, gif, png</b>';
                exit();
            }

            $size = GetImageSize($_POST['av']);

            if ($size['0'] > 150 or $size['1'] > 150 or $_FILES['av']['size'] > 30*1024)
            {
                echo 'Невозможно...';
exit;
            }

            preg_match('#image\/[x\-]*([a-z]+)#', $_FILES['av']['type'], $filetype);

            switch ($filetype['1']) 
         {
                case 'jpeg':
                case 'pjpeg':
                case 'jpg': $type = '.jpg';break;
                case 'gif': $type = '.gif';break;
                case 'png': $type = '.png';break;
        case 'tmp': $type = '.tmp';break;
                default:
                    {
                       echo 'Невозможно...';
exit;
                    }
            }

            $image = time().$type;

            if(!move_uploaded_file($_FILES['av']['tmp_name'] ,$site_path.'avater/'.'/'.$image))
            {
                echo 'Невозможно загрузить изображение <b>'.$_FILES['av']['name'].'</b>, возможно произошла системная ошибка';
                exit();
        }
        }
if($_FILES['av']['tmp_name'])
    {
        $timestamp=time();
        mysql_query("INSERT INTO shusers VALUE(0, '".mysql_escape_string(htmlspecialchars($_POST['nickname']))."', '".mysql_escape_string(htmlspecialchars(md5($_POST['pswrd'])))."', '', '', '', '".mysql_escape_string(htmlspecialchars($_POST['email']))."', '".mysql_escape_string(htmlspecialchars($_POST['icq']))."',
        '".mysql_escape_string(htmlspecialchars($_POST['skype']))."', '".$_POST['day']."', '".$_POST['month']."', '".$_POST['year']."', '".mysql_escape_string(htmlspecialchars($_POST['city']))."', '".$_POST['sex']."', '', '".mysql_escape_string(htmlspecialchars($_POST['about']))."', 'style.css',
        '$image', '', '', '', '$timestamp', '', '', '', '', '$REMOTE_ADDR')") or die (mysql_error());
        echo "<meta http-equiv='Refresh' content='0; url=index.php'>";
    }
if(empty($_FILES['av']['tmp_name']))
    {
        $timestamp=time();
        mysql_query("INSERT INTO shusers VALUE(0, '".mysql_escape_string(htmlspecialchars($_POST['nickname']))."', '".mysql_escape_string(htmlspecialchars(md5($_POST['pswrd'])))."', '', '', '', '".mysql_escape_string(htmlspecialchars($_POST['email']))."', '".mysql_escape_string(htmlspecialchars($_POST['icq']))."',
        '".mysql_escape_string(htmlspecialchars($_POST['skype']))."', '".$_POST['day']."', '".$_POST['month']."', '".$_POST['year']."', '".mysql_escape_string(htmlspecialchars($_POST['city']))."', '".$_POST['sex']."', '', '".mysql_escape_string(htmlspecialchars($_POST['about']))."', 'style.css',
        '', '', '', '', '$timestamp', '', '', '', '', '$REMOTE_ADDR')") or die (mysql_error());
        echo "<meta http-equiv='Refresh' content='0; url=index.php'>";
    }
    }

    
?>    

<title>Регистрация на форуме группы Silent Hell</title>
<table border=0 width=75% align=center style='border-collapse:collapse;table-layout:fixed;'><tr>
<td width=40% align=center><img src=images/registration.gif></td></tr></table>

<table border=0 width=50% align=center style='border-collapse:collapse;table-layout:fixed;'>
<tr><td style='color: silver;' height=30><font size=2><a href="<?php $PHP_SELF; ?>">Форум группы Silent Hell</a> - > Регистрация</font></td></tr></table>

<table border=0 width=50% align=center style='border-collapse:collapse;table-layout:fixed;'><tr>
<form action="" method=POST enctype="multipart/form-data">
<td width=10% class='tableH'>Ник:</td><td width=35% class='tableH'><input type=text size=35 name=nickname></td><td width=10% class='tableH'>15 символов</td></tr><tr>
<td width=10% class='tableH'>Пароль:</td><td width=35% class='tableH'><input type=password size=35 name=pswrd></td><td width=10% class='tableH'>32 символа</td></tr><tr>
<td width=10% class='tableH'>Повторите пароль:</td><td width=35% class='tableH'><input type=password size=35 name=pswrd_again></td><td width=10% class='tableH'>32 символа</td></tr><tr>
<td width=10% class='tableH'>E-mail:</td><td width=35% class='tableH'><input type=text size=35 name=email></td><td width=10% class='tableH'>30 символов</td></tr><tr>
<td width=10% class='tableH'>ICQ:</td><td width=35% class='tableH'><input type=text size=35 name=icq></td><td width=10% class='tableH'>9 символов</td></tr><tr>
<td width=10% class='tableH'>Skype:</td><td width=35% class='tableH'><input type=text size=35 name=skype></td><td width=10% class='tableH'>20 символов</td></tr><tr>
<td width=10% class='tableH'>Рожден:</td><td width=45% colspan=2 class='tableH'>
<SELECT name=day class='SELECT'>
<?php
   $var = 31;
   $i = 1;
   do
   {
?>
<OPTION >
<?php
      echo($i); echo('<br>');   
   }
   while(++$i <= $var)
?></OPTION>
</SELECT>
    <SELECT name=month class='SELECT'>
    <OPTION name=01>Январь</OPTION>
    <OPTION name=02>Февраль</OPTION>
    <OPTION name=03>Март</OPTION>
    <OPTION name=04>Апрель</OPTION>
    <OPTION name=05>Май</OPTION>
    <OPTION name=06>Июнь</OPTION>
    <OPTION name=07>Июль</OPTION>
    <OPTION name=08>Август</OPTION>
    <OPTION name=09>Сентябрь</OPTION>
    <OPTION name=10>Октябрь</OPTION>
    <OPTION name=11>Ноябрь</OPTION>
    <OPTION name=12>Декабрь</OPTION>
    </SELECT>
        <SELECT name=year class='SELECT'>
        <?
        $var = 2003;
        $i = 1980;
        do
        {
        ?>
        <OPTION >
        <?php
        echo($i); echo('<br>');   
        }
        while(++$i <= $var)
        ?></OPTION>
</SELECT></td></tr><tr>
<td width=10% class='tableH'>Город:</td><td width=35% class='tableH'><input type=text size=35 name=city></td><td width=10% class='tableH'>50 символов</td></tr><tr>
<td width=10% class='tableH'>Пол:</td>
<td width=35% colspan=2 class='tableH'>
<select name=sex><option>Мужской</option>
             <option>Женский</option></select></td></tr></tr>
<tr><td width=10% class='tableH'>Подтверждение</td>
<td width=35% class='tableH'><input type=text size=35 name=codes></td><td width=10% class='tableH'>
Код: 
<?php
include "./spswrd/index.php";
?>
</td></tr><tr>
</td></tr>
<td width=10% class='tableH'>О себе:</td><td width=35% class='tableH'><textarea cols=45 rows=5 name=about></textarea></td><td width=10% class='tableH'>1000 символов</td></tr><tr>
<td width=10% class='tableH'>Аватара:</td><td width=35% class='tableH'><input type=file size=35 name="av" ></td><td width=10% class='tableH'> </td></tr><tr>
<td width=10% class='tableH'>&nbsp;<td width=35% class='tableH'><input type=submit name=add_user value="Зарегистрироваться">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=reset name=clear_form value="Очистить поля"></td><td width=10% class='tableH'>&nbsp;</td>
</form></tr></table>



выводится просто то, что написано в файле ./spswrd/index.php (строка 161), это не правильно... как сделать вывод картинки...

капча прикреплена в архиве...

и это набросок кода... потому что на мой взгляд он слишком "дырявый"... но чтоб хотя бы знать как вставлять капчу, набудущее

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  kcaptcha.zip 164,42 Kb


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
solenko
Дата 27.12.2008, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Shark, замечательная каптча - http://recaptcha.net/ легко встраивается (на сайте есть примеры и библиотеки, кажется), usability, accessibility на высоком уровне.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Shark
Дата 27.12.2008, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



solenko, а может все-таки разберемся с тем, что я написал???


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
solenko
Дата 27.12.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Shark, дык разбирайтесь.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
theworldcreator
Дата 27.12.2008, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



Прости, не стану разбираться в твоем коде(ибо лень), но обычно капча реализуется таким образом: есть php скрипт который генерирует изображение и отдает пользователю(обычно не сохраняя ни куда, просто отдает). То есть у него(скрипта) есть само содержимое изображения, а он грубо говоря делает echo. Далее браузер не смотря на расширение .php думает что это обычная картинка, поэтому подключается она так: <img src='script.php'>. Заодно в том скрипте обычно создается сеансовая переменная, в которой содержится собственно код, написанный на картинке. Ну и можно сохранить время создания, чтобы не давать пользователю время на раздумье(точнее чтобы не давать программам-анализатором время на анализ). Форма, рядом с которой выведена картинка, ведет на страницу, на которой проверяется соответствие переменной в сессии и переменной пришедшей от пользователя. Не зависимо от результата, сеансовую переменную нужно убить(иначи ты реализуешь одну из самых распространненных дыр капчи). Вот, все готовые решения есть тот самый первый скрипт, делающий картинки. Если ты вызовешь такой скрипт в браузере, увидишь что-то вроде этого: http://upload.wikimedia.org/wikipedia/comm.../69/Captcha.jpg
PM MAIL WWW ICQ   Вверх
Shark
Дата 27.12.2008, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



theworldcreator, так вот как пишется (img src='script.php')... а я думал по другому, и если бы ты посмотрел хотя бы на код (161 строка) ты бы увидел что там написано так:
Код

<?php
include "./spswrd/index.php";
?>


щас код потестирую и скорее всего поставлю галочку, что вопрос решен


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Shark
Дата 28.12.2008, 03:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



вопрос решен!... спасибо всем за помощь!!!
изучаю написание каптчей


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0660 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.