Google
  Web alb-net.com   
[Alb-Net home] [AMCC] [KCC] [other mailing lists]

List: Web-design

[web-design] Nje program i vogel ne Perl

Etrit Bardhi etrit at alb-net.com
Tue Dec 29 12:19:35 EST 1998


Mirdita,

siq u kam premtuar me heret, po e dergoj nje program te vogel ne Perl qe e
mundeson lidhjen ne nje nyje te caktuar permes ndonje shifre.   p.sh. nese
deshironi qe te keni ndonje faqe te mshefte, dhe vetem persona qe e dine
shifren te kene mundesine te lidhen aty, kjo mund te behet fare lehte
nepermjet ketij programi.  Nevojiten tre fajlla (apo skeda sipas info-tech
;)  - login.html, login.cgi dhe login.db

login.html eshte nje skede e shkruar ne HTML te cilen njerezit do t'a shohin
ne faqen tuaj, e kjo do t'i thirre skedat tjera, login.cgi dhe login.db.
dmth kjo skede i pason vlerat e dy atributeve 'name' dhe 'password' te cilat
login.cgi do t'i perdore per te shikuar se a gjinden keto vlera ne skeden
tjeter login.db (dmth a do t'ju le te kaloni ne faqen tjeter).

login.cgi eshte nje program i shkruar ne Perl.  Institucioni i juaj i
internetit (ISP komerciale apo shkolla ku e keni lidhjen ne internet) duhet
ta kete kompajllerin (si i thuhet kesaj ne shqip?) te instaluar qe te mund
ta perdorni.  Nese nuk jeni te sigurte, pyetni administratorin tuaj
(zakonisht duke derguar e-mail ne root at domain-i i juaj) nese ekziston
kompajlleri Perl dhe ku gjindet, pasi qe duhet t'a dini t'a vendosni ne
rreshtin e pare te programit.  ne rastin tim, shkolla ime e ka kompjallerin
ne direktorijumin /usr/local/bin/perl keshtu qe rreshti i pare i programit
login.cgi ia fillon me:

#!/usr/local/bin/perl

ky program i merr dy atributet 'name' dhe 'password' nga login.html dhe e
hap nje skede tjeter login.db per te shikuar se a gjinden keto atrubyte ne
at skede.

skeda login.db i ka nga tre rreshta per cdo person.  Rreshti i pare eshte
atributi 'name', rreshti i dyte 'password' ndersa i treti 'nickname.'  si ne
shembullin qe vijon:

Etrit
Mypassword
Mr. Etrit

Nese personi e shkruan Etrit si vlere per atributin login ne login.html dhe
Mypassword si vlere per password, atehere programi do t'u lejoje te vazhdoni
te kaloni ne faqen e re (ne kete rast Manager.html - shiko login.cgi) pasi
qe keto vlera gjinden ne login.db duke u pershendetur me rreshtin e trete qe
gjindet ne skeden login.db (ne kete rast Mr. Etrit).

Nese ato vlera nuk gjinden ne login.db, atehere programi do te kercen ne
faqen mainlog.html (shiko login.cgi, rreshti i parafundit).

Shpresoj se ky program i thjeshte do t'ju hyje ne perdorim, ndersa nese
shihni ndonje gabim apo keni ndonje sugjerim, eshte mire te diskutohet me
tutje ne kete liste.

Te fala,
Etriti.

programet:
---------------
login.html:
---------------

<BODY BGCOLOR = "BLACK" TEXT = "WHITE">
<br>
<center><b><h2> Prova per web-design at alb-net.com </h2></center>
<form action="login.cgi" method=post>

<table border = 0>
<tr>
<td valign = bottom>
<pre>        <h5> Login Name: </h5> </td>
<td>    <INPUT name="name"></td>

</tr>
<tr>
<td valign = bottom>
        <h5> Password: </h5> </td>
<td>    <INPUT TYPE="PASSWORD" name="password"></td>
</tr>
<br>
</table>
<br>
<br>
<br>
<input type=submit name=submit value="Login">
<input type=submit name=reset value="Reset">
</form>
</body>

------------
login.cgi:
------------

#!/usr/local/bin/perl

$mailprog = '/usr/sbin/sendmail';

$recipient = 'ebardhi at ic.sunysb.edu';

# Print out a content-type for HTTP/1.0 compatibility
print "Content-type: text/html\n\n";

# Keep the curious out.
if ($ENV{'REQUEST_METHOD'} ne "POST") {
  print "<title>Invalid Script Access</title>";
  print "<h2>Invalid script access.</h2>\n";
  exit;
}

# Get the input
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

# Split the name-value pairs
@pairs = split(/&/, $buffer);

foreach $pair (@pairs)
{
    ($name, $value) = split(/=/, $pair);
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $FORM{$name} = $value;
}

&blank_response unless ($FORM{'name'} &&
                        $FORM{'password'});

$ok = 0;

open (PW, "login.db");
while ($name = <PW>) {
   $password = <PW>;
   $nickname = <PW>;
   chop($name); chop($password);
   if (($name eq $FORM{'name'}) and ($password eq $FORM{'password'})) {
      $ok = 1; last; }
}
close PW;

if ($ok == 1) {

   print "<center><p><h2><br><br>Greetings $nickname! <br><br>Welcome
to\n";
   print ' <body bgcolor="#000000" text="white"><a
href="Manager.html">getCustomizedMenu Cafe.</a>'
} else {
   print "<center><p><h2><br><br>I am sorry $FORM{'name'},<br> but you do
not have proper
\n";
   print "access to <br>getCustomizedMenu Cafe!\n";
   print ' <br><br>Back to <body bgcolor="#000000" text="white"><a
href="mainlog.html">Main Login Screen.</a>'
}

------------
login.db:
------------

Etrit
Mypassword
Mr. Etrit
Arta
Shifra
Ms. Arta

-------------- next part --------------
A non-text attachment was scrubbed...
Name: login.cgi
Type: application/octet-stream
Size: 1462 bytes
Desc: not available
Url : http://www.alb-net.com/pipermail/web-design/attachments/19981229/7a6cfebb/attachment.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: login.db
Type: application/octet-stream
Size: 48 bytes
Desc: not available
Url : http://www.alb-net.com/pipermail/web-design/attachments/19981229/7a6cfebb/attachment-0001.obj 
-------------- next part --------------
HTML attachment scrubbed and removed


More information about the Web-design mailing list