Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

klipper noget af data til fil

0 views
Skip to first unread message

scootergrisen

unread,
Feb 1, 2010, 10:55:25 AM2/1/10
to
Jeg har en php funktion som tilføjer noget tekst i bunden af en fil om
hvilken side som blev besøgt på min hjemmeside og hvor de kom fra og
ip og tidspunkt.

Men nogle gange bliver hele linien ikke skrevet...

Den klipper noget af starten af linien.

Her er noget af den kode som jeg mener kan være skyld i fejlen:

-------------------------------------
KODE-------------------------------------

$fil = "besog.txt";
$datatilfil = "forsiden 127.0.0.1 - 01.01.2010\r\n";

if ($filhandle = fopen($fil, "a")){

if (fwrite($filhandle, $datatilfil)){

fclose($filhandle);

}else{

trigger_error("Der kunne ikke skrives til filen: \"$fil
\".", E_USER_ERROR);

}

}else{

trigger_error("Filen: \"$fil\" kunne ikke åbnes.",
E_USER_ERROR);
}
-------------------------------------
KODE-------------------------------------


Det er ligesom om at fwrite funktionen ikke får lov at skrive dataen
korrekt til filen.
Eller kan det være fordi jeg bruge 'a' i fopen altså så den tilføjer i
bunden af filen og der er et problem med det.

besog.txt filen skulle så gerne indenholde noget i stil med:

forsiden 127.0.0.1 - 01.01.2010
forsiden 23.34.23.123 - 02.01.2010
forsiden 127.0.0.1 - 04.01.2010
forsiden 127.0.0.1 - 06.01.2010
forsiden 147.35.3.123 - 03.05.2010

men nogen gange ser den sådan her ud:

forsiden 127.0.0.1 - 01.01.2010
forsiden 23.34.23.123 - 02.01.2010
.01.2010
010
forsiden 147.35.3.123 - 03.05.2010

Se den klipper noget af teksten og den klipper altid det forreste af
teksten aldrig bagfra.

Hvorfor bliver linien klippet ?

Peter Farsinsen

unread,
Feb 1, 2010, 11:11:13 AM2/1/10
to
scootergrisen wrote:
> $datatilfil = "forsiden 127.0.0.1 - 01.01.2010\r\n";

> Hvorfor bliver linien klippet ?

Har du tjekket at v�rdien af $datatilfil /altid/ er korrekt? G�r ud fra
den bliver strikket sammen af nogle variable fra $_SERVER?

- Peter

Leif Neland

unread,
Feb 1, 2010, 12:47:54 PM2/1/10
to
scootergrisen skrev:
> Jeg har en php funktion som tilf�jer noget tekst i bunden af en fil om
> hvilken side som blev bes�gt p� min hjemmeside og hvor de kom fra og

> ip og tidspunkt.
>
> Men nogle gange bliver hele linien ikke skrevet...
>
> Den klipper noget af starten af linien.
>
> Her er noget af den kode som jeg mener kan v�re skyld i fejlen:

>
> -------------------------------------
> KODE-------------------------------------
>
> $fil = "besog.txt";
> $datatilfil = "forsiden 127.0.0.1 - 01.01.2010\r\n";
>
> if ($filhandle = fopen($fil, "a")){
>
> if (fwrite($filhandle, $datatilfil)){
>
> fclose($filhandle);
>
> }else{
>
> trigger_error("Der kunne ikke skrives til filen: \"$fil
> \".", E_USER_ERROR);
>
> }
>
> }else{
>
> trigger_error("Filen: \"$fil\" kunne ikke �bnes.",
> E_USER_ERROR);
> }
> -------------------------------------
> KODE-------------------------------------
>
>
> Det er ligesom om at fwrite funktionen ikke f�r lov at skrive dataen
> korrekt til filen.
> Eller kan det v�re fordi jeg bruge 'a' i fopen alts� s� den tilf�jer i

> bunden af filen og der er et problem med det.
>
> besog.txt filen skulle s� gerne indenholde noget i stil med:

>
> forsiden 127.0.0.1 - 01.01.2010
> forsiden 23.34.23.123 - 02.01.2010
> forsiden 127.0.0.1 - 04.01.2010
> forsiden 127.0.0.1 - 06.01.2010
> forsiden 147.35.3.123 - 03.05.2010
>
> men nogen gange ser den s�dan her ud:

>
> forsiden 127.0.0.1 - 01.01.2010
> forsiden 23.34.23.123 - 02.01.2010
> .01.2010
> 010
> forsiden 147.35.3.123 - 03.05.2010
>
> Se den klipper noget af teksten og den klipper altid det forreste af
> teksten aldrig bagfra.
>
> Hvorfor bliver linien klippet ?

Der er vel ikke s� meget trafik, at der er to bes�gende, der kan skrive
til siden samtidig?

Leif

--
Jeg foretr�kker min the tilberedt efter BS6008

scootergrisen

unread,
Feb 9, 2010, 9:57:36 AM2/9/10
to
Jeg kan godt lave nogle forsøg med at checke at $datatilfil altid er
korrekt og ja den hente ip og sådan noget fra $_SERVER.
Jeg kan jo starte med $datatilfil = 'XXXXXXXXXX'; også se hvad der
sker.

> Der er vel ikke så meget trafik, at der er to besøgende, der kan skrive
> til siden samtidig?

Det er det som jeg ikke ved... men efter hvad jeg har læst i PHP
manualen så skulle fopen automatisk "låse" filen og med låse regner
jeg med at det betyder at det ikke ville være sådan et problem som der
er nu.

Det kan godt være det ikke er noget problem når hjemmesiden køre
normalt men det sker for eksempel når jeg skal validere/teste hele
hjemmesiden altså hvor et program kalder alle filerne på hjemmesiden
også åbner den måske 20 sider på 1 sekund eller noget i den stil.

0 new messages