summaryrefslogtreecommitdiff
path: root/0.2.5a2/main2.pl
diff options
context:
space:
mode:
Diffstat (limited to '0.2.5a2/main2.pl')
-rw-r--r--0.2.5a2/main2.pl571
1 files changed, 571 insertions, 0 deletions
diff --git a/0.2.5a2/main2.pl b/0.2.5a2/main2.pl
new file mode 100644
index 0000000..76f161b
--- /dev/null
+++ b/0.2.5a2/main2.pl
@@ -0,0 +1,571 @@
+#!/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ß AUSGEFÜHRT WERDEN?##
+#####################################
+
+if ($var eq "list_alias_html") {
+ &list_alias_html;
+} elsif ($var eq "alias_html") {
+ &alias_html;
+} elsif ($var eq "edit_profile_html") {
+ &edit_html("edit_profile_html");
+} elsif ($var eq "edit_options_html") {
+ &edit_html("edit_options_html");
+} elsif ($var eq "gb_html") {
+ &gb_html;
+} elsif ($var eq "post_gb") {
+ &post_gb;
+} elsif ($var eq "rm_gb_alias") {
+ &rm_gb;
+} elsif ($var eq "edit_profile") {
+ &edit("edit_profile");
+} elsif ($var eq "edit_options") {
+ &edit("edit_options");
+} else {
+ &error("Parameter fehlt");
+}
+
+###########################
+##HAUPTTEIL DIESER DATEI:##
+###########################
+
+sub gb_html { # Das Benutzerboard/Gästebuch.
+ my $message = $_[0];
+ &start_html("Benutzerboard");
+if ($message eq "post_empty") {
+print <<END;
+ <div class=b>
+ ACHTUNG!
+ </div>
+ <div>
+ Du wolltest soeben einen leeren Eintrag posten. Bitte schreib
+ <i>
+ zuerst
+ </i>
+ einen Text und poste
+ <u>dann</u>
+ !
+ </div>
+ <hr>
+END
+} elsif ($message eq "post_ok") {
+print <<END;
+ <div class=b>
+ Meldung:
+ </div>
+ <div>
+ Vielen Dank für Deinen Beitrag. Wenn Du willst, kannst Du jetzt gleich noch einen Eintrag posten ...
+ </div>
+ <hr>
+END
+} else {
+print <<END;
+ <div>
+ Falls Du Anregungen oder Verbesserungsvorschläge für die Community hast, dann poste doch einen kleinen Eintrag :-)
+ </div>
+ <hr>
+END
+}
+print <<END;
+ <form action="main2.pl">
+ <input type="hidden" name="var" value="post_gb">
+ <input type="hidden" name="alias" value="$alias">
+ <input type="hidden" name="tmp" value="guestbook">
+ <input type="hidden" name="id" value="y">
+ <input size="40" name="msg">
+ <font color="ffffff">
+ <input type="submit" value="Hinterlassen ...">
+ </font>
+ </form>
+ <hr>
+END
+ if (-e "data/guestbook") {
+ open (DATEI,"<data/guestbook") || &error("Konnte dat/guestbook nicht öffnen");
+ @datei = <DATEI>;
+ close DATEI;
+ print
+ $q->div(@datei);
+ }
+ print
+ $q->end_html;
+}
+
+
+sub post_gb { # Wenn etwas in ein Gästebuch eingetragen wird
+ &secure_checkip($alias);
+ &zeit;
+ if ($msg eq "") {
+ if ($id eq "y") { # Überprüfen, ob Benutzerboard- oder Privatgästebuch
+ &gb_html("post_empty");
+ } else {
+ &alias_html("post_empty");
+ }
+ exit;
+ }
+ $msg =~ s#<#&lt\;#g;
+ my $tmpath = "";
+ if ($id eq "y") {
+ $tmpath = "data/guestbook";
+ } else {
+ $tmpath = "data/user/gbooks/$tmp";
+ }
+ if (-e "$tmpath") {
+ &read_file("$tmpath");
+ my @datei = <DATEI>;
+ close DATEI;
+ pop(@datei) if ($#datei > 99);
+ my @newdatei = "<br><b>$alias schrieb am $day.$month.$year um $hours:$min:$sec ...</b><br>$msg<br>\n";
+ @newdatei = ("@newdatei", "@datei");
+ &write_file_new("$tmpath");
+ print DATEI @newdatei;
+ close DATEI;
+ } else {
+ &write_file_new("$tmpath");
+ print DATEI "<br><b>$alias schrieb am $day.$month.$year um $hours:$min:$sec ...</b><br>$msg<br>\n";
+ close DATEI;
+ }
+ if ($id eq "y") {
+ &gb_html("post_ok");
+ exit;
+ } else {
+ post_prv("$tmp","<font size=2 color=ffffff><a href=\"main2.pl?alias=$alias&var=alias_html&tmp=$alias\" target=\"_new\">$alias</a> hat soeben einen Pin in <a href=\"main2.pl?alias=$alias&var=alias_html&tmp=$tmp\" target=\"_new\">Dein Profil</a> gehängt ... </font>");
+ &alias_html;
+ exit;
+ }
+}
+
+sub rm_gb { # Gästebucheintrag entfernen
+ &secure_checkip($alias);
+ $tmp = $alias;
+ &read_file("data/user/gbooks/$alias");
+ my @gbfile = <DATEI>;
+ close DATEI;
+ my @newgbfile = ();
+ for($i=0; $i <= $#gbfile; $i++) {
+ push(@newgbfile,$gbfile[$i]) if ($i != $id);
+ }
+ &write_file_new("data/user/gbooks/$alias");
+ print DATEI @newgbfile;
+ close DATEI;
+ &alias_html("rm_ok");
+}
+
+sub list_alias_html { # Liste aller Benutzer
+ &start_html("Alle Benutzer");
+ &list_dir("data/user/options");
+ my @liste = sort(@dir);
+ my $nr = $#dir-1;
+print <<END;
+ <div>
+ Es sind z.Z. genau $nr Benutzernamen in der Datenbank vorhanden! (Sortiert nach #, A-Z, a-z)
+ </div>
+ <hr>
+ <div>
+END
+ foreach(@liste) {
+ if (-f "data/user/options/$_") {
+ print
+ $q->a( { -href=>"main2.pl?var=alias_html&alias=$alias&tmp=$_" },
+ "$_"),
+ " ";
+ }
+ }
+print <<END;
+ </div>
+</body>
+</html>
+END
+}
+
+sub alias_html { # Anzeigen eines Benutzerprofils
+ my $message = $_[0];
+ local $counter = undef;
+ &read_file("data/user/counts/$tmp");
+ $counter = <DATEI>;
+ close DATEI;
+ $counter++;
+ &write_file_new("data/user/counts/$tmp");
+ print DATEI $counter;
+ close DATEI;
+ &start_html($tmp);
+print <<END;
+<div>
+ <a href="htdocs.pl?var=werda_html&alias=$alias">Hier</a>
+ gehts zur Gesamtübersicht !
+</div>
+<hr>
+END
+if ($message eq "rm_ok") {
+print <<END;
+ <div class=b>
+ Meldung:
+ </div>
+ <div>
+ Der von Dir gewählte Eintrag wurde erfolgreich gelöscht.
+ </div>
+ <hr>
+END
+} elsif ($message eq "post_empty") {
+print <<END;
+ <div class=b>
+ ACHTUNG!
+ </div>
+ <div>
+ Du wolltest soeben einen leeren Eintrag posten. Bitte schreib
+ <i>
+ zuerst
+ </u>
+ einen Text und poste
+ <u>dann</u>
+ !
+ <hr>
+END
+}
+ &read_file("data/user/profiles/$tmp");
+ @data = <DATEI>;
+ close DATEI;
+print <<END;
+ <div>
+ Dieses Profil wurde insgesamt schon $counter mal aufgerufen !
+ <br>
+ <br>
+ Alias: $tmp
+ <br>
+ <br>
+ Nachname: $data[0]
+ <br>
+ <br>
+ Vorname: $data[1]
+ <br>
+ <br>
+ Alter: $data[2]
+ <br>
+ <br>
+ Wohnort: $data[3]
+ <br>
+ <br>
+ E-Mail:
+ <a href="mailto:$data[4]">$data[4]</a>
+ <br>
+ <br>
+ ICQ-Nummer: $data[5]
+ <br>
+ <br>
+ Homepage:
+ <a href="$data[6]" target="_new">$data[6]</a>
+ <br>
+ <br>
+ Weiteres:
+ <br>
+ $data[7]
+ <hr>
+ Hier kannst Du $tmp eine Nachricht hinterlassen!
+ <form action="main2.pl">
+ <input type="hidden" name="var" value="post_gb">
+ <input type="hidden" name="alias" value="$alias">
+ <input type="hidden" name="tmp" value="$tmp">
+ <input type="text" size="40" name="msg">
+ <font color="ffffff">
+ <input type="submit" value="Hinterlassen ...">
+ </font>
+ </form>
+ <hr>
+END
+if (-e "data/user/gbooks/$tmp") {
+ open (DATEI,"<data/user/gbooks/$tmp") || &error("Konnte data/user/gbooks/$tmp nicht öffnen");
+ @datei = <DATEI>;
+ close DATEI;
+ if ($alias ne $tmp) {
+ print @datei;
+ } else {
+print <<END;
+ <table>
+ <form action="main2.pl">
+ <input type="hidden" name="var" value="rm_gb_alias">
+ <input type="hidden" name="alias" value="$alias">
+END
+for($i=0; $i <= $#datei; $i++) {
+print <<END;
+ <tr>
+ <td>
+ <input type="radio" name="id" value="$i">
+ </td>
+ <td>
+ <div class=q>
+ $datei[$i]
+ </div>
+ </td>
+ </tr>
+END
+}
+print <<END;
+ </table>
+ <table>
+ <tr>
+ <td>
+ <font color=ffffff>
+ <input type="submit" value="Makierten Eintrag löschen">
+ </font>
+ </td>
+ <td>
+ <font color=ffffff>
+ <input type="reset" value="Makierung rückgängig machen">
+ </font>
+ </td>
+ </tr>
+ </table>
+ </form>
+END
+}
+}
+ print
+ $q->end_html;
+}
+
+sub edit_html { # Chat-Optionen / Benutzerprofil editieren
+ my ($method,$message) = @_;
+ &secure_checkip($alias);
+ &start_html("Benutzerprofil ändern");
+ if ($method eq "edit_options_html") {
+ &read_file("data/user/options/$alias");
+ } elsif ($method eq "edit_profile_html") {
+ &read_file("data/user/profiles/$alias");
+ }
+ @data = <DATEI>;
+ close DATEI;
+ if ($method eq "edit_options_html") {
+ chomp($data[0]);
+ if ($message eq "edit_options_ok") {
+print <<END;
+<script language="JavaScript">
+ open("main.pl?var=input_html&alias=$alias&room=$room&col=$col&secol=$secol","input");
+ open("htdocs.pl?var=menu_html&alias=$alias&room=$room&col=$col&secol=$secol","menu");
+</script>
+<div class=b>
+ Hinweis:
+</div>
+<div>
+ Du hast soeben Deine Chat-Optionen erfolgreich editiert. Hier kannst Du Dein Profil erneuert editieren. Um
+ weiterzuchatten einfach auf <a href="push.pl?alias=$alias&room=$room">Weiterchatten</a> klicken.
+</div>
+<hr>
+END
+ } elsif ($message eq "edit_pw_wrong") {
+print <<END;
+<div class=b>
+ ACHTUNG!
+</div>
+<div>
+ Du hast soeben versucht, dein Passwort zu ändern. Jedoch stimmte die Erste Eingabe nicht mit der Zweiten überein.
+ Bitte versuch es erneuert ...
+</div>
+<hr>
+END
+ } else {
+ print
+ $q->div( "Hier kannst Du Deine Chat-Optionen editieren!" ),
+ $q->hr;
+ }
+print <<END;
+<form action="main2.pl">
+ <input type="hidden" name="alias" value="$alias">
+ <input type="hidden" name="var" value="edit_options">
+ <div>
+ Dein Passwort
+ <font color=ffa500>
+ (Gut merken !!)
+ </font>
+ <br>
+ <input type="password" name="id" value="$data[0]">
+ </div>
+ <br>
+ <div>
+ Geb hier das Passwort erneuert ein:
+ <br>
+ <input type="password" name="tmp" value="$data[0]">
+ </div>
+ <br>
+ <div>
+ "Deine Farbe (Farbe Deines Nicks):
+ <br>
+ <select NAME="col" size="1">
+ <option selected value="$col">($data[1])</option>
+ <option value="0000FF">Blau (1)</option>
+ <option value="008000">Grün</option>
+ <option value="000000">Schwarz</option>
+ <option value="808000">Oliv</option>
+ <option value="000080">Marineblau</option>
+ <option value="800080">Purpur</option>
+ <option value="808080">Braun</option>
+ <option value="FF00FF">Fuchsia</option>
+ <option value="008080">Stahlblau</option>
+ <option value="333333">Mittelschwarz</option>
+ <option value="003399">BärBlau</option>
+ <option value="0066CC">Blau (2)</option>
+ <option value="009933">Grün</option>
+ <option value="006666">Oliv</option>
+ <option value="FF0000">VollRot</option>
+ <option value="CC0000">RostRot</option>
+ <option value="990099">Lila</option>
+ <option value="FF00FF">Pink</option>
+ <option value="FF9900">Orange</option>
+ <option value="CC6600">Ocker</option>
+ <option value="996600">Braun</option>
+ <option value="666666">Grau</option>
+ <option value="0A6307">Dunkelgrün</option>
+ <option value="9C1B7C">Dunkellila</option>
+ <option value="3D0DB9">Dunkelblau</option>
+ <option value="8FA5ED">Hellblau</option>
+ <option value="FFFF00">Gelb</option>
+ <option value="3D4863">?????</option>
+ </select>
+ </div>
+ <br>
+ <div>
+ Deine zweite Farbe (Farbe Deiner Nachrichten):
+ <br>
+ <select NAME="secol" size="1">
+ <option selected value="$col">($data[2])</option>
+ <option value="0000FF">Blau (1)</option>
+ <option value="008000">Grün</option>
+ <option value="000000">Schwarz</option>
+ <option value="808000">Oliv</option>
+ <option value="000080">Marineblau</option>
+ <option value="800080">Purpur</option>
+ <option value="808080">Braun</option>
+ <option value="FF00FF">Fuchsia</option>
+ <option value="008080">Stahlblau</option>
+ <option value="333333">Mittelschwarz</option>
+ <option value="003399">BärBlau</option>
+ <option value="0066CC">Blau (2)</option>
+ <option value="009933">Grün</option>
+ <option value="006666">Oliv</option>
+ <option value="FF0000">VollRot</option>
+ <option value="CC0000">RostRot</option>
+ <option value="990099">Lila</option>
+ <option value="FF00FF">Pink</option>
+ <option value="FF9900">Orange</option>
+ <option value="CC6600">Ocker</option>
+ <option value="996600">Braun</option>
+ <option value="666666">Grau</option>
+ <option value="0A6307">Dunkelgrün</option>
+ <option value="9C1B7C">Dunkellila</option>
+ <option value="3D0DB9">Dunkelblau</option>
+ <option value="8FA5ED">Hellblau</option>
+ <option value="FFFF00">Gelb</option>
+ <option value="3D4863">?????</option>
+ </select>
+ </div>
+ <br>
+END
+ } elsif ($method eq "edit_profile_html") {
+ if ($message eq "edit_profile_ok") {
+print <<END;
+ <div class=b>
+ Hinweis:
+ </div>
+ <div>
+ Du hast soeben Dein Profil erfolgreich editiert. Hier kannst Du Dein Profil erneuert editieren:
+ <hr>
+END
+ } else {
+ print
+ $q->div( "Hier kannst Du Dein Profil editieren!" ),
+ $q->hr;
+ }
+print <<END;
+ <form action="main2.pl">
+ <input type="hidden" name="alias" value="$alias">
+ <input type="hidden" name="var" value="edit_profile">
+ <div>
+ Dein Nachname:
+ <br>
+ <input name="nachname" value="$data[0]">
+ </div>
+ <br>
+ <div>
+ Dein Vorname:
+ <br>
+ <input name="vorname" value="$data[1]">
+ </div>
+ <br>
+ <div>
+ Dein Alter:
+ <br>
+ <input name="alter" value="$data[2]">
+ </div>
+ <br>
+ <div>
+ Dein Wohnort:
+ <br>
+ <input name="wohnort" value="$data[3]">
+ </div>
+ <br>
+ <div>
+ Deine E-Mail Adresse:
+ <br>
+ <input name="email" value="$data[4]">
+ </div>
+ <br>
+ <div>
+ Deine ICQ-Nummer:
+ <br>
+ <input name="icq" value="$data[5]">
+ </div>
+ <br>
+ <div>
+ Deine Homepage:
+ <br>
+ <input name="homepage" value="$data[6]">
+ </div>
+ <br>
+ <div>
+ Weiteres:
+ <br>
+ <textarea rows="5" cols="40"name="weiteres" wrap="virtual">$data[7]</textarea>
+ </div>
+END
+ }
+print <<END;
+ <hr>
+ <font color=ffffff>
+ <input type="submit" value="Daten ändern ...">
+ </font>
+ </form>
+</body>
+</html>
+END
+}
+
+
+sub edit { # Benutzerprofil od. Chat-Optionen abspeichern
+ &secure_checkip($alias);
+ my $method = $_[0];
+ if ($method eq "edit_profile") {
+ &write_file_new("data/user/profiles/$alias");
+ print DATEI $q->param('nachname')."\n".$q->param('vorname')."\n".$q->param('alter')."\n".$q->param('wohnort')."\n".$q->param('email')."\n".$q->param('icq')."\n".$q->param('homepage')."\n".$q->param('weiteres');
+ close DATEI;
+ &edit_html("edit_profile_html","edit_profile_ok");
+ } elsif ($method eq "edit_options") {
+ if ($id ne $tmp) {
+ &edit_html("edit_options_html","edit_pw_wrong");
+ exit;
+ }
+ &secure_checkip($alias);
+ &write_file_new("data/user/options/$alias");
+ print DATEI $id."\n".$col."\n".$secol;
+ close DATEI;
+ &edit_html("edit_options_html","edit_options_ok");
+ }
+}