Developers Shame Day: Ein „Login“
geschrieben am 3.November 2010

Als Cem zum Developers Shame Day aufrief, wusste ich eigentlich schon, in welchen Code ich gucken musste. Ich konnte die Dateien auf einer DVD auch wiederfinden. Ich muss zugeben, ich bin etwas fasziniert. Dem Zeitstempel sei dank, konnte ich auch noch entnehmen, wann die Datei etwa aktuell gewesen ist – 2001.
Ich hatte zu der Zeit ein eSport-Portal, was sich vorwiegend um Counter-Strike drehte. Es war bei 4Players gehostet und hatte im Schnitt 500.000 PIs im Monat. Der Erfolg des Portals kann aber nicht am Code gelegen haben, definitiv nicht! ![]()

Ich habe mich seiner Zeit scheinbar dazu entschlossen, die include-Funktion als godfather der PHP-Funktionen zu erkoren, anders kann ich mir den Kram selbst nicht erklären. So habe ich die Dateien in etwa 2-3kb abgelegt und es gab für jeden Senf eine eigene Datei. Funktionen werden auch völlig überbewertet. Der Login der Seite ging über geschätzte 13 Dateien inkl. User-Verwaltung.
In der „user.login.php4“ konnte sich der registrierte User also anmelden. Natürlich wurde das Passwort plain in die Datenbank geschoben. Vermutlich um dem User schneller sagen zu können, wie sein Passwort ist, wenn er es vergisst. Ich weiß es nicht.
[php]
<?php
include ("header.php4");
include ("mainmenu.php4");
include ("banner.html");
include ("menu.ro.html");
echo "<tr>
<td background=layout/hintergrund.jpg valign=top>
<body bgcolor=#FFFFFF text=#000000><div align=center>
<table width=600 border=0 cellspacing=0 cellpadding=0>
<tr>
<td class=content>Username (Nick)</td>
<td>
<form name=form1 method=post action=user.check.php4>
<input type=text name=name>
</td>
</tr>
<tr>
<td class=content>Passwort</td>
<td>
<input type=password name=pass>
</td>
</tr>
<tr>
<td> </td>
<td>
<br><input type=submit name=Abschicken value=Einloggen>
</td>
</tr>
</form>
</table>
</td>";
include ("rmenu.php4");
?>
[/php]
Wie bereits erwähnt, hatte ich mich auf kurze Dateien “spezialisiert”. Somit wurden die Eingaben dann auch nur in der Datenbank durchgereicht in der “user.check.php4″. Dort muss ich sagen, dass ich die Variable $timer in Zeile 3 für äußerst gelungen und kreativ halte ![]()
[php]
<?
include("dblogin.php4");
$timer=Time()+60*60*24*180;
if (($name != "") && ($pass != "")){
$result = mysql_query("SELECT * FROM readers WHERE username=’$name’");
if (mysql_affected_rows()){
$readers = mysql_fetch_array($result);
if ($pass == $readers[userpw]){
SetCookie("username", $readers[username], $timer);
SetCookie("userpw", $readers[userpw], $timer);
}
}
}
Header("Location: index.php4");
mysql_close();
?>
[/php]
Der einzige Wermutstropfen, der einem vielleicht bleibt ist die Tatsache, dass man selbst nach 10 Jahren noch ansatzweise sich durch den Code hangeln kann. Ob das nun schön ist oder nicht, steht auf einem anderen Papier.
Die dazu gehörige CSS-Datei umfasste 30 Zeilen und hat durchaus noch Optimierungspotenzial, eine “skilly” Sachen wie Filter oder der Typberücksichtung sind dennoch enthalten. Wie man unschwer erkennen kann, 11px Fontsize war total in!
[css]
a:active { color: lime; font-weight: bold; text-decoration: none; font-family: Arial; font-size: 11px;}
a:hover { color: #00AEFF; font-weight: bold; text-decoration: underline; font-family: Arial; font-size: 11px;}
a:visited { color: #B78A00; font-weight: bold; text-decoration: none; font-family: Arial; font-size: 11px;}
a:link { color: #B78A00; font-weight: bold; text-decoration: none; font-family: Arial; font-size: 11px;}
a:visited:hover { color: #436BFF; font-weight: bold; text-decoration: underline; font-family: Arial; font-size: 11px;}
td.date { color: white; font-style: normal; font-weight: normal; font-size: 11px; font-family: Arial }
td.topic { color: orange; font-style: normal; font-weight: bold; font-size: 11px; font-family: Arial }
td.content { color: white; font-style: normal; font-weight: normal; font-size: 11px; font-family: Arial; }
td.link { color: white; font-style: normal; font-weight: normal; font-size: 11px; font-family: Arial; filter:shadow(color=black, strenght=#4) }
p.link { color: white; font-style: normal; font-weight: normal; font-size: 11px; font-family: Arial; filter:shadow(color=black, strenght=#4) }
td.topic { color: #92929E; font-style: normal; font-weight: bold; font-size: 14px; font-family: Arial }
td.comment { color: #B78A00; font-style: normal; font-weight: normal; font-size: 11px; font-family: Arial }
.sb { scrollbar-arrow-color:#B78A00; scrollbar-base-color:#202C40; scrollbar-face-color:#202C40; scrollbar-shadow-color:#17202D; scrollbar-dark-shadow-color:#17202D; scrollbar-3d-light-color:#6E86AA; scrollbar-highlight-color:#6E86AA; margin-bottom:0; margin-left:15; margin-right:15; margin-top:0; padding-bottom:0; padding-left:0; padding-right:0; padding-top:0; color:#B78A00; font-size:11px; font-family:Arial; text-align: justify }
input, select { font-family: Arial, Helvetica; font-size: 11px; border-width:1; background-color:#211E47; color:#B78A00 }
input type=radio { font-family: Arial, Helvetica; font-size: 11px; color:#B78A00 }
[/css]
Nach diesem Zeitraum würde ich gern wissen, was wohl damals einem durch den Kopf geschossen ist, als man diese Zeilen verfasst hat. Über das Tabellenlayout mag ich nicht klagen, dass war halt damals so. Ich glaube, ich wusste schon damals, dass der heutige Tag kommen wird und habe deswegen auch alle Kommentare weggelassen… #facepalm
Mehr Code zum Developers Shame Day findest Du bei:
- unset hatte mal eine Template Engine
- Datafreak zeigt sein Backup Script
- Eine Pageproducer Klasse
- Etwas komplexes Parsen
- Eine alte Kreditkartenvalidierung
Danke Cem für die Idee, ich hatte mein Unterhaltungswert bereits anhand des eigenen Codes. Bin gespannt, was heute noch so den Weg ans Tageslicht findet.



Robin schrieb:
3. November 2010 09:55Ich werde dir jetzt lieber nicht sagen, unter welchem Name ich damals bei euch angemeldet war
CiT (@KaiThrun) schrieb:
3. November 2010 10:02Mich verwundert viel mehr, dass es hier scheinbar echt noch Leute gibt, die die Seite noch kennen (und irgendwie mit mir in Kontakt stehen).
Die Datenbank habe ich leider nicht mehr.
Hehehe verwendest Du das Passwort heute noch?
ForkingRobert schrieb:
3. November 2010 11:36Mich würde mal interessiern um welche Seite es denn geht
Hupp schrieb:
3. November 2010 14:17Das mit dem Include hate ich vor 10 Jahren zu meiner Anfangszeit genau so umgesetzt wie du.
Das war damals vielleicht allgemeiner Programmier-Standard?
CiT (@KaiThrun) schrieb:
3. November 2010 14:27Ehrlich? Ich weiß es nicht mehr
Cem Derin schrieb:
3. November 2010 15:07Ich glaub Counter Strike finde ich “shame”iger
CiT (@KaiThrun) schrieb:
3. November 2010 15:12aber da kann man sich “fame” kaufen