#!/usr/bin/perl -w # yChat - Copyright by Paul C. Bütow use CGI; $q = new CGI; require config; print $q->header; ##################################### ##WELCHE SUB MUß AUFGERUFEN WERDEN?## ##################################### $var = $q->param("var"); $alias = $q->param("alias"); $pw = $q->param("pw"); $tmp = $q->param("tmp"); if ($var eq "create_alias_html") { &create_alias_html; } elsif ($var eq "create_alias") { &create_alias; } elsif ($var eq "login_html") { $tmp = $q->param("tmp"); &login_html; } elsif ($alias eq "") { &login_html; } else { &checklogin; } sub login_html { # Erste Startseite &check_online; local $counter = undef; open(COUNT,"; close COUNT; $counter++; open(COUNT,">data/count"); print COUNT $counter; close COUNT; opendir(USERS,"data/online/users"); local @users = readdir(USERS); closedir(USERS); opendir(REGISTRED,"data/user/options"); local @registred = readdir(REGISTRED); closedir(REGISTRED); local ($logtin,$users) = ($#users-1,$#registred-1); &start_html("Created & Copyright by Paul C. Bütow","start"); 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. local $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"; opendir(USERDIR,"data/user/options"); my @userdir = readdir(USERDIR); closedir(USERDIR); foreach $user (@userdir) { if ($user eq $alias) { open(OPTIONS,"; close OPTIONS; chomp($options[0]); if ($options[0] eq $pw) { open(BAN,"; close BAN; foreach(@ban) { if ($_ eq "$alias\n") { $tmp = "banned"; &login_html; exit; } } if ($options[1] eq undef) { $col = "ffffff"; } else { $col = $options[1]; } if ($options[2] eq undef) { $secol = "ffffef"; } else { $secol = $options[2]; } $tmpid = time; open(IDENT,">data/online/ident/$alias"); print IDENT $ENV{'REMOTE_ADDR'}."\n".$tmpid; close IDENT; open(LASTLOGIN,">data/user/lastlogin/$alias"); print LASTLOGIN time; close LASTLOGIN; &frameset_html; exit; } else { $lognotexists = "false"; } } } &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 ($pw ne $tmp) { &create_alias_html("pw_wrong"); exit; } opendir(USERDIR,"data/user/options"); my @user = readdir(USERDIR); close USERDIR; foreach $user (@user) { if ($user eq $alias) { &create_alias_html("alias_exists"); exit; } } open(OPTIONS,">data/user/options/$alias"); print OPTIONS $pw."\n"; close OPTIONS; local $number = $#user; &zeit; &post("Cyberbar","($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 }