Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
07.10.2002, 15:50
Ornest



Also, ich will ein Skript schreiben, dass einen Counter erhöht, wenn ein Formular abgeschickt wird. Dieser Counter wird in eine Datei geschrieben. Bei erneutem Senden wird er gelesen, um 1 addiert und wieder reingeschrieben.
Das Ganze hab ich mir so gedacht:

Quellcode:
<?PHP
    
    // Die Datei, in die geschrieben werden soll
    $datei      = "count.dat";
    
    // Dateizeiger festlegen
    $fd         = fopen($datei, "w");
    
    // Aus der Datei 3 Zeichen lesen
    $counter    = fgets($fd, 3);
    
    // Casten ...
    setType($counter, integer);
    
    // Blub ...
    $counter++;
    
    // Neuen Wert in die Datei schreiben
    fwrite($fd, $counter);

?>

Schön und gut, jedoch wird nur einmal um 1 addiert ...

Edit: Ich sehe gerade, dass er egal bei welchem Startwert nicht um 1 addiert wird, sondern dass immer 1 hingeschrieben wird.

--


Dieser Beitrag wurde am 07.10.2002 um 15:56 von Ornest bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
07.10.2002, 16:18
Onkel Dittmeyer



Zitat:
$fd = fopen($datei, "w");

Das "w" bedeutet, dass die Datei nur zum Schreiben geöffnet wird und sie außerdem beim Öffnen selber auf die größe 0 gesetzt wird.
Du musst das so machen:
Quellcode:
<?PHP
  
    // Die Datei, in die geschrieben werden soll
    $datei      = "count.dat";
  
    // Datei erstmal zum Lesen öffnen
    [b]$fd         = fopen($datei, "r");[/b]
  
    // Aus der Datei 3 Zeichen lesen
    $counter    = fgets($fd, 3);

    [b]fclose($fd);[/b]        //schließen

    //und wieder zum schreiben öffnen
    [b]$fd         = fopen($datei, "w");[/b]
  
    //increase und ausgeben
    echo ++$counter;
  
    // Neuen Wert in die Datei schreiben
    fwrite($fd, $counter);

?>

Btw Casten brauchst du eigentlich nicht wirklich...

--


Dieser Beitrag wurde am 07.10.2002 um 16:50 von [dP]ThEpOpE bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
08.10.2002, 11:34
Andy_



Warum die Datei 2 mal öffnen und schließen?
$fd = fopen($datei, "r+");
und nach dem lesen den Zeiger wieder zurücksetzen:
rewind($fd);
Dann schreiben.

--

42 Es gibt keinen Sinn des Lebens.

zum Seitenanfang zum Seitenende Profil || Suche
003
08.10.2002, 23:31
the_viking



Warum kompliziert, wenns auch einfach geht??

--

thx, cu, MfG the_viking

(( My =]=H=O=M=E=> Page! ))
Coder bei Brainshock-Interactive und bei Z-Software
My ICQ: #160959446

zum Seitenanfang zum Seitenende Profil || Suche
004
08.10.2002, 23:32
the_viking



@Andy:

Denken??

--

thx, cu, MfG the_viking

(( My =]=H=O=M=E=> Page! ))
Coder bei Brainshock-Interactive und bei Z-Software
My ICQ: #160959446

zum Seitenanfang zum Seitenende Profil || Suche
005
08.10.2002, 23:40
Andy_



Ähm, the_viking, warum Performanceverlust durch Faulheit, wenn man übersichtlicher und logischer mit einem anderen Weg gehen kann.
Wo bitte soll der einschlägige Vorteil in deiner Lösung liegen, denn bei meinem Code werden weniger Rechenprozesse angewandt, kompliziert ist es außerdem auch nicht, eher noch einfacher.

Noch was, es gibt einen Link namens Editieren genau unter einem Post, den du gepostet hast, wenn du ihn anklickst, kann man verblüffende Features finden, die einen 2. Post überflüssig machen.

--

42 Es gibt keinen Sinn des Lebens.


Dieser Beitrag wurde am 08.10.2002 um 23:43 von Andy bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
09.10.2002, 00:35
the_viking



Wiso keinen

--

thx, cu, MfG the_viking

(( My =]=H=O=M=E=> Page! ))
Coder bei Brainshock-Interactive und bei Z-Software
My ICQ: #160959446

zum Seitenanfang zum Seitenende Profil || Suche
007
09.10.2002, 00:36
the_viking



2. Post?? Ausserdem was heiß Performanceverlsust?? Was gibts bei NGZ denn an Performance zu verlieren?? *g*
\E: Kann ich meine eigenen Posts löschen??
\PE: Nein.

--

thx, cu, MfG the_viking

(( My =]=H=O=M=E=> Page! ))
Coder bei Brainshock-Interactive und bei Z-Software
My ICQ: #160959446


Dieser Beitrag wurde am 09.10.2002 um 00:37 von the_viking bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
09.10.2002, 06:26
K-Putt



Wenn das Script 1x am Tag von 1ner Person ausgeführt wird, wirds die Performance egal sein.
Wenn du aber ne große Portalseite oso hast, auf die täglich 1000de zugriffe erfolgen, musst du wohl oder übel darauf achten, ordentlich mit den vorhandenen Resourcen umzugehen.

--

Rambo Engineer @ Drippy's 2fort - finest TFC 1.5 || Bild Upload || The world's most advanced open source database

zum Seitenanfang zum Seitenende Profil || Suche