Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > генерации капчи для perl


Автор: Frostss 23.5.2011, 20:07
Есть скрипт-авторизации, который запрашивает Логин и пароль. Запрос сверяет введенные значения с базой данных, и если все верно пишет "добро пожаловать", иначе выводит ошибку и еще раз форму для авторизации. Помогите, пожалуйста чтобы кроме запроса логина и пароля ,запрашивалось еще ввести код с картинки(CAPTCHA),если он правильный то написать "добро пожаловать",если нет,то написать что в введенных данных содержится ошибка ,предоставить заново форму для ввода и новую картинку


Код

#!/usr/bin/perl
print "Content-type:text/html\n\n";
use CGI;
use DBI;
my $q=CGI->new;
$dbh=DBI->connect("DBI:mysql:test","","") or print "Error connect base";
$step=$q->param ('step');
if ($step){
$login=$q->param('login');
$password=$q->param('password');
$sth=$dbh->prepare("SELECT login.id FROM login,pas where login.name=\"".$login."\" and pas.pas=\"".$password."\" and login.id=pas.id;");
$sth->execute;
$id=$sth->fetchrow();
if (!$id){

print "В введенных Вами данных содержится ошибка!Попробуйте еще раз
<form>
<pre>
login <input type=text name=login>
password <input type=text name=password>
<input type=hidden name=step value=yes>
<input type=submit>
</form>";
}
else {print "Добро пожаловать!!!!";}
}
else {
print "<form>
<pre>
login <input type=text name=login>
password <input type=text name=password>
<input type=hidden name=step value=yes>
<input type=submit>
</form>";
}
$sth->finish;
$dbh->disconnect; 

Автор: arto 23.5.2011, 23:04
а у вас можно завести логин "\"; drop database login;" ?

Автор: Frostss 24.5.2011, 09:26
если это необходимо, то наверное можно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)