
Агент алкомафии
   
Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й
Репутация: 2 Всего: 17
|
не работает, все что пишу - не хочет работать вод пример, код картинки в середине, кто-то скажет гже ошибка пожалуйста? | Код | #!/usr/local/bin/perl
#use strict; #use CGI qw(:standard); use CGI; use CGI::Carp qw(fatalsToBrowser); use DBI; #use CGI 'param','header'; use DBD::mysql; use Math::Round qw(nearest); use Image::Magick;
#use strict; use warnings; use CGI::Cookie; use Storable; use vars '$dbh', '%user_vars'; use CGI qw(param); use POSIX; use Digest::MD5 qw(md5_hex); use Encode qw(encode_utf8); use CGI qw/:standard/;
print header(-type=>"*/*",-charset=>"utf-8");
#require "dev.pl";
$query = CGI->new(); $action=$query->param("action"); $reg=$query->param("reg");
$sitedir="/usr/local/www/q21/sites/"; $subdir="thumbnails/000$num.jpg"; $fullfilename="$sitedir$subdir";
sub filelock { flock(DB,2); } sub fileunlock { flock(DB,8); }
sub get_time { ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); $mon++; $year+=1900; if ($mday<10) { $mday="0$mday"; } if ($mon<10) { $mon="0$mon"; } if ($min<10) { $min="0$min"; } $date="$mday $mon $year"; $time="$hour:$min:$sec"; $cur_all_day=$mday+$mon*30+$year*365; }
if ($action=~/faq$/i){ #head_page();
mydate();
#end_page(); }
elsif ($action=~/new$/i){ #heeader();
subheader();
#left_list_dj2(); #left_dj_detalis1(); #rith_table_stati2(); #footer(); }
elsif ($action=~/support$/i){ #logout(); #heeader(); subheader(); #left_list_dj2(); #left_dj_detalis1(); #rith_table_stati2(); #footer(); }
elsif ($reg){ reg(); }
else { #heeader(); #subheader(); left_list_dj2(); #left_dj_detalis1(); #rith_table_stati2(); #footer(); }
my @rnd_txt = ('0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f','g','h','i','j', 'k','l','m','n','o','p','r','s','t','u', 'v','w','x','y','z'); srand;
# Генерим ключ for (0..5) { my $s = rand(@rnd_txt); $passr .= $rnd_txt[$s] }
sub left_list_dj2 {
print << "[INFO5]";
<html>
<title>Добавить сайт</title>
<body>
<p align="center"><strong><font size="5">Global Hosting</font></strong></p>
<hr>
<p align="center"><strong><font size="2"color=red>ВНИМАНИЕ! Заполните пожалуйста все поля</font></strong></p> <p align="center"><strong><font size="2"color=red>Главная тсраница еще не готова!</font></strong></p>
<form action="/cgi-bin/add" method="POST"> <div align="center"><center><table border="0" cellspacing="0"> <tr> <td align="right">Login:</td> <td colspan="2"><input type="hiden" name="login" size="15"> [a-b][0-9]от 2 до 15 символов </td> </tr>
<tr> <td align="right">Passwd:</td> <td colspan="2"><input type="password" name="passwd" size="15"> можите ввести сгенерируемый пароль: <b>$passr<b> от 6 до 15 символов <font color=red>(пожалуйста, придумайте надежный пароль)</font></td> </tr>
<tr> <td align="right">Passwd:</td> <td colspan="2"><input type="password" name="passwd2" size="15"> повторите</font></td> </tr>
<tr> <td align="right">Country:</td> <td colspan="2"><input type="hiden" name="country" size="15"></td> </tr>
<tr> <td align="right">City:</td> <td colspan="2"><input type="hiden" name="city" size="15"></td> </tr> <tr> <td align="right">E-mail:</td> <td colspan="2"><input type="hiden" name="email" size="15"></td> </tr> <tr> <td align="right">Title:</td> <td colspan="2"><input type="hiden" name="title" size="15"> Название вашего сайта (для базы данных, идентификации)</td> </tr> <td></td> <td align="center"><input type="submit" name="reg" value="Добавить"></td> <td align="center"><input type="reset" value="Очистить"></td> </tr> </table>
[INFO5]
use GD::SecurityImage 1.64; # we need the "blank" style my $font = "StayPuft.ttf"; my $rnd = "10.257"; # counter data my $image = GD::SecurityImage->new( width => 140, height => 75, ptsize => 30, rndmax => 1, # keeping this low helps to display short strings frame => 0, # disable borders font => $font, ); $image->random( $rnd ); # use the blank style, so that nothing will be drawn # to distort the image. $image->create( ttf => 'blank', '#CC8A00' ); $image->info_text( text => 'You are visitor number', ptsize => 10, strip => 0, color => '#0094CC', ); $image->info_text( text => '( c ) 2 0 0 7 m y s i t e', ptsize => 10, strip => 0, color => '#d7d7d7', y => 'down', ); my($data, $mime, $random) = $image->out; binmode STDOUT;
print $q->header(-type => $mime_type);
print header -type => "$mime"; print $data;
print << "[INFO5]"; </center></div> </form>
<hr>
<p align="center"><a href="http://o">Инструкция, рекомендации обсуждения!Обьязательно посетите/a> </p>
</body> </html>
[INFO5]
exit; }
sub reg {
$login=$query->param("login"); $passs=$query->param("passwd"); $passs2=$query->param("passwd2"); $country=$query->param("country"); $city=$query->param("city"); $email=$query->param("email"); $title=$query->param("title");
## �?�?�?�? �?�?�?�? HTTP_X_FORWARDED_FOR �?���?�?�?�?�?�?�? if ( $ENV{ HTTP_X_FORWARDED_FOR } ) {
## �? ���?�?�?�?�?�?�?�?�? $ip �?�?���?�?�?�?�?�?�?�?�? IP-�?�?�?�?�? ## �?�?�?�?�?�?�?, ���?�?�?�?�?�?�?�?�?�?���? �?�?�?�?�? ���?�?�?�?�? $ip = $ENV{ HTTP_X_FORWARDED_FOR}; } else {
## �? ���?�?�?�?�?�?�?�? �?�?�?�?�?�? �?�?���?�?�?�? �? $ip ## �?�?�?�?�?�?�?�?�? IP-�?�?�?�?�? �?�?�?�?�?�?�? $ip = $ENV{ REMOTE_ADDR }; }
$n=0;
#логин
$login =~ s/^\\s+//; $login =~ s/\\s+$//;
#$login =~ s/\t\n\r\f\v/;
print << "[INFO5]"; <html> <title>Добавить сайт</title>
<body>
<p align="center"><strong><font size="5"></font></strong></p>
<hr> [INFO5]
if ((!length($login)) || (30 < length($login)) || ( 1 > length($login)) || (!$login =~ /^[A-Za-z0-9]+$/)) {
print << "[INFO]";
<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> Вы не ввели длогин logi0, логин должен быть от 2 до 30 символов</strong></div><br>
[INFO] $n++; }
$passs =~ s/^\\s+//; $passs =~ s/\\s+$//; $passs =~ s/\t\n\r\f\v//;
if ($passs !~ $passs2) { print << "[INFO]";
<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong>Пароли не совпали</strong></div><br>
[INFO] $n++; }
if ((!length($passs)) || (30 < length($passs)) || ( 7 > length($passs)) || (!$passs =~ /^[A-Za-z0-9]+$/)) {
print << "[INFO]";
<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> Пароли не правильные, должно быть 7 символов
[INFO] $n++; }
if ($passs !~ $passs2) { print << "[INFO]";
<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong>Пароли не совпали</strong></div><br>
[INFO] $n++; }
$country =~ s/^\\s+//; $country =~ s/\\s+$//; $country =~ s/\\s+/ /g;
#$country =~ s/[^ a-z0-9\\/\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\_\\=\\+\\\\\\|\\[\\{\\]\\}\\;\\:\\''\\"\\,\\<\\.\\>\\?\\t\\n]//gi;
if ((!length($country)) || (1000 < length($country)) || ( 2 > length($country)) || ($country=~ /^[A-Za-z]w+$/) ) {
print << "[INFO]";
<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> Город</strong></div><br> [INFO] $n++; }
$city =~ s/^\\s+//; $city =~ s/\\s+$//; $city =~ s/\\s+/ /g;
#$city =~ s/[^ a-z0-9\\/\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\_\\=\\+\\\\\\|\\[\\{\\]\\}\\;\\:\\''\\"\\,\\<\\.\\>\\?\\t\\n]//gi;
#($country=~ /^[A-Za-z]\w+$/)
if ((!length($city)) || (1000 < length($city)) || ( 3 > length($city)) || ($country=~ /^[A-Za-z]w+$/) ) {
print << "[INFO]";
<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> Страна </strong></div><br> [INFO] $n++; }
$email =~ s/&/&/go; $email =~ s/</</go; $email =~ s/</>/go; $email =~ s/'/'/go; $email =~ s/"/"/go;
if ((!length($email)) || (1000 < length($email)) || ( 3 > length($email)) || (!$email =~ /^[a-zA-Z_\\.-][a-zA-Z0-9_\\.-\\d]*\\@[a-zA-Z\\.-\\d]+\\.[a-zA-Z]{2,4}$/) ) {
print << "[INFO]";
<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> мыло </strong></div><br> [INFO] $n++; }
$title =~ s/&/&/go; $title =~ s/</</go; $title =~ s/</>/go; $title =~ s/'/'/go; $title =~ s/"/"/go;
if ((!length($title)) || (1000 < length($title)) || ( 3 > length($title))) {
print << "[INFO]";
<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> Вы не ввели длогин ФИО, имя должен быть с не менее чем 2 символа и не более 50 символов</strong></div><br> [INFO] $n++; }
my $dbh = DBI->connect("DBI:mysql:database=hosting_db;host=localhost", { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;
my $sth = $dbh->prepare('SELECT id FROM users WHERE name = ? LIMIT 1'); $sth->execute($login); my $ln = $sth->fetchrow_hashref(); $sth->finish(); $dbh->disconnect(); # �?�?�?�? �?�?�?�?�?�? �?�?�?�? �? �?�?�? �?�? ���?�?�?�?�?�?�? if ($ln && $ln > 0) {
print << "[INFO]";
<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong>Логи нуже присутсвует</strong></div><br>
[INFO] }
my $dbh = DBI->connect("DBI:mysql:database=hosting_db;host=localhost",, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;
my $sth = $dbh->prepare('SELECT id FROM users WHERE email = ? LIMIT 1'); $sth->execute($email); my $le = $sth->fetchrow_hashref();
$sth->finish(); $dbh->disconnect(); # �?�?�?�? �?�?�?�?�?�? �?�?�?�? �? �?�?�? �?�? ���?�?�?�?�?�?�? if ($le && $le > 0) {
print << "[INFO]";
<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong>данный адресс $email уже существует</strong></div><br>
[INFO] }
print "$title"; print "$email"; print "$city"; print "$country"; print "$passs"; print "$passs2"; print "$login";
if ($n > "0") {
print << "[INFO5]";
<p align="center"><strong><font size="2"color=red>ВНИМАНИЕ! Заполните пожалуйста все поля</font></strong></p> <p align="center"><strong><font size="2"color=red>Главная тсраница еще не готова!</font></strong></p>
<form action="/cgi-bin/add" method="POST"> <div align="center"><center><table border="0" cellspacing="0"> <tr> <td align="right">Login:</td> <td colspan="2"><input type="hiden" name="login" size="15"> [a-b][0-9]от 2 до 15 символов </td> </tr>
<tr> <td align="right">Passwd:</td> <td colspan="2"><input type="password" name="passwd" size="15"> можите ввести сгенерируемый пароль: <b>$passr<b>! от 6 до 15 символов <font color=red>(пожалуйста, придумайте надежный пароль)</font></td> </tr>
<tr> <td align="right">Passwd:</td> <td colspan="2"><input type="password" name="passwd" size="15"> повторите</font></td> </tr>
<tr> <td align="right">Country:</td> <td colspan="2"><input type="hiden" name="country" size="15"></td> </tr>
<tr> <td align="right">City:</td> <td colspan="2"><input type="hiden" name="city" size="15"></td> </tr> <tr> <td align="right">E-mail:</td> <td colspan="2"><input type="hiden" name="email" size="15"></td> </tr> <tr> <td align="right">Title:</td> <td colspan="2"><input type="hiden" name="title" size="15"> Название вашего сайта (для базы данных, идентификации)</td> </tr> <td></td> <td align="center"><input type="submit" name="reg" value="Добавить"></td> <td align="center"><input type="reset" value="Очистить"></td> </tr> </table> </center></div> </form>
<hr>
<p align="center"><a href="http://open-dj.2info.dp.ua">Инструкция, рекомендации обсуждения!Обьязательно посетите/a> </p>
</body> </html> [INFO5] exit; }
($sec,$min,$hour,$mday) = localtime(time); $ttt=time; #print "$ttt";
my @rnd_txt = ('0','1','2','3','4','5','6','7','8','9'); srand;
# Генерим ключ for (0..5) { my $s = rand(@rnd_txt); $session .= $rnd_txt[$s] }
print "pp"; $qhost="host_$session";
print $qhost;
my $ip0="1"; my $email0="1"; my $datetime=$ttt; my $passsh = md5_hex($passs); my $datecurrent_in="1"; my $datereg="1"; my $info=$title;
print "$passsh"; $dbh = DBI->connect("DBI:mysql:database=hosting_db;host=localhost",, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;
$result = $dbh->prepare("INSERT INTO users ( name, pass, ip, country,city, email, info, ip0, email0, registr, datetime, datetimecur, q) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)") || die "aw";
$result->execute($login, $passsh, $ip, $country, $city, $email, $info, $ip0, $email0, $datereg, $datetime, $datecurrent_in, $qhost);
$dbh->disconnect();
print << "[INFO5]"; <p align="center"><strong><font size="2"color=red>ВНИМАНИЕ! Заполните пожалуйста все поля</font></strong></p> <p align="center"><strong><font size="2"color=red>Главная тсраница еще не готова!</font></strong></p> <p align="center"><strong><font size="2"color=red>акаунт создан!</font></strong></p> <hr> <p align="center"><a href=>Инструкция, рекомендации обсуждения!Обьязательно посетите/a> </p> </body> </html> [INFO5] exit; }
|
если поставить | Код | print header(-type =>image/$mime);
|
пишет: Illegal division by zero at add line 286. Это сообщение отредактировал(а) gcc - 14.6.2008, 05:41
|