Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako u ovu skriptu da ubacim captcha?

[es] :: Perl :: Kako u ovu skriptu da ubacim captcha?

[ Pregleda: 3669 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

storne
Loznica

Član broj: 4573
Poruke: 115
93.86.165.*

Sajt: www.imelman.co.rs


Profil

icon Kako u ovu skriptu da ubacim captcha?04.05.2009. u 14:31 - pre 181 meseci
Code:
#!/usr/bin/perl

require ('/home/kostajni/public_html/cgi-bin/cgi-lib.pl');
##############################################################################
#              ----------------------
#              CGI eXa-Guestbook v1.3
#              ----------------------
#
#         File: exa_guestbook.pl
#         Opis: Sadrzava potrebo programsko okruzenje koje Vam omogucuje rad sa ovim CGI/PL
#               Scriptom. Spada u vrstu "interaktivnih" CGI Scripti zbog svojstva direktne
#               komunikacije sa posjetiocem Vase WEB stranice.
#        Autor: Salko Bijedic - Q_Line
#       E-Mail: [email protected]
#          WEB: http://www.extragency.co.ba/
#      Verzija: 1.3
#
# (c) 2001 - eXtragency. 
# (r) Q_Line NETWORK
#
# Ova scripta nije "freeware" i za slobodnu upotrebu! Molim da procitate 
# obavezno "README" file za sva upustva oko registracije ili koristenja. 
#
##############################################################################

# Podesite Vas Perl interpreter (prva linija ovog filea)
#
# Zbog lakseg rada sa scriptom ostavite putanju do cgi-lib.pl onako kako je i naglasena u
# trecoj liniji ovog .pl filea. Dakle, ovaj exa_guestbook.pl i cgi-lib.pl morate postaviti
# u isti direktorij, inace ako to ne uradite morate navesti tacan path do cgi-lib.pl filea.
#
###########################################
# Kratak opis rada exa_upload.cgi scripta #
###########################################
#
# Ne trebamo Vam puno objasnjavati cemu zapravo sluzi ovaj Guestbook CGI/PL Script. Vjerujem
# da ste se svi bar jednom upisali u neku Knjigu gostiju (sto i predstavlja ovaj Script). Ono
# sto karakterise ovu Scriptu, pored programskog Perl okruzenja u kome je i radjena, jeste to
# da Vam dopusta potpunu slobodu uredjenja filea u kome ce se nalaziti i forma za upis i forma
# za pregled upisa u Knjigu gostiju. Dakle, upis i pregled podataka iz ove Knjige gostiju se
# vrse u nekom .html , .shtml , .asp ili ako zelite .php fileu , sto Vam zapravo ostavlja, onu
# nevjerovatnu mogucnost da po svojoj zelji uredite graficki i interaktivno Vasu Knjigu gostiju.


# --------- Pocetak podesavanja Guestbook Scripta -------------------------------

# Naglasite tacan path do Vaseg Mail programa na Serveru koji ce vrsiti slanje E-Maila.
$mailprog = '/usr/sbin/sendmail';

# Upisite tacnu URL adresu do filea u kome ce se vidjeti svi upisi u Knjizi gostiju.
$guestbook_url = "http://www.kostajnik.com/komentari.html";

# Upisite tacnu path adresu do filea u kome ce se vidjeti svi upisi u Knjizi gostiju.
$guestbook_file = "/home/kostajni/public_html/komentari.html" ;

# Upisite E-Mail adresu na koju zelite da Vam dolaze obavjesti o novom upisu u Knjigu gostiju.
# Nemojte brisati karakter backslash "\" ispred znaka "@" kad budete pisali E-Mail adresu.
$my_email = "contact\@kostajnik.com";

# Za pogresne upise ili pravilno ne popunjena polja kod upisa u Knjigu gostiju, ovdje mozete
# podesiti naslov stranice sa greskom, ispod kog ce se ispisivati vrsta i opis greske.
$message = "Greska prilikom upisa u Knjigu gostiju." ;

# --------- Kraj podesavanja Guestbook Scripta ----------------------------------

################################################################################
# Ispod ove linije mozete mjenjati SAMO HTML kod i pripadajuci tekst, uz OPREZ #
################################################################################

&ReadParse(*field);
$name = $field{'name'} ;     
$email = $field{'email'} ;     
$mesto = $field{'mesto'} ;          
$main_message = $field{'main_message'} ;     
$found_err = "" ;
$getdate = `date +"%D %T %Z"`; 
chop ($getdate);

# Ako se zaboravi popuniti neko polje prilikom pisanja unutar Knjige gostiju,
# ispisi HTML kodom ERROR / GRESKA poruku za polje u koje nije upisan podatak.

$errmsg = "<LI>Zaboravili ste upisati Vase ime.</LI>\n" ;
if ($name eq "") {
    $message = $message.$errmsg ;
    $found_err = 1 ; }
$errmsg = "<LI>Upisite pravilno Vasu E-Mail adresu.</LI>\n" ;
if ($email !~ /.+\@.+\..+/) {
    $message = $message.$errmsg ;
    $found_err = 1 ; }
$errmsg = "<LI>Upisite mesto.</LI>\n" ;
if ($mesto eq "") {
    $message = $message.$errmsg ;
    $found_err = 1 ; }
$errmsg = "<LI>Upsite Vas komentar.</LI>\n" ;
if ($main_message eq "") {
    $message = $message.$errmsg ;
    $found_err = 1 ; }
if ($found_err) {
    &PrintError; }

# Ispis unesenih podataka putem HTML koda u file koji sluzi kao izlazna
# WEB stranica na kojoj se nalaze svi upisi koji se mogu pregledavati.

open (FILE,"$guestbook_file") || die "Ne mogu otvoriti $guestbook_file: $!\n";
@lines = <FILE>;
close(FILE);

flock(POST, 2) ;
open (POST,">$guestbook_file") || die "Ne mogu otvoriti $guestbook_file: $!\n";
$main_message =~ s/&/&amp;/g;
$main_message =~ s/"/&quot;/g;
$main_message =~ s/>/&gt;/g;
$main_message =~ s/</&lt;/g;
$main_message =~ s/\cM\n/<BR>/g;

foreach $line (@lines) {
    if ($line =~ /<!--exagbovdje-->/) { 
    print POST "<!--exagbovdje-->\n";
    print POST "<DIR> \n";
    print POST "<FONT COLOR=\"#333333\"><B>Ime:</B></FONT> $name<BR> \n";
      print POST "<FONT COLOR=\"#333333\"><B>E-mail:</B></FONT> <A HREF=MAILTO:$email>$email</A><BR> \n";
    print POST "<FONT COLOR=\"#333333\"><B>Mesto:</B></FONT> $mesto</A><BR> \n";
    print POST "<FONT COLOR=\"#333333\"><B>Poslano:</B></FONT> $getdate<BR> \n";
    print POST "<FONT COLOR=\"#333333\"><B>Poruka:</B></FONT><BR>$main_message</DIR><HR WIDTH=90%><BR> \n";
    } else {
        print POST ("$line");
    }
}
close (POST);
flock(POST, 8) ;
&success;
&notify;

# Ispis HTML koda u starnicu koja ce posluziti kao file tipa zahvale, cime
# se daje korisniku do znanja da je uspjesno izvrsio upis u Knjigu gostiju.

sub success {
print "Content-type: text/html\n\n";
print<<"end1";
<HTML>
<head>
<title>Kostajnik - Komentari</title>
</head>
<BODY BGCOLOR=\"#56644A\">
<p align="center">Hvala na upisu u nasu Knjigu gostiju. Poruke mozete pogledati na <a href="www.kostajnik.com/komentari.html">Komentari</a></p>
</BODY>
</HTML>
end1
}

# Za svaki novi upis u Knjigu gostiju posalji E-Mail administratoru
# iste, sa kojim ga obavjestavas da ima novi upis u istu i od koga.

sub notify  {
    open (MAIL,"|$mailprog -t");
    print MAIL "To: $my_email\n";
    print MAIL "From: eXa Knjiga Gostiju\n";
    print MAIL "Subject: Novi upis u eXa Knjigu gostiju\n";
    print MAIL "Imate novi upis u Knjizi gostiju od $name\n";
    print MAIL "sa slijedeceg IP - $ENV{'REMOTE_HOST'} \n";
    print MAIL "Upis mozete pogledati na slijedecoj adresi $guestbook_url\n";
    close (MAIL);
exit;
}

# Ispis HTML koda za ERROR / GRESKE opsteg tipa.

sub PrintError { 
print "Content-type: text/html\n\n";
print "<HTML><TITLE>ERROR / GRESKA!</TITLE></HEAD><BODY BGCOLOR=\"#56644A\">\n\n";
print "<OL><H2>\n";
print $message;
print "</OL></H2></BODY></HTML>";

exit 0 ;
return 1 ; 
}


Potrebna mi je Captcha jer su me napali spameri. Registrovao sam se na protectwebform.
Tu sam dobio upustvo za instalaciju ali desava se sledeca stvar http://kostajnik.com/diskusija.html

Upustvo za instalaciju je:

Editing perl (.pl or .cgi) file
If you have perl powered script wich processes your web form, use this code.

1. Open the perl file which processes your form (How do i find the file that processes the form?).
2. Copy the code shown below ('Perl code:')
3. Past it after the line '#!perl' or '#!/usr/bin/perl' in the beginning of your file.

Code:

###################################################
# Code provided by http://www.protectwebform.com
use LWP::Simple; use CGI; use URI::Escape;
CGI::ReadParse();
my $pwf_message = "The image code you have provided does not match the actual one. Hit the 'back' button of your browser and input the correct code please.";

if(length($in{'protectwebformcode'}) > 30) {
   print "Content-type: text/html\n\n".$pwf_message;
   die;
}

my $protectwebformresult = 
get("http://protectwebform.com/veri...80&vp=t5nqrjsxvgzw&ri=" . uri_escape($ENV{'REMOTE_ADDR'}) . "&vs=" . uri_escape($in{'protectwebformcode'}));

if($protectwebformresult =~ m/<authorization status="0"/) {
   print "Content-type: text/html\n\nWarning. You are not authorithed to use image protection provided by http://www.protectwebform.com. Read http://www.protectwebform.com FAQ for more information";
}
if($protectwebformresult !~ m/<verification result="yes"/) {
   print "Content-type: text/html\n\n".$pwf_message;
   die;
}
# End of code provided by http://www.protectwebform.com
####################################################


1. Editing html file

1. Open the html file containing the form you want to protect in a simple text editor.
2. Copy the code shown below ('Html code')
3. past it between tags:
<form ...> {past your code here}</form> in opened file.

Code:
<a href="http://www.protectwebform.com/" title="Captcha service - protectwebform.com!"><img src="http://www.protectwebform.com/images/ssl_lock.gif" border="0"></a> Enter the code shown in the image:<br /><input type="text" style="vertical-align:top;"  name="protectwebformcode" value=""> <img src="http://protectwebform.com/image/30980/">



Uradio sam kako je gore navedeno,ali javlja se problem koji mozete pogledati na sajtu. Pomozite.
Unapred zahvalan!
 
Odgovor na temu

[es] :: Perl :: Kako u ovu skriptu da ubacim captcha?

[ Pregleda: 3669 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.