From 630af0ed6c0af69c7df2e45aef7a87722a3c00c0 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 6 Apr 2013 13:14:47 +0200 Subject: tagging ychat-perl-legacy --- 0.6.0/index.pl | 446 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 446 insertions(+) create mode 100644 0.6.0/index.pl (limited to '0.6.0/index.pl') diff --git a/0.6.0/index.pl b/0.6.0/index.pl new file mode 100644 index 0000000..5440dd3 --- /dev/null +++ b/0.6.0/index.pl @@ -0,0 +1,446 @@ +#!/usr/bin/perl + +# yChat - Copyright by Paul C. Bütow + +use CGI; +$q = new CGI; +require config; +print $q->header; + +$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"); + flock(COUNT, 2); + print COUNT $counter; +close COUNT; +opendir(USERS,"data/online/users"); + my @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 +

+ yChat-HP: home.yChat.de +
+
+
+ +
+
+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 "autologout") { +print < + Du wurdest automatisch aus dem Chat ausgeloggt. Grund: Du warst 20 Minuten inaktiv. +
+ Um den Chat erneuert zu betreten, einfach Daten eingeben und auf "Los Geht's" klicken :-) + +END + } elsif ($tmp eq "banned") { +print < + ACHTUNG! + +
+ Du wurdest aus dem Chat 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) { + print "
Folgende Personen sind eingeloggt:
"; + foreach(@users) { + print "$_ " if (-f "data/online/users/$_"); + } + print "
"; +} +print< +
+ + + +END + 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 +} elsif ($reload eq "alias_length") { +print < + ACHTUNG! + +
+ Dein gewählter Benutername "$alias" enthält zu viele Zeichen. Es sind maximal 15 Zeichen erlaubt!! +
+
+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; + foreach(@options) { + chomp $_; + } + if ($options[0] eq $pw) { + open(BAN,"; + close BAN; + foreach(@ban) { + chomp; + if ($_ eq "$alias" || $_ eq "ip://".$ENV{'REMOTE_ADDR'}) { + $tmp = "banned"; + &login_html; + exit 0; + } + } + if ($options[1] eq undef) { $col = "ffffff";} + else { $col = $options[1]; } + if ($options[2] eq undef) { $secol = "ffffef";} + else { $secol = $options[2];} + if ($options[3] eq undef) { $maxVerlauf = "10";} + else { $maxVerlauf = $options[3];} + if ($options[4] eq undef) { $verlaufOrder = "1";} + else {$verlaufOrder = $options[4];} + my @digit = (A..Z, a..z, 0..9); + my $num1 = rand(@digit); + my $num2 = rand(@digit); + my $num3 = rand(@digit); + my $num4 = rand(@digit); + my $num5 = rand(@digit); + my $num6 = rand(@digit); + my $num7 = rand(@digit); + my $num8 = rand(@digit); + my $num9 = rand(@digit); + my $num10 = rand(@digit); + $tmpid = ($digit[$num1].$digit[$num2].$digit[$num3].$digit[$num4].$digit[$num5].$digit[$num6].$digit[$num7].$digit[$num8].$digit[$num9].$digit[$num10]); + + 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 "") { +goto CREATE if ($alias =~ /[-]/); + &create_alias_html("alias_prohibited");; + exit 0; + } elsif ($pw ne $tmp) { + &create_alias_html("pw_wrong"); + exit 0; + } elsif (length($alias) >= 15) { + &create_alias_html("alias_length"); + exit 0; + } +CREATE: + 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 - Powered by CXG - Chatters of the next generation + + + + + + + + + + + + + + + + + + +END +} \ No newline at end of file -- cgit v1.2.3