Geschrieben von ferdinand24 am 09.01.2006, 20:39

Moin @ all,

hier mal ein kleines Tutorial für eine Unterschriftenliste.
Das Script arbeitet mit PHP und benötigt keine MySQL-Datenbank, also richtig schön anfängergerecht.

Ich werde mal kurz die Arbeitsweise des Skriptes erklären.
Das können sich dann alle durchlesen, die keinen Bock haben, den Quellcode zu studieren (welcher jedoch ausreichend kommentiert ist):

Die Unterschriften werden in der Datei unterschriften.txt gespeichert. Der Zählerstand für die vorhandenen Unterschriften lagert in der Datei counter.txt, die gesamte Auswertung (z.B. zur Weitergabe an die Firmen) inkl. IP-Adressen der User werden in der ip.txt gespeichert.
Beim Aufruf des Scripts werden die Unterschriften und der Counterstand ausgelesen und in einer Tabelle ausgegeben.
Zum Abgeben einer neuen Unterschrift muss man lediglich seinen Namen eintragen.
Uhrzeit und Datum werden angehängt, das ganze in die Datei gespeichert, der Counterstand um 1 erhöht, die Counterdatei gespeichert und letztendlich noch die IP-Adresse gespeichert, damit nur eine Unterschrift abgegeben werden kann.

Um das Ding zum Laufen zu bringen müsst ihr einfach den im Folgenden im grünen Fenster aufgelisteten Quellcode in eine x-beliebige PHP-Datei kopieren und dann könnt ihr auch schon anfangen, Unterschriften zu sammeln.


<style type="text/css">
<!--
body{
font-family:Arial,Helvetica;
}

h1{
font-size:32pt;
}

-->
</style>

<?
//Unterschriften-Datei
$file = "unterschriften.txt";

//Counter-Datei
$counterfile = "counter.txt";

//IP-Adressen-Datei
$ipfile = "ip.txt";

//IP-Adresse
$ip = $_SERVER["REMOTE_ADDR"];

//wenn Counter-Datei nicht existiert, anlegen
if (!file_exists($counterfile)){
$dz = fopen($counterfile, "w");
fwrite($dz, "0");
fclose($dz);
}

//Counter-Datei auslesen
$dz = fopen($counterfile, "r");
$counter = fread($dz, filesize($counterfile));
fclose($dz);

//erstellt neue Unterschriften-Datei wenn keine existiert
if (!file_exists($file)) {
$dz = fopen($file, "w");
fwrite($dz, "<!-- Unterschriftenliste by ferdinand24 -->");
fclose($dz);
}

//liest Inhalt der Unterschriften-Datei zum Rückspeichern aus
$dz = fopen($file, "r");
$oldwrite = fread($dz, filesize($file));
fclose($dz);

//übergibt die Formulareingaben an Variablen
$name = $_POST['name'];

//wenn IP-Datei nicht existiert, anlegen
if (!file_exists($ipfile)){
$dz = fopen($ipfile, "w");
fwrite($dz, "#\n");
fclose($dz);
}

//IP-Datei auslesen
$dz = fopen($ipfile, "r");
$ipfilewert = fread($dz, filesize($ipfile));
fclose($dz);

//wenn Name leer, Meldung setzen
$status = "";
if (isset($name) && empty($name)) $status = "Bitte einen Namen angeben!";
//entfernt PHP- und HTML-Code aus dem Namen
$name = strip_tags($name);

//erstelle Datum und Uhrzeit
$date = date("d.m.Y");
$time = date("H:i");

//erstelle genauen Wert für Datei
$newwrite = "<tr><td align=\"center\">$name</td><td align=\"center\">$date / $time Uhr</td></tr>$oldwrite";

//speichert alles in Datei
if (!empty($name) && !strchr($ipfilewert, $ip)) {
$dz = fopen($file, "w");
fwrite($dz, $newwrite);
fclose($dz);

//erhöht den Counter um 1
$counter++;
//schreibt neuen Counterstand in Counter-Datei
$dz = fopen($counterfile, "w");
fwrite($dz, $counter);
fclose($dz);
//IP in Datei schreiben
$dz = fopen($ipfile, "w");
fwrite($dz, $ipfilewert.$ip." # ".$name." # ".$date."/".$time."\n");
fclose($dz);
}

//liest Inhalt der Unterschriften-Datei zur Ausgabe aus
$dz = fopen($file, "r");
$unterschriften = fread($dz, 100000);
fclose($dz);
?>

<div align="center">
<h1>Unterschriftenliste</h1>

Hier ist gaaaaaaaaaaaanz viel Platz für das Thema der Unterschriftenliste<br><br>

<i><?=$counter?> Unterschriften vorhanden</i>
<table border="0" width="50%">
<tr><td> </td><td> </td></tr>
<tr><td colspan="2" height="1" bgcolor="black">
<tr><td align="center" width="25%"><b>Name</b></td><td align="center" width="25%"><b>Datum/Uhrzeit</b></td></tr>
<tr><td colspan="2" height="1" bgcolor="black">
<tr><td> </td><td> </td></tr>
<?=$unterschriften?>
<tr><td> </td><td> </td></tr>
<tr><td colspan="2" height="1" bgcolor="black">
</table>

<h2>Unterschrift abgeben</h2>
<form action="<?=basename(__FILE__)?>" method="post">
<b>Name:</b><br>
<input type="text" name="name"><br><br>
<input type="submit" value="Unterschrift abgeben">
</form>
<?=$status?><br>
---<br>
<!-- nachfolgenden Copyright-Hinweis bitte belassen -->
&copy; 2006 by <a href="http://ferdinand24.lima-city.de" target="_blank">Ferdinand Malcher</a>
</div>

Im unteren Teil des Scripts könnt ihr mit ein paar HTML-Kenntnissen die Überschrift und so ändern.
Wenn ihr dann auch noch ein wenig CSS könnt, könnt ihr am oberen Ende des Scripts das Aussehen der Seite ein wenig beeinflussen.
Jedoch würde das den Rahmen dieses Tutorials sprengen.

Viel Spaß mit dem Script wünscht

ferdinand24

PS. Eine Demo ist zu finden unter: http://ferdinand24.lima-city.de/usl.php

Bewertung Anzahl
6
66,7 %
6 Bewertungen
5
22,2 %
2 Bewertungen
4
11,1 %
1 Bewertungen