At 11:19 18-08-99 +0700, you wrote:
>ada yang tahu gak
>caranya biar suatu page dalam site
>bisa diakses oleh member yang terdaftar doang
>jadi harus masukin login dan password (http auth)
>
>maksud pertanyaan gue, yang berhubungan 
>dengan cgi/perl script nya?

paling praktis sebetulnya dengan HTTP Authentication
(yaitu, .htaccess + htpasswd kalo di Apache), toh
dengan CGI script tidak diperoleh keamanan yang 
lebih.

pake CGI, caranya sederhana aja. login dan password
dikirim pake POST dari client, trus diambil dan
dicocokin dengan "database" (hash, flat file, DBM,
mysql table, apa saja) yang ada di server. untuk
request selanjutnya, terserah apakah si script
mengirim cookie atau mengirim balik login-password
ini sebagai hidden field di form. untuk page statik,
tentunya cookie yang dipilih.

contoh konkret kurang lebih begini:

cek.cgi:
=====
#!i:/perl/bin/perl.exe -w
        # sori, saya lagi di win (korban winmodem :-)

undef $/;
use CGI ":standard";
use CGI::Carp "fatalsToBrowser";
        # note: this only works for html files

$dir = "c:/data/pepe/web/coba/990818";
        # letak file-file html

$login = 'steven';
$pass  = 'nevets';
        # login dan password yang betul

if (defined cookie('kode') and cookie('kode') eq 'simsalabim'
        # tujuannya cek aja apa kode di cookie sesuai dengan
        # yang kita kirim

or defined param('login') and defined param('pass')
and param('login') eq $login and param('pass') eq $pass)
        # bila belum ada cookie, pastikan login + password
        # dikirim
{
        if (!defined cookie('code')) {
        print header(-text => 'text/html',
        -cookie => cookie(-name=>'kode',-value=>'simsalabim'))
        } else {
        print header
        }

        open F, "$dir/".path_info;
        print <F>;
}
else
{
        print 
        header,
        start_html,
        start_form,
        "Login: ",
        textfield(-name => 'login'),
        br,
        "Password: ",
        password_field(-name => 'pass'),
        br,
        submit,
        end_form,
        end_html;
}
__END__
=====

lalu set di config Apache untuk direktori yang ingin diprotek:
=====
<Directory /path/ke/file/html>
Action text/html /uri/dari/cek.cgi
</Directory>
=====

that's it, i think. HTH.

--
mailto:[EMAIL PROTECTED]
http://steven.haryan.to

Bandung Perl Mongers: http://bandung.pm.org


--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]
Hosted by http://www.Indoglobal.com

Kirim email ke