/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Simpel tæller - går galt
Fra : Lasse Hedegaard


Dato : 21-08-02 20:31

Hejsa!

Jeg bruger denne simple tæller flere steder på fergusons.dk:

$fp=fopen("antal.inc","r");
$count=fgets($fp,1024);
fclose($fp);
$fw=fopen("antal.inc","w");
$count++;
$countnew=fputs($fw,$count);
fclose($fw);

Men men... af og til, så går den helt i stå. Pludselig indeholder
filen antal.inc ingenting, og tælleren går derfor i stå.

Hvordan kan det være, at filen pludselig bliver tømt?

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **

Få din Nokia 3310 opdateret til 3315! (Version 5.57)

 
 
Larz (21-08-2002)
Kommentar
Fra : Larz


Dato : 21-08-02 21:10

Lasse Hedegaard wrote:
> Hejsa!
>
> Jeg bruger denne simple tæller flere steder på fergusons.dk:
>
> $fp=fopen("antal.inc","r");
> $count=fgets($fp,1024);
> fclose($fp);
> $fw=fopen("antal.inc","w");
> $count++;
> $countnew=fputs($fw,$count);
> fclose($fw);
>
> Men men... af og til, så går den helt i stå. Pludselig indeholder
> filen antal.inc ingenting, og tælleren går derfor i stå.
>
> Hvordan kan det være, at filen pludselig bliver tømt?

Du låser ikke filen... Her er en lidt forbedret udgave:

$cnt = implode('',file('antal.inc'));
$cnt++;
$fp = fopen('antal.inc','w');
flock($fp,LOCK_EX);
fwrite($fp,$cnt);
fclose($fp);


Se evt http://dk.php.net/flock

--
-
Lars
http://coder.dk/sohofaq.php - Uofficiel WOL SOHO 77 FAQ
http://wshlman.moons.dk/ - Say goodbye to GameSpy
- A Free Half Life Manager!
To mail me remove your-pants.


Jonas Koch Bentzen (21-08-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 21-08-02 21:15

Larz skrev:
>
> $cnt = implode('',file('antal.inc'));

Eller bare

list($antal) = file("antal.inc");


Lasse Hedegaard (21-08-2002)
Kommentar
Fra : Lasse Hedegaard


Dato : 21-08-02 22:01

Jonas Koch Bentzen skrev:

>> $cnt = implode('',file('antal.inc'));
>
>Eller bare
>
>list($antal) = file("antal.inc");

Hmm, når jeg bruger Lars forslag, så tæller den, bruger jeg dit
(Jonas), så står den på 1 hele tiden.

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **

Få din Nokia 3310 opdateret til 3315! (Version 5.57)

Jonas Koch Bentzen (21-08-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 21-08-02 22:14

Lasse Hedegaard skrev:
> Jonas Koch Bentzen skrev:
>
>
>>>$cnt = implode('',file('antal.inc'));
>>
>>Eller bare
>>
>>list($antal) = file("antal.inc");
>
>
> Hmm, når jeg bruger Lars forslag, så tæller den, bruger jeg dit
> (Jonas), så står den på 1 hele tiden.

Er du sikker på, du sætter linjen ind det rigtige sted?


Lasse Hedegaard (21-08-2002)
Kommentar
Fra : Lasse Hedegaard


Dato : 21-08-02 22:16

Jonas Koch Bentzen skrev:

>Er du sikker på, du sætter linjen ind det rigtige sted?

Absolut ikke :)

Jeg gik ud fra, at når du skrev "eller bare", så skulle den linie du
skrev udskiftes med den du citerede fra Lars indlæg - altså første
linie?

Men jeg kan da godt se (nu), at $cnt i dette tilfælde slet ikke vil
blive sat til nogen værdi - så det er nu nok forkert :)

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **

Få din Nokia 3310 opdateret til 3315! (Version 5.57)

Jonas Koch Bentzen (21-08-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 21-08-02 22:55

Lasse Hedegaard skrev:
> Jonas Koch Bentzen skrev:
>
>
>>Er du sikker på, du sætter linjen ind det rigtige sted?
>
>
> Absolut ikke :)
>
> Jeg gik ud fra, at når du skrev "eller bare", så skulle den linie du
> skrev udskiftes med den du citerede fra Lars indlæg - altså første
> linie?
>
> Men jeg kan da godt se (nu), at $cnt i dette tilfælde slet ikke vil
> blive sat til nogen værdi - så det er nu nok forkert :)

Okay, så udskift $antal med $cnt.


Lasse Hedegaard (21-08-2002)
Kommentar
Fra : Lasse Hedegaard


Dato : 21-08-02 23:01

Jonas Koch Bentzen skrev:

>Okay, så udskift $antal med $cnt.

Doh!

Behøver jeg sige mere end: Godnat! :)

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **

Få din Nokia 3310 opdateret til 3315! (Version 5.57)

Lasse Hedegaard (21-08-2002)
Kommentar
Fra : Lasse Hedegaard


Dato : 21-08-02 21:46

Larz skrev:

>Du låser ikke filen.

Jeg spørger lige lidt mere.

Hvorfor skal den låses, og hvad sker der præcis?

Er det når der er flere der åbner eller gemmer filen samtidigt, at jeg
risikerer at den 'nulstilles'? Hvis ikke, hvornår sker det så?

Når man låser en fil, er der så kun en enkelt der kan bruge den ad
gangn, eller hvad sker der?

Hvis der ikke er 'ulemper' ved at låse den, hvorfor sker det så ikke
automatisk?

Jeg kiggede på linket, men fandt ikke umiddelbart svar på disse
spørgsmål.

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **

Få din Nokia 3310 opdateret til 3315! (Version 5.57)

Larz (21-08-2002)
Kommentar
Fra : Larz


Dato : 21-08-02 22:01

Lasse Hedegaard wrote:
> Hvorfor skal den låses, og hvad sker der præcis?

Forestil dig at i samme øjeblik dit script trunkerer (tømmer) filen for
at skrive det nye indhold, ja, så åbnes den af en anden instans, og
bliver læst... Den nye instans læser noget tomt ind... Den første
instans skriver det gamle indhold, hvorefter den nye instans skriver en
tom fil...

> Er det når der er flere der åbner eller gemmer filen samtidigt, at jeg
> risikerer at den 'nulstilles'? Hvis ikke, hvornår sker det så?

Yeps...

> Hvis der ikke er 'ulemper' ved at låse den, hvorfor sker det så ikke
> automatisk?

Hvis du blot skal læse behøver du ikke låse filen - andre må godt læse
filen samtidigt.
Ulemperne er vel at et script kan låse en fil på ubestemt tid...


--
-
Lars
http://coder.dk/sohofaq.php - Uofficiel WOL SOHO 77 FAQ
http://wshlman.moons.dk/ - Say goodbye to GameSpy
- A Free Half Life Manager!
To mail me remove your-pants.


Lasse Hedegaard (21-08-2002)
Kommentar
Fra : Lasse Hedegaard


Dato : 21-08-02 22:14

Larz skrev:

>> Hvorfor skal den låses, og hvad sker der præcis?
>
>Forestil dig at i samme øjeblik dit script trunkerer (tømmer) filen for
>at skrive det nye indhold, ja, så åbnes den af en anden instans, og
>bliver læst... Den nye instans læser noget tomt ind... Den første
>instans skriver det gamle indhold, hvorefter den nye instans skriver en
>tom fil...

Så var det altså hvis der kom flere og 'hentede tælleren' samtidigt...

>> Hvis der ikke er 'ulemper' ved at låse den, hvorfor sker det så ikke
>> automatisk?
>
>Hvis du blot skal læse behøver du ikke låse filen - andre må godt læse
>filen samtidigt.

Men hvad sker der når en fil er låst og flere henter den samtidigt?
Begge kan vel ikke få lov at læse den? Er det den første der prøver at
låse den der 'får lov'? Og også den første der kan få lov at skrive
til filen igen?

Dvs. tælleren vil kun tælle EN gang, selvom der har været 2 besøgende
- hvis altså de prøver at pille ved filen samtidigt?

>Ulemperne er vel at et script kan låse en fil på ubestemt tid...

Oki, men kunne man ikke automatisk sætte den til at låse filen i det
øjeblik en 'gem'-kommandoer køres? Det er vel kun her (og i alle
tilfælde når man vil gemme), at man har behov for det?

Der er vel INGEN grund til IKKE at låse den, når man skal gemme?

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **

Få din Nokia 3310 opdateret til 3315! (Version 5.57)

Larz (21-08-2002)
Kommentar
Fra : Larz


Dato : 21-08-02 23:14

Lasse Hedegaard wrote:
> Men hvad sker der når en fil er låst og flere henter den samtidigt?
> Begge kan vel ikke få lov at læse den? Er det den første der prøver at
> låse den der 'får lov'? Og også den første der kan få lov at skrive
> til filen igen?

Scriptet hænger indtil den får lov eller det timer ud...

> Oki, men kunne man ikke automatisk sætte den til at låse filen i det
> øjeblik en 'gem'-kommandoer køres? Det er vel kun her (og i alle
> tilfælde når man vil gemme), at man har behov for det?

Jeg tror ikke du kan sætte den op til det... Men du kan da selvfølgelig
skrive en klasse - et abstraktionslag der gør det ;)

> Der er vel INGEN grund til IKKE at låse den, når man skal gemme?

Næææh det skader da ikke ;)

--
-
Lars
http://coder.dk/sohofaq.php - Uofficiel WOL SOHO 77 FAQ
http://wshlman.moons.dk/ - Say goodbye to GameSpy
- A Free Half Life Manager!
To mail me remove your-pants.


Lasse Hedegaard (21-08-2002)
Kommentar
Fra : Lasse Hedegaard


Dato : 21-08-02 23:28

Larz skrev:

>Scriptet hænger indtil den får lov eller det timer ud

Selvfølgelig - perfekt!

Tak for hjælpen til jer begge!

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/ - låsesmeden til din simlock
** - Nu også unlocking af Nokia 3410, 5210 og 6310 **

Få din Nokia 3310 opdateret til 3315! (Version 5.57)

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste