#!/usr/bin/perl -w # yChat - Copyright by Paul C. Bütow use CGI; # CGI-Modul laden $q = new CGI; require config; # config.pm in Dokument laden print $q->header; # HTTP-Header erzeugen ##################################### ##WELCHE SUB MUß AUFGERUFEN WERDEN?## ##################################### if ($var eq "create_alias_html") { &create_alias_html; } elsif ($var eq "create_alias") { &create_alias; } elsif ($var eq "login_html") { &login_html; } elsif ($alias eq "") { &login_html; } else { &checklogin; } sub login_html { # Erste Startseite local $counter = undef; &read_file("data/count"); $counter = ; close DATEI; $counter++; &write_file_new("data/count"); print DATEI $counter; close DATEI; &list_dir("data/online/users"); my $logtin = $#dir-1; &list_dir("data/user/options",2); my $users = $#dir2-1; &start_html("Created & Copyright by Paul C. Bütow"); print <
yChat: Version $version

Letztes Update: $datum

Seitenaufrufe: $counter

Benutzer registriert: $users

Benutzer online: $logtin

Webmaster: Paul C. Bütow


END if ($tmp eq "true") { print < ACHTUNG!
Wahrscheinlich existiert Dein Alias "$alias" nicht,
Du hast Dich verschrieben oder das Passwort ist falsch.
Versuch es erneuert !
END } elsif ($tmp eq "quit") { print < Du hast soeben den Chat verlassen.
Um den Chat erneuert zu betreten, einfach Daten eingeben und auf "Los Geht's" klicken :-) END } elsif ($tmp eq "banned") { print < ACHTUNG!
Dein Alias "$alias" wurde verbannt.
Z.z. kannst Du Dich leider nicht in den Chat einloggen.
Sorry!
END } elsif ($tmp eq "kick") { print < ACHTUNG!
Du wurdest soeben aus dem Chat katapultiert!
Schlechtes Verhalten mag die Ursache hierfür sein.
Sorry!
END } elsif ($var eq "create_alias") { print "
Du hast sich soeben in die Datenbank eingetragen. Einfach auf \"Los Geht's\" klicken :-)
"; } else { print < Herzlich willkommen!
Einfach Daten eingeben und auf "Los Geht's" klicken :-) END } print <
Dein Alias:
Dein Passwort:


Solltest Du noch keinen Nick besitzen, dann auf "Registrieren" klicken!


END if ($logtin == 0) { &list_dir("data/msgs"); &list_dir("data/online/rstat",2); foreach(@dir) { unlink("data/msgs/$_"); unlink("data/online/ident/$_"); } foreach(@dir2) { unlink("data/online/rstat/$_"); } } # Falls d. Skript das Raumverz. gelöscht hat, neu anlegen if (-d "data/online/rooms") { } else { mkdir "data/online/rooms", 0777; } } sub create_alias_html { # HTML-Form für Erstellung eines neuen Benutzers. my $reload = $_[0]; &start_html("Registration"); print <
END if ($reload eq "alias_exists") { print < ACHTUNG!
Der von Dir gewählte Benutzername "$alias" existiert in unserer Datenbank bereits. Bitte versuch es erneuert mit einem anderen Benutzernamen !

END } elsif ($reload eq "pw_wrong") { print < ACHTUNG!
Deine beiden Passworteingaben stimmen nicht überein. Bitte geb das Passwort erneuert an um sicherzugehen, daß kein falsches Passwort abgespeichert wird !

END } elsif ($reload eq "alias_prohibited") { print < ACHTUNG!
Dein gewählter Benutername "$alias" enthält illegale Zeichen. Bitte versuch einen anderen Benutzernamen!

END } else { print < Hier kannst Du Dich registrieren. Bitte beachte, daß die Passworteingabefelder übereinstimmen!
END } print <
Dein Alias: (Muß angegeben werden)

Dein gewünschtes Passwort:

Geb hier Dein Passwort erneuert ein:



Um den Chat zu betreten müssen die Daten nach der Registration auf der Startseite erneuert bestätigt werden !
END } sub checklogin { # Überprüfen, ob die Login-Daten korrekt sind. my $lognotexists = "true"; &list_dir("data/user/options"); for (my $i=0; $i<=$#dir; $i++) { if ($dir[$i] eq $alias) { &read_file("data/user/options/$alias"); @datei = ; close DATEI; chomp($datei[0]); if ($datei[0] eq $id) { &read_file("data/ban"); # Überprüfen, ob Alias verbannt ist @banned = ; close DATEI; foreach(@banned) { if ($_ eq "$alias\n") { $tmp = "banned"; &login_html(); exit; } } $col = $datei[1]; $secol = $datei[2]; $tmpid = time; &write_file_new("data/online/ident/$alias"); print DATEI $ENV{'REMOTE_ADDR'}."\n".$tmpid; close DATEI; &read_file("data/user/lastlogin/$alias"); my @lastlogin = ; close DATEI; &write_file_new("data/user/lastlogin/$alias"); print DATEI time; close DATEI; &frameset_html; exit; } else { $lognotexists = "false"; } } } if ($lognotexists eq "true") { } &login_html; # Falls Login-Daten inkorrekt sind, zurück zur Startseite. } sub create_alias { # Erstellung eines neuen Benutzers. if ($alias =~ /[\W]/ || $alias eq "") { &create_alias_html("alias_prohibited");; exit; } elsif ($id ne $tmp) { &create_alias_html("pw_wrong"); exit; } &list_dir("data/user/options"); for (my $i=0; $i<=$#dir; $i++) { if ($dir[$i] eq $alias) { &create_alias_html("alias_exists"); exit; } } &write_file_new("data/user/options/$alias"); print DATEI $id."\n"; close DATEI; &zeit; &list_dir("data/user/options"); my $number = $#dir-1; &post("($hours:$min:$sec) $alias [$number] hat sich soeben als neuer Benutzer registriert :-) ..."); &login_html; } sub frameset_html { print < $title - Created & Copyright by Paul C. Bütow END }