|
Тема
|
Има ли нещо грешно в това?
|
|
Автор | Дparo (Нерегистриран) |
Публикувано | 10.05.01 19:33 |
|
Здравейте, това е част от Poll за гласуване.
Но като сложа тази част която проверява IP-то и не работи :(
Ако я махна, си работи без проблем...
Някаква идея? Искам да тръгне с възможността за проверка.
Предварително Ви благодаря
Ето и кода
sub ip_check {#Проверка на IP
$ipfile="data/$name.ips";
if ($ip=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/) {
$ip=pack("C4",$1,$2,$3,$4);
if ($1<11 || $2<11 || $3<11 || $4<11){
$ip=substr(pack("u",$ip),1);
chop($ip);
}
}
if (-e $ipfile) {
open (IPF, "< $ipfile") || print_error "Не се отваря $ipfile $!";
while (<IPF>) {
chop;
if ($_ eq $ip) {
$FORM{$name}='-1';
}
}
close(IPF);
}
if ($FORM{$name}>0) {
open (IPF, ">> $ipfile") || print_error "Не може да гласувате с този IP-адрес $ipfile $!";
print IPF "$ip\n";
close(IPF);
}
}
| |
Тема
|
Re: Има ли нещо грешно в това?
[re: Дparo]
|
|
Автор |
Дизeлджия (DieselOS) |
Публикувано | 11.05.01 10:08 |
|
Kakvo tochno ima v $ip?
| |
Тема
|
Re: Има ли нещо грешно в това?
[re: Дизeлджия]
|
|
Автор | Дparo (Нерегистриран) |
Публикувано | 11.05.01 16:55 |
|
Точно това ме съмняваше в цялата ситуация.
Ами създава си един IPS File като го кръщава на името на анкетата. До тук добре. При мен това е 01 или файла е 01.
Но вътре вместо да е моя IP адрес когато го пробвам е ето това : ?P```0``
И след мен никой вече не може да добави запис.
Явно има нещо....
| |
Тема
|
Re: Има ли нещо грешно в това?
[re: Дparo]
|
|
Автор | vms (Нерегистриран) |
Публикувано | 12.05.01 00:48 |
|
Ne mi e mnog iasno zashto izpolzvash tazi funkcia pack, a ne probvash s crypt
Veselin Stoilov
| |
Тема
|
Re: Има ли нещо грешно в това?
[re: vms]
|
|
Автор |
Дизeлджия (DieselOS) |
Публикувано | 14.05.01 10:29 |
|
Izglejda tova e gotov script!
Izglejda dosta stranno, na pruv poglwed :)
Lichno az, ne bih go napravil taka:)
| |
Тема
|
Re: Има ли нещо грешно в това?
[re: Дизeлджия]
|
|
Автор | Дparo (Нерегистриран) |
Публикувано | 14.05.01 23:26 |
|
Да, готов скрипт е.
Но вече го смених с друг.
И все пак, ако някой знае къде е проблема нека каже.
| |
Тема
|
Re: Има ли нещо грешно в това?
[re: Дparo]
|
|
Автор |
zlX (непознат
) |
Публикувано | 16.05.01 15:23 |
|
единственият проблем по скрипта е, че използваш функция "print_error", която я няма в тая част от кода дето си я пратил. Ако я замениш с die или print и нямаш проблем
| |
Тема
|
Re: Има ли нещо грешно в това?
[re: Дparo]
|
|
Автор | perlman (Нерегистриран) |
Публикувано | 18.06.01 15:09 |
|
#!/usr/bin/perl
my $name = 'petarcho';
my $ip = $ENV{'REMOTE_ADDR'};
my $ipfile = "name.ip";
&time;
print qq(Cannot operate with "$name" nad "$time") if ! &crypt;
print qq(Error IP address at $time.) if ! ✓
&put_in;
sub crypt {
&time;
if ($ip=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/) {
$ip = crypt ($name,$time);
}else{
print "At $time : Nevalidno \"IP\" \n";
exit;
}
}
sub check {
if (-e $ipfile) {
$i = 0;
open (IPF, "< $ipfile") || die "Cannot open file $ipfile. $!";
while (<IPF>) {
if ($_ eq $ip) {
$i--;
}else{
$i++;
}
}
close(IPF);
}
}
sub put_in{
if ( $i > 0 ) {
open (IPF, ">> $ipfile") || die "Cannot open file $ipfile.$!";
print IPF "$ip\n";
close(IPF);
}else{
print " Value is not INSERTED. ";
}
}
sub time {
$time = scalar(localtime);
return $time;
}
| |
Тема
|
Re: Има ли нещо грешно в това?
[re: Дparo]
|
|
Автор | sas (Нерегистриран) |
Публикувано | 24.07.01 15:41 |
|
ami az ne razbrah, problema e v scripta koito ne raboti ochakvaiki v fila da ima ip addressi dotted notation ili v drug nqkakav script koito ne gi zapisva tam i ot tova vsystnost idva problema
| |
|
|
|
|