Mein Beitrag zum Developers Shame Day 2010

3. Nov 2010 von

Hallo zusammen,

wie einige Nerds und Geeks von euch sicher wissen, ist heute der Developer’s Shame Day 2010, der vom „php hacker“ @unset initiiert wurde.

Ziel des Developers Shame Day ist, dass möglichst zahlreiche Entwickler einen Code veröffentlichen, den sie vor einiger Zeit mal programmiert haben, der aber von „minderer Qualität“ ist, um es mal milde auszudrücken :-) Der Developers Shame Day ist also eine lustige Aktion für schlechten Programmcode.
Ich bin mal gespannt, wie viele Entwickler am Dev Shame Day mitmachen und was es alles für lustige Codes zu sehen gibt.

Hier ist mein Beitrag zum Developers Shame Day 2010:

 <div align="center"><h1><strong>Google-Referer-Stats f&uuml;r <?php echo getenv("HTTP_HOST"); ?></strong></h1></div>
<br />
<?php
include("global.php");
 
error_reporting (E_ERROR | E_WARNING | E_PARSE);
 
	@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
	mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
 
	$sql = "SELECT ID, TIME, REF, IP FROM googlescript ORDER BY `ID` DESC LIMIT ".$_POST['Anzahlvon'].",".$_POST['Anzahlbis'].""; // MySQL Datenbank, Tabelle und Felder auswählen
 
// Grundaufbau der Tabelle			
echo "<table width=\"100%\" border=\"1\">";
echo "  <tr>";
echo "    <td width=\"2%\" height=\"10\"><div align=\"left\"><strong>ID</strong></div></td>";
echo "    <td width=\"10%\" height =\"10\"><div align=\"left\"><strong>Datum &amp; Uhrzeit</strong></div></td>";
echo "    <td width=\"7%\" height=\"10\"><div align=\"left\"><strong>IP Adresse</strong></div></td>";
echo "    <td width=\"81%\" height =\"10\"><div align=\"left\"><strong>Keyword</strong></div></td>";
echo "  </tr>";
 
	$result = mysql_query($sql);
	if(mysql_num_rows($result)) {
		while($row = mysql_fetch_assoc($result)) { // Tabellenausgabe der Daten
		$farbe = ($i++%2)?"#e8e8e8":"#c0c0c0"; // Die Hintergrundfarbe wechselt sich jedes mal ab
		preg_match("/q=(.*?)&/i", $row['REF'], $Keyword); // Es wird nur das "q=KEYWORD" herausgefiltert
		$Keyword_string = utf8_decode( urldecode( $Keyword[1] ) ); // Zeichen dekodieren
            echo "<tr bgcolor=\"".$farbe."\">\n"; // Hintergrundfarbe abwechselnd
            echo "	<td width=\"2%\" height=\"10\"><p class=\"smallfont\">".$row['ID']."</p></td>\n"; // Ausgabe "ID"
            echo "	<td width=\"10%\" height=\"10\"><p class=\"smallfont\">".$row['TIME']."</p></td>\n"; // Ausgabe "Zeit und Datum"
            echo "	<td width=\"7%\" height=\"10\"><p class=\"smallfont\">".$row['IP']."</p></td>\n"; // Ausgabe "IP"
			echo "  <td width=\"81%\" height=\"10\"><p class=\"smallfont\"><a href=\"".$row['REF']."\" target=\"_blank\">".$Keyword_string."</a></p></td>\n";
            echo "</tr>\n";
			}
	} else {
		echo "<p>Keine Referer vorhanden.</p>\n";
	}
echo "</table>";
?>
<br /><br />
<div align="center">Es befinden sich 
<?php
// Einträge der Datenbank zählen
$anzahleintrage = mysql_query("SELECT * FROM `googlescript`");
$anzahleintrage2 = mysql_num_rows($anzahleintrage);
echo $anzahleintrage2;
?>
 Einträge in der Datenbank.</div>
<br />

Kurze Erklärung dazu:
Dieses Script habe ich im August 2007 programmiert und es sogar im Livebetrieb verwendet.
Es war dazu da, Einträge über Suchquerys durch Googlereferers aus der Datenbank zu holen, welche ich separat mitgeloggt habe.
Das Ganze ist dann aber etwas unschön und vor allem unsicher programmiert worden, z.B. indem $_POST Variablen ungefiltert in die Datenbank geschrieben werden bzw. ungefiltert verwendet werden. Außerdem ist die ganze Syntax nicht gerade hübsch und lesbar und die Zusammenarbeit von HTML und PHP war eine quick n dirty Lösung. Das Dokument hat ja nichtmal einen Doctype, Geschweige denn einen <head> Bereich.

Ja, ich schäme mich dafür! Shame on me! Shame on the developer! IT’S THE DEVELOPER’S SHAME DAY! :)

  1. ein Kommentar zu “Mein Beitrag zum Developers Shame Day 2010”

  2. Von Cem Derin am 03.11.2010 | Antworten

    Hehe, dieses ungemütliche Ausgeben von HTML ;)

Ein Kommentar hinterlassen