summaryrefslogtreecommitdiff
path: root/0.2.4c/index.pl
diff options
context:
space:
mode:
Diffstat (limited to '0.2.4c/index.pl')
-rw-r--r--0.2.4c/index.pl354
1 files changed, 354 insertions, 0 deletions
diff --git a/0.2.4c/index.pl b/0.2.4c/index.pl
new file mode 100644
index 0000000..5a465c4
--- /dev/null
+++ b/0.2.4c/index.pl
@@ -0,0 +1,354 @@
+#!/usr/bin/perl -w
+
+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 = <DATEI>;
+close DATEI;
+$counter++;
+&write_file_new("data/count");
+ print DATEI $counter;
+close DATEI;
+&start_html("Created by Paul C. Bütow 2k");
+print <<END;
+ <center>
+ <table width=400>
+ <tr>
+ <td>
+ <b>
+ <div>
+ $title - ( <a href="http://servers.yChat.de">yChat-Servers</a> )
+ <img src="$gfxpath/yChat.jpg">
+ </div>
+ </b>
+END
+ if ($tmp eq "true") {
+print <<END;
+ <div class=b>
+ ACHTUNG!
+ </div>
+ <div>
+ Wahrscheinlich existiert Dein Alias "$alias" nicht,
+ <br>
+ Du hast Dich verschrieben oder das Passwort ist falsch.
+ <br>
+ Versuch es erneuert !
+ </div>
+END
+ } elsif ($tmp eq "quit") {
+print <<END;
+ <div>
+ Du hast soeben den Chat verlassen.
+ <br>
+ Um den Chat erneuert zu betreten, einfach Daten eingeben und auf "Los Geht's" klicken :-)
+ </div>
+END
+ } elsif ($tmp eq "banned") {
+print <<END;
+ <div class=b>
+ ACHTUNG!
+ </div>
+ <div>
+ Dein Alias "$alias" wurde verbannt.
+ <br>
+ Z.z. kannst Du Dich leider nicht in den Chat einloggen.
+ <br>
+ Sorry!
+ </div>
+END
+ } elsif ($tmp eq "kick") {
+print <<END;
+ <div class=b>
+ ACHTUNG!
+ </div>
+ <div>
+ Du wurdest soeben aus dem Chat katapultiert!
+ <br>
+ Schlechtes Verhalten mag die Ursache hierfür sein.
+ <br>
+ Sorry!
+ </div>
+END
+ } elsif ($var eq "create_alias") {
+print "<div>Du hast sich soeben in die Datenbank eingetragen. Einfach auf \"Los Geht's\" klicken :-)</div>";
+ } else {
+print <<END;
+ <div>
+ Herzlich willkommen!
+ <br>
+ Einfach Daten eingeben und auf "Los Geht's" klicken :-)
+ </div>
+END
+ &log("system","\"first_http_ok\"");
+ }
+print <<END;
+ <hr>
+ <form action="index.pl">
+ <input type="hidden" name="tmp" value="true">
+ <table>
+ <tr>
+ <td>
+ <div>
+ Dein Alias:
+ <br>
+ <input name="alias" value="$alias">
+ </div>
+ </td>
+ <td>
+ <div>
+ Dein Passwort:
+ <br>
+ <input type="password" name="id" value="$id">
+ </div>
+ </td>
+ </tr>
+ </table>
+ <br>
+ <br>
+ <div>
+ Solltest Du noch keinen Nick besitzen, dann auf "Registrieren" klicken!
+ </div>
+ <br>
+ <table>
+ <tr>
+ <td>
+ <font color="ffffff">
+ <input type="submit" value="Los geht's!">
+ </font>
+ </form>
+ </td>
+ <td>
+ <form action="index.pl">
+ <input type="hidden" name="var" value="create_alias_html">
+ <font color="ffffff">
+ <input type="submit" value="Registrieren">
+ </font>
+ </form>
+ </td>
+ </tr>
+ </table>
+ <hr>
+ <div>
+ yChat befindet sich momentan noch in der Entwicklungsphase !
+ <br>
+ Fragen gehen an Paul Bütow (
+ <a href="mailto:paul\@buetow.oxg.de">
+ paul\@buetow.oxg.de
+ </a>
+ ) :-)
+ <br>
+ <br>
+ Diese Seite wurde schon $counter mal aufgerufen.
+ </td>
+ </tr>
+ </table>
+ </center>
+</body>
+</html>
+END
+}
+
+
+sub create_alias_html { # HTML-Form für Erstellung eines neuen Benutzers.
+my $reload = $_[0];
+&start_html("Registration");
+print <<END;
+ <center>
+ <table width=400>
+ <tr>
+ <td>
+END
+ if ($reload eq "alias_exists") {
+print <<END;
+ <div class=b>
+ ACHTUNG!
+ </div>
+ <div>
+ Der von Dir gewählte Benutzername "$alias" existiert in unserer Datenbank bereits. Bitte versuch es erneuert mit
+ einem anderen Benutzernamen !
+ </div>
+ <hr>
+END
+} elsif ($reload eq "pw_wrong") {
+print <<END;
+ <div class=b>
+ ACHTUNG!
+ </div>
+ <div>
+ Deine beiden Passworteingaben stimmen nicht überein. Bitte geb das Passwort erneuert an um sicherzugehen, daß
+ kein falsches Passwort abgespeichert wird !
+ </div>
+ <hr>
+END
+} elsif ($reload eq "alias_prohibited") {
+print <<END;
+ <div class=b>
+ ACHTUNG!
+ </div>
+ <div>
+ Dein gewählter Benutername "$alias" enthält illegale Zeichen. Bitte versuch einen anderen Benutzernamen!
+ </div>
+ <hr>
+END
+} else {
+print <<END;
+ <div>
+ Hier kannst Du Dich registrieren. Bitte beachte, daß die Passworteingabefelder übereinstimmen!
+ </div>
+ <hr>
+END
+}
+print <<END;
+ <form action="index.pl">
+ <input type="hidden" name="var" value="create_alias">
+ <div>
+ Dein Alias:
+ <font color="ffa500">
+ (Muß angegeben werden)
+ </font>
+ <br>
+ <input name="alias" VALUE="$alias">
+ </div>
+ <br>
+ <div>
+ Dein gewünschtes Passwort:
+ <br>
+ <input type="password" name="id" value="$id">
+ </div>
+ <br>
+ <div>
+ Geb hier Dein Passwort erneuert ein:
+ <br>
+ <input type="password" name="tmp">
+ </div>
+ <br>
+ <font color=ffffff>
+ <input type="submit" value="Registrieren">
+ </font>
+ <br>
+ </form>
+ <hr>
+ <div>
+ Um den Chat zu betreten müssen die Daten nach der Registration auf der Startseite erneuert bestätigt werden !
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+</body>
+</html>
+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 = <DATEI>;
+ close DATEI;
+ chomp($datei[0]);
+ if ($datei[0] eq $id) {
+ &read_file("data/ban"); # Überprüfen, ob Alias verbannt ist
+ @banned = <DATEI>;
+ close DATEI;
+ foreach(@banned) {
+ if ($_ eq "$alias\n") {
+ &log("system","\"login_alias_banned\"");
+ $tmp = "banned";
+ &login_html();
+ exit;
+ }
+ }
+ $col = $datei[1];
+ $secol = $datei[2];
+ &write_file_new("data/online/ident/$alias");
+ print DATEI $ENV{'REMOTE_ADDR'};
+ close DATEI;
+ &frameset_html;
+ exit;
+ } else {
+ &log("system","\"login_pw_wrong\"");
+ $lognotexists = "false";
+ }
+ }
+ }
+ if ($lognotexists eq "true") {
+ &log("system","\"login_alias_notexists\"");
+ }
+ &login_html; # Falls Login-Daten inkorrekt sind, zurück zur Startseite.
+}
+
+sub create_alias { # Erstellung eines neuen Benutzers.
+ if ($alias =~ /[\W]/ || $alias eq "") {
+ &log("system","\"reg_alias_prohibited\"");
+ &create_alias_html("alias_prohibited");;
+ exit;
+ } elsif ($id ne $tmp) {
+ &log("system","\"reg_pw_wrong\"");
+ &create_alias_html("pw_wrong");
+ exit;
+ }
+ &list_dir("data/user/options");
+ for (my $i=0; $i<=$#dir; $i++) {
+ if ($dir[$i] eq $alias) {
+ &log("system","\"reg_alias_exists\"");
+ &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("<i><font color=ffffff>($hours:$min:$sec)</font> <font color=ffa500>$alias [$number] hat sich soeben als neuer Benutzer registriert :-) ...</font></i>");
+ &log("system","\"reg_ok\"");
+ &login_html;
+}
+
+sub frameset_html {
+print <<END;
+<html>
+ <head>
+ <title>
+ Willkommen auf der Chat Pipe
+ </title>
+ </head>
+<frameset border=0 frameborder=0 framespacing=0 rows="50,1,*,66">
+ <frame name="menu" src="htdocs.pl?alias=$alias&var=menu_html&room=$room&col=$col&secol=$secol" scrolling="no">
+ <frame src="htdocs.pl?var=bar_html scrolling="no">
+ <frameset border=0 frameborder=0 framespacing=0 cols="110,*">
+ <frame name="online" src="online.pl?room=$room&alias=$alias">
+ <frame name="main" src="push.pl?room=$room&alias=$alias&var=clear_screen">
+ </frameset>
+ <frame name="input" src="main.pl?alias=$alias&var=input_html&room=$room&col=$col&secol=$secol&tmp=login" scrolling="no">
+</frameset>
+</html>
+END
+}