9.3. FindElev

Af: Jens Karsøe

Uanset hvor mange elever, der er på en skole, kan det hurtigt blive svært for en lærer eller en klassekammerat at finde en elevs hjemmeside.

FindElev er et CGI-script, skrevet i perl. Scriptet søger i en alm. tekstfil, og viser resultatet som en web-side. Herfra kan brugeren så klikke sig hen på den ønskede elevs hjemmeside. Den fil, scriptet søger i, har samme format som filen /etc/passwd. Dvs man kan søge i brugernavn, brugerid og navn. Man kan også vælge selv at lave sin egen databasefil. Blot skal man huske, at det skal være en kolon (:) separeretfil, med 5 kolonner:

1. kolonne skal være brugerid.
2. kolonne er i passwd sat til gruppe oplysninger, men kan ændres til andre oplysninger
3. kolonne er til brugernr. (scriptet er sat til kun at vise personer med idnr >499)
4. kolonne er i passwd sat som et x, men kan ændres til andre oplysninger.
5. kolonne er brugerens fulde navn.

Scriptet søger i hele linien, og altså ikke kun i de oplysninger, som vises. Man kan derfor bruge de tomme kolonner (2 og 4) til ekstra oplysninger, ex valgfag, undervisere, klasse mv. Dernæst tager scriptet udgangspunkt i, at alle elevernes hjemmesider kan findes ud fra deres brugerid (brugernavn) ex: http://www.gnuskole.dk/~brugerid

9.3.1. Download og opsætning af FindElev

FindElev kan downloades her (find.pl)

Alle scripts skal ligge på serveren i mappen cgi-bin. For Red Hat 6.2 er det /home/httpd/cgi-bin og Redhat 7.x er det /var/www/cgi-bin. For at få FindElev til at læse den rigtige fil, på den rigtige server skal du ændre nogle oplysningerne i find.pl.

For det første er det vigtigt, at scriptet ved, hvilket domæne elevernes hjemmesider ligger i. Derfor ændres:

my $domane = "www.gnuskole.dk"

til

my $domane = "www.jeresdomæne.dk"

Næste skridt er at ændre oplysninger om hvilken fil elevernes oplysninger skal findes i. Derfor ændres:

my $elevfil = "elever"

til

my $elevfil = "jeresfil"

TIP: Hvis scriptet driller, og ikke ser ud til at finde den rigtige fil. Så prøv at skrive det fulde stinavn ex. /home/httpd/cgi-bin/elever. Nu skulle scriptet gerne være sat op med de rigtige oplysninger. Nu mangler vi bare at give alle lov til at benytte scriptet. Det klares med kommandoen (RH6.2):

[root@gnuskole /root]# chmod 755 /home/httpd/cgi-bin/find.pl

(RH 7.0)

[root@gnuskole /root]# chmod 755 /var/www/cgin-bin/find.pl

Sidste skridt er nu at oprette den fil, som scriptet skal læse i. Det kan gøres ved at kopiere filen /etc/passwd ind i samme bibliotek som find.pl ligger (RH6.2):

[root@gnuskole /root]# cp /etc/passwd /home/httpd/cgi-bin/elever

(RH 7.0)

[root@gnuskole /root]# cp /etc/passwd /var/www/cgi-bin/elever

Bemærk: Hvis du har valgt at ændre $elevfil i scriptet, skal du ændre "elever" i ovenstående.

Selvom filen du lige har kopieret hedder noget, der kunne minde om passwords, er der ingen passwords at finde. Du kan selv tjekke.

9.3.2. Start søgning

For at scriptet overhovedet kan begynde at søge noget som helst, skal det blive kaldt et sted fra. Det nemmeste er at gøre det fra en hjemmeside. Indsæt flg. html kode i et webdokument:

<form method="POST" action="http://www.gnuskole.dk/cgi-bin/find.pl"> 
<p> 
<input type="text" name="T1" size="20"> 
<input type="submit" value="Søg" name="B1">
</p>
</form>

Husk at ændre www.gnuskole.dk til jeres eget domæne.