Aufrufzähler # [saved] -> Speichervorgangszähler # [data][name] -> Namensfeld aus dem Formular # [email] -> eMailfeld aus dem Formular # [text] -> Textfeld aus dem Formular ## Dateiname festlegen $filename = "speichern.dat"; #----------------------------------------------------------------- function sendscript($file) { $file = basename($file); $fh = @fopen($file,"r"); if (!$fh) return false; $data = fread($fh, filesize($file)); fclose($fh); header("Content-Type: text/plain"); header("Content-Disposition: attachment; filename=\"".basename($file)."\""); header("Accept-Ranges: bytes"); header("Content-Length: ".filesize($file)); echo $data; return true; } #-------------------------------------------------------------------- ## Rekursive Entfernung der Maskierungs-Backslashes aus Arrays function strip($data) { if (!get_magic_quotes_gpc()) { return $data; } if (is_array($data)) { foreach($data as $key => $val) { $data[$key] = strip($val); } } else { $data = stripslashes($data); } return $data; } #-------------------------------------------------------------------- function speichern($filename,$data) { ##Daten verpacken $pdata = serialize($data); ## Datei öffnen $fh = fopen($filename,"w"); if ($fh) { ## Daten wegschreiben fwrite($fh, $pdata,strlen($pdata)); fclose($fh); return true; } return false; } #-------------------------------------------------------------------- function holen($filename) { ## verpackte Daten aus der Datei lesen ## leider funktioniert diese Funktion nicht überall. #$pdata = @file_get_contents($filename); ## stattdessen wird die klassische fopen() benutzt $fh = @fopen($filename,"r"); if (!$fh) { return false; } $pdata = fread($fh, filesize($filename)); fclose($fh); if ($pdata) { ## Daten auspacken: $data = unserialize($pdata); ## Datenarray zurückgeben return $data; } ## Fehler-Rückgabewert; return false; } #==================================================================== # PHP-Hauptprogramm #==================================================================== ## Daten aus dem Post-Array extrahieren. ## und die Backslashes entfernen, falls erforderlich $data = strip($_POST["data"]); ## diese sollte man noch auf dann später noch prüfen if ($filedata = holen($filename)) { $filedata["zahl"]++; } else ## es sind noch keine Daten in der Datei { ## moch keine Daten da $meldung = "

noch keine Daten da

"; ## leeres Datenarray anlegen $filedata = array(); $filedata["zahl"]=1; $filedata["saved"]=0; $filedata["download"]=0; } ## wurde das Script durch POST aufgerufen und soll gespeichert werden? if($_POST["btn"]["download"]) { sendscript($_SERVER["PHP_SELF"]); $filedata["download"]++; } elseif ($_POST["btn"]["speichern"]) { ## Die Filedaten zuweisen $filedata["data"]=$data; $filedata["saved"]++; } else { $data=$filedata["data"]; } ## Da jeder Scriptaufruf gezählt werden soll, wird hier gespeichert. speichern($filename,$filedata); #==================================================================== # Ende PHP-Hauptprogramm #==================================================================== ?> Meine Datenseite

Beispielscript für zyklischen Aufruf mit Zählerfunktionen

Aufrufe incl. diesem bisher:

Downloads bisher:

Bisher wurde mal gespeichert

" method="post"> Name:
">
eMail:
">
Text: