#!/usr/bin/perl -wT # Title : prikbord.pl # Function : aangepast prikbord voor NLVL # Author : Pascal Schiks (C) 2004 GNU/GPL # Version : 2.6 # #Revision History # [PS-04-April-2004] Added s/\. /\.
\n/g; # use strict; use CGI qw(:standard); use DBI; # # Begin Configuratie # # config variabeles # # mySQL database configuratie my $HOSTNAME = "localhost"; my $DATABASE = "pascal"; my $PRIKBORD = "prikbord"; my $SQLUSER = "mysql"; my $SQLPASSWD = "mysql"; # naam van het prikbordprogramma my $PROGRAM = "/cgi-bin/gastenboek.pl"; # Pagina Layout my $TITEL = "gastenboek"; my $LOGO = "/pascal.png"; my $LOGOCLICK = "/index.html"; my $HELPPAGE = ""; my $LOGOALT = "Pascal's homepage"; my $LINKCOLOR = "WHITE"; my $STYLESHEET = "/pascal.css"; my $MAXTHREADS = 10; # # parameters # my $NAAM = param('naam'); my $EMAIL = param('email'); my $WEBSITE = param('website'); my $PASSWD = param('passwd'); my $WACHTWOORD = param('wachtwoord'); my $BERICHTNR = param('berichtnr'); $_ = param('bericht'); s/\"/\\\"/g; s/\'/\\\'/g; my $BERICHT = $_; # # includes # require "./smilies.plx"; sub smilies_render; # # variabeles # my $BERICHTTELLER; my $BERICHTINDEX; my $LAATSTEBERICHT; my $threads; my $dsn; my $dbh; my $sth; # # Subroutines # sub menuregel { if(($BERICHTNR>1)&&($LAATSTEBERICHT>2)) { print " Eerste $MAXTHREADS / "; } else { print "Eerste $MAXTHREADS / "; } if($BERICHTNR>$MAXTHREADS) { my $VORIGE=$BERICHTNR-$MAXTHREADS; print " Vorige $MAXTHREADS / "; } else { print " Vorige $MAXTHREADS / "; } if($BERICHTNR<($LAATSTEBERICHT-$MAXTHREADS)) { my $VOLGENDE=$BERICHTNR+$MAXTHREADS; print " Volgende $MAXTHREADS / "; } else { print "Volgende $MAXTHREADS / "; } if($BERICHTNR<($LAATSTEBERICHT-$MAXTHREADS)) { my $LAATSTEBERICHTEN=$LAATSTEBERICHT-$MAXTHREADS; print " Laatste $MAXTHREADS / "; } else { print " Laatste $MAXTHREADS / "; } print " Bericht toevoegen \n"; print "
\n"; my $VOLGENDE=$BERICHTNR+$MAXTHREADS; print "Bericht $BERICHTNR t/m $VOLGENDE van $LAATSTEBERICHT
\n"; } # # Begin print header; print "\n\n"; print "$TITEL\n"; print ""; print "\n"; print "\n"; print "\n"; print "\n\n\n\n\n
\n\n"; if($LOGO) { print "

\"$LOGOALT\"

"; if($HELPPAGE) { print " Help"; } print "\n"; } print "

$TITEL

\n"; # $dsn = "DBI:mysql:$DATABASE:$HOSTNAME"; $dbh = DBI->connect($dsn, $SQLUSER, $SQLPASSWD); if($dbh) { # # Bericht 0 betaat niet, ga naar bericht 1 # if($BERICHTNR==0) { $BERICHTNR=1; } # # Nieuw bericht toevoegen # if($BERICHTNR>=10000) { if(($BERICHT ne "") && ($NAAM ne "")) { # Bericht toevoegen $sth = $dbh->prepare("INSERT INTO $PRIKBORD VALUES ('$BERICHT','$NAAM','$EMAIL','$WEBSITE',0);"); $sth->execute; print "$BERICHT $NAAM $EMAIL $WEBSITE 0"; print "Bericht toegevoegd
\n"; print "Terug naar berichten lezen
\n"; } else { print "Terug naar berichten lezen"; print "
\n"; print "Nieuw bericht
\n"; print "

\n"; print "Naam
"; print "
"; print "Email
"; print "
"; print "Website
"; print "
"; print "

\n"; print "\n"; print "
\n"; print "
\n"; } } # # # # Berichten lezen # # if(($BERICHTNR>0)&&($BERICHTNR<10000)) { $LAATSTEBERICHT=0; $sth = $dbh->prepare("SELECT * FROM $PRIKBORD ORDER BY NUMMER DESC"); # beetje klumsy path om aantal berichten vooraf te weten $sth->execute; while(($BERICHT,$NAAM,$EMAIL,$WEBSITE,$BERICHTINDEX)=$sth->fetchrow()) { $LAATSTEBERICHT++; } # ok ga nu verder met bericht uitlezen $BERICHTTELLER=0; $sth->execute; menuregel; while(($BERICHT,$NAAM,,$EMAIL,$WEBSITE,$BERICHTINDEX)=$sth->fetchrow()) { $BERICHTTELLER++; if(($BERICHTTELLER>=$BERICHTNR)&&($BERICHTTELLER<=($BERICHTNR+$MAXTHREADS))) { print "
\n"; print "
Bericht van :"; if($EMAIL eq "") { print "$NAAM"; } else { print "$NAAM"; } print ""; if(($WEBSITE ne "") && ($WEBSITE ne "http://")) { print " website : $WEBSITE"; } print "

\n"; $_=$BERICHT; smilies_render; s/\n/
\n/g; s/\. /\.
\n/g; $BERICHT=$_; print "$BERICHT"; } } print "
\n"; menuregel; } # # Berichten verwijderen # if($BERICHTNR<0) { if(!$PASSWD) { print "Berichten verwijderen kan aleen met het juiste wachwoord
\n"; print "
\n"; print "Geef het wachtwoord van $NAAM"; print ""; print "

\n"; } else { print "Bericht wordt (nog niet) verwijderd
\n"; } print "Terug naar berichten lezen
\n"; } $dbh->disconnect; } else { print "Error, kan de mysql database niet bereiken
\n"; } print "
\n"; print "\n\n";