Avatar billede Greenland Nybegynder
03. september 2009 - 17:15 Der er 3 kommentarer og
1 løsning

Php fopen fejl

Hej, Kan nogen hjælpe mig med følgende:

function log ($data)
{
  $myFile = "log_fil.txt";

try
{

  $fh=fopen($myFile,'w+');
  //or die (" '!.' ");
  fwrite($fh,$data);

  fclose($fh);
  print("after close");

}
catch(Exception $e)
{
  print($e->getMessage());

};

}

Mit problem er at der oprettes ikke nogen fil. Jeg ender ikke nede i catch sætningen så der burde ikke være nogen fejl.

Hvis jeg skriver or die (" '!.' "); dvs.

  $fh=fopen($myFile,'w+') or die (" '!.' ");


så ender jeg i "or die sætningen", men hvilken fejl brokker den sig om. ??
Ville tro at hvis der er fejl i åbningen af filen så burde den ende nede i min catch sætning og skrive fejlbeskeden ud !!!!!??


mvh
Greenland
Avatar billede dkfire Nybegynder
03. september 2009 - 19:16 #1
Hvordan skulle den nogensinde fange en exception som du aldrig smider ?
For at vide en fejlbesked bliver du nød til at danne en fejlbesked.

Har du de rigtige rettigheder for den mappe som filen burde ligge i ?
Henviser du til den rigtige mappe ?
Avatar billede Greenland Nybegynder
04. september 2009 - 10:12 #2
Okay.. så exception skal smides af mig selv.... I de programmeringssprog jeg anvender til dagligt smider systemet en exception hvis der sker en fejl inde i try sætningen !! men okay hvis det er sådan i php så må jeg godtage det.

Jeg mener at jeg har de rigtige rettigheder, men jeg er ikke 100% sikker på hvor ovenstående rutine forsøger at gemme filen !

Er det pr default i current directory eller i root ???
og hvordan sikrer jeg mig at den skriver i et ønsket bibliotek... jeg kan vel finde root´en med en eller anden funktion ???

mvh

Greenland
Avatar billede dkfire Nybegynder
05. september 2009 - 14:56 #3
Som dit script er nu, så gemmes filen i den samme mappe som din php fil ligger i.

And. exception, så er det jo noget som skal være indbygget i hver funktion i sproget for at det kan lade sig gøre.
Exception er ikke noget som har været i php sproget hele tiden, derfor er det ikke alle funktioner som bruger denne mulighed.

Hvor en fil gemmes henne afhænger af den sti som bliver angivet. Du skal give den komplette sti til mappe for at være sikker på at det virker.
For at finde den komplette sti til en mappe findes der forskellige metoder. En af dem er at finde stien til din rod mappe, som kan gerne skulle være i $_SERVER["DOCUMENT_ROOT"].

Lidt inspiration er altid at finde på:
http://www.php.net
http://dk2.php.net/manual/en/function.fopen.php
http://dk2.php.net/manual/en/language.exceptions.php
http://dk2.php.net/manual/en/reserved.variables.server.php
Avatar billede Greenland Nybegynder
11. oktober 2009 - 23:01 #4
det var et rettigheds problem....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester