Minimales Projekt

Dr. O. Hoffmann

Der Inhalt des Projekts

Der eigentliche Inhalt des Projektes liegt in Form von Einzeldateien vor, als Beispiel sehen wir unten den Inhalt dieser Seite. Derartige Dateien können auch php enthalten. Bei größeren Projekten wird es sinnvoll sein, Unterverzeichnisse einzurichten und entsprechend das Einbinden von Inhalt etwas zu modifizieren. Reserviert sind die Dateien start.php für die Startseite, hilfe.php für die Hilfeseite im Menü unter "?", statistik.php für die Statistik "%" und alles.php für die Robot-Ausgabe, siehe unten. Eine Kontaktseite wie kontakt.php empfiehlt sich ebenfalls, natürlich mit geeignetem Inhalt.

<h2>Der Inhalt des Projekts</h2>
<p>
Der eigentliche Inhalt des Projektes liegt in Form von
Einzeldateien vor, als Beispiel sehen wir unten den
Inhalt dieser Seite. Derartige Dateien k&ouml;nnen
auch php enthalten. Bei gr&ouml;&szlig;eren Projekten
wird es sinnvoll sein, Unterverzeichnisse einzurichten
und entsprechend das Einbinden von Inhalt etwas zu
modifizieren. Reserviert sind die Dateien start.php
f&uuml;r die Startseite, hilfe.php f&uuml;r die Hilfeseite
im Men&uuml; unter &quot;?&quot;, statistik.php f&uuml;r
die Statistik  &quot;%&quot; und alles.php f&uuml;r die
Robot-Ausgabe, siehe unten. Eine Kontaktseite wie
kontakt.php empfiehlt sich ebenfalls, nat&uuml;rlich
mit geeignetem Inhalt.
</p>

<div class="pre">
<pre>
<?php
$beispiel=file("$verzeichnis/inhalt/projektinhalt.php");
for ($i = 0; $i < count($beispiel); $i++) {
  $buffer= htmlentities($beispiel[$i]);
  echo "$buffer";
}
?>
</pre>
</div>

<p>
Eine Datei namens alles.php enth&auml;lt eine f&uuml;r
Suchmaschinen relevante Auswahl des Inhaltes. Die Datei
wird dem Suchmaschinen-Robot angezeigt, wenn er als
solcher erkannt wird und er keine spezielle
Inhaltsanforderung stellt. So kann er wesentlichen Inhalt
indizieren, der f&uuml;r menschliche Benutzer anders
strukturiert sein mu&szlig;. <br />
Fairer Weise sollte dem Robot kein zus&auml;tzlicher
Inhalt angezeigt werden, der nicht wirklich im Projekt zu
finden ist. Das kann fr&uuml;her oder sp&auml;ter zur
Streichung des Projektes aus dem Suchmaschinen-Index
f&uuml;hren.
</p>

<div class="pre">
<pre>
<?php
$beispiel=file("$verzeichnis/inhalt/alles.php");
for ($i = 0; $i < count($beispiel); $i++) {
  $buffer= htmlentities($beispiel[$i]);
  echo "$buffer";
}
?>
</pre>
</div>


<p>
Die Statistik einzublenden, ist relativ einfach - ein Formular
mit der Angabe von Jahr, Monat und Pa&szlig;wort, ein
Tabellenkopf, eine include-Funktion und ein Tabellenfu&szlig;,
viel mehr braucht es nicht. Allerdings t&auml;te ich diese
Datei nicht direkt im Projekt unterbringen und auch keinen
Verweis drauf setzen, denn die gesammelten Daten sind nur
kurzfristig f&uuml;r die Projektverwaltung relevant. Sofern
eine Korrelation zwischen Zeit und IP von Nutzern
gegeben ist, sollen die Daten sogar nach kurzer Zeit
gel&ouml;scht werden. Vorsicht: Das Pa&szlig;wort wird hier
als get-Parameter &uuml;bergen, ist also in Klartext in der
Adresszeile lesbar, das ist bei einem richtigen Projekt auch
noch zu optimieren. Eine gesonderte Datei kann etwa auch
mit einer Authentifizierung gesch&uuml;tzt werden, wie der
Apache sie bietet oder mit einer .htaccass-Datei. Bei einer
gesonderten Datei ist es auch problemlos m&ouml;glich,
das Formular mit der post-Methode zu verschicken.
</p>

<div class="pre">
<pre>
<?php
$beispiel=file("$verzeichnis/inhalt/statistik.php");
for ($i = 0; $i < count($beispiel); $i++) {
  $buffer= htmlentities($beispiel[$i]);
  echo "$buffer";
}
?>
</pre>
</div>

Eine Datei namens alles.php enthält eine für Suchmaschinen relevante Auswahl des Inhaltes. Die Datei wird dem Suchmaschinen-Robot angezeigt, wenn er als solcher erkannt wird und er keine spezielle Inhaltsanforderung stellt. So kann er wesentlichen Inhalt indizieren, der für menschliche Benutzer anders strukturiert sein muß.
Fairer Weise sollte dem Robot kein zusätzlicher Inhalt angezeigt werden, der nicht wirklich im Projekt zu finden ist. Das kann früher oder später zur Streichung des Projektes aus dem Suchmaschinen-Index führen.

<?php

$filename="$verzeichnis/inhalt/start.php";
include($filename);

$filename="$verzeichnis/inhalt/aufbau.php";
include($filename);

$filename="$verzeichnis/inhalt/einfacher.php";
include($filename);

$filename="$verzeichnis/inhalt/verweise.php";
include($filename);

$filename="$verzeichnis/inhalt/kontakt.php";
include($filename);
?>

Die Statistik einzublenden, ist relativ einfach - ein Formular mit der Angabe von Jahr, Monat und Paßwort, ein Tabellenkopf, eine include-Funktion und ein Tabellenfuß, viel mehr braucht es nicht. Allerdings täte ich diese Datei nicht direkt im Projekt unterbringen und auch keinen Verweis drauf setzen, denn die gesammelten Daten sind nur kurzfristig für die Projektverwaltung relevant. Sofern eine Korrelation zwischen Zeit und IP von Nutzern gegeben ist, sollen die Daten sogar nach kurzer Zeit gelöscht werden. Vorsicht: Das Paßwort wird hier als get-Parameter übergen, ist also in Klartext in der Adresszeile lesbar, das ist bei einem richtigen Projekt auch noch zu optimieren. Eine gesonderte Datei kann etwa auch mit einer Authentifizierung geschützt werden, wie der Apache sie bietet oder mit einer .htaccass-Datei. Bei einer gesonderten Datei ist es auch problemlos möglich, das Formular mit der post-Methode zu verschicken.

<h2><a id="oben">Statistik</a></h2>

<form action="<?php echo "$datnam"; ?>" method="get">
<table border="0" cellspacing="10" 
summary="Auswahl des Jahres und des Monats f&uuml;r die Statistiktabelle">
<caption>Datenauswahl</caption>
<tr><th>Was</th><th>Wert</th></tr>
<tr><td><label for="jahr">Jahr:</label></td><td>
<select name="jahr" id="jahr" size="1">

<?php
if(isset($_GET['jahr'])) {
  $jahr=$_GET['jahr'];
} else {
  $jahr=(date("Y"));
}
if(isset($_GET['monat'])) {
  $monat=$_GET['monat'];
} else {
  $monat=(date("m"));
}

if(isset($_GET['pw'])) {
  $pw=$_GET['pw'];
} else {
  $pw=" ";
}
$jahre=(date("Y"));
$jahrd=$jahre-2004;

echo "<option selected=\"selected\">$jahr</option>";
for ($i = 0; $i <= $jahrd; $i++) { 

$ii= $jahre-$i;
echo "<option>$ii</option>";

}
?>

</select>
</td></tr><tr>
<td><label for="monat">Monat:</label></td><td>
<select name="monat" id="monat" size="1">
<option selected="selected"><?php echo "$monat";?></option>
<option>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
<option>07</option>
<option>08</option>
<option>09</option>
<option>10</option>
<option>11</option>
<option>12</option>
</select>
</td></tr>
<tr><td><label for="pw">Kennwort :</label> </td>
<td><input type="password" name="pw" id="pw" size="4" />  </td></tr>

<tr>
<td><input type="hidden" name="me" value="<?php echo "$me"; ?>" />
<input type="hidden" name="in" value="<?php echo "$in"; ?>" />
<input type="hidden" name="stil" value="<?php echo "$stil"; ?>" />
<input type="submit" value=" Absenden " /></td>
<td><input type="reset" value=" Abbrechen" /></td>
</tr></table>
</form>

 
<?php
$datei="$jahr.$monat";
$pw=md5($pw);
$kw="d73d2b5aaaac6d80eac2ddc8cb7950df";
if ($pw == $kw) {

echo "<h2>$datei</h2>";
echo "<a id=\"obn\" href=\"#unten\">nach unten</a><br />";
  $nri=1;


  echo "<div class=\"table \">";
  echo "<table border=\"1\" cellpadding=\"5\" 
  summary=\"Statistische Daten des Projektes tabellarisch anzeigen\"> \n ";
  echo "<tr><th scope=\"col\">Nr.</th>
  <th scope=\"col\">Datum</th>
  <th scope=\"col\">Agent</th>
  <th scope=\"col\">Host, Adresse</th>
  <th scope=\"col\">Referrer, 
  <abbr title=\"Was wurde aufgerufen\">Was</abbr></th></tr>  \n ";

$filename="$verzeichnis/log/$datei";

if (file_exists($filename)) {
 
include($filename);


}



  echo "</table> </div>\n ";
  echo "<br /><p>
  <a id=\"unten\" href=\"#oben\">nach oben</a></p> \n ";
  }