|
| klipper noget af data til fil Fra : scootergrisen |
Dato : 01-02-10 08:55 |
|
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 (01-02-2010)
| Kommentar Fra : Peter Farsinsen |
Dato : 01-02-10 17:11 |
|
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 (01-02-2010)
| Kommentar Fra : Leif Neland |
Dato : 01-02-10 18:48 |
|
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 (09-02-2010)
| Kommentar Fra : scootergrisen |
Dato : 09-02-10 07:58 |
|
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.
| |
|
|