Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Counter funktioniert nicht (https://www.delphipraxis.net/41183-%5Bphp%5D-counter-funktioniert-nicht.html)

PierreB 27. Feb 2005 16:08


[PHP] Counter funktioniert nicht
 
Moin,

ich hab mal wieder ein php-Problem:

Ich hab mir mittels Beispielen aus dem Netz versucht einen kleinen Counter zu bauen.
Ich hab ne "counter.txt" erstellt und ins Verzeichnis gelegt. In der Webseite nun
folgender Code:
Code:
<?php
  $file = "counter.txt"; // Dateizuweisung
  $ftp = @fopen($file,"r+"); // Öffnet die Datei zum lesen und schreiben (r+)
  $count = (int)fgets($ftp,10); // Holt die ersten 10 Zeichen aus der Datei.
  $count++; // Addiert eine 1 hinzu
  fwrite($ftp,$count); // Schreibt die neue Zahl in die Datei
  fclose($ftp); // Schließt die Datei wieder
  include($file); // Zeigt den aktuellen Counterstand an
?>
Ich hab das nur auf meinem lokalen PC getestet (mittels php.exe) und es kam
folgendes heraus: Ging ich das erste Mal auf die Seite kam 1. Das zweite mal kommt 12.
Das dritte Mal 1213. Das vierte Mal dann 12131214. Was stimmt nicht am Counter ?

Vielen Dank

jfheins 27. Feb 2005 16:15

Re: [PHP] Counter funktioniert nicht
 
Du machst vereinfacht:
Lese Datei ein;
Erhöhe Zahl um eins;
Hänge neue Zahl an Datei an;
(Und da liegt dein Fehler)

Füg vor dem write mal ein fseek ($zeiger, 0)

P.S. Das (int) brauchst du nicht, PHP ist da viel flexibler als Delphi :stupid:

PierreB 27. Feb 2005 16:22

Re: [PHP] Counter funktioniert nicht
 
Ähm wie gesagt, hab keine Ahnung von PHP. :-D
Hab jetzt:
Code:
<?php
  $file = "counter.txt"; // Dateizuweisung
  $ftp = @fopen($file,"r+"); // Öffnet die Datei zum lesen und schreiben (r+)
  $count = (int)fgets($ftp,10); // Holt die ersten 10 Zeichen aus der Datei.
  $count++; // Addiert eine 1 hinzu
fseek($zeiger, 0);
fwrite($ftp,$count); // Schreibt die neue Zahl in die Datei
  fclose($ftp); // Schließt die Datei wieder
  include($file); // Zeigt den aktuellen Counterstand an
?>
War mir klar das es nicht geht, was muss statt zeiger rein ??

omiT 27. Feb 2005 16:30

Re: [PHP] Counter funktioniert nicht
 
Als ersten Parameter erwartet fseek() ein Dateihandle, also in deinem fall $file. Sowas kannste auch sehr schnell auf www.php.net nachlesen.

PierreB 27. Feb 2005 16:33

Re: [PHP] Counter funktioniert nicht
 
Zitat:

Zitat von omiT
Als ersten Parameter erwartet fseek() ein Dateihandle, also in deinem fall $file. Sowas kannste auch sehr schnell auf www.php.net nachlesen.

Es funktioniert jetzt. (War fseek($ftp, 0); )

Vielen Dank :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz