mboost-dp1

Fejl med "If file_exist" statement hvis man befinder sig i sub directories.


Gå til bund
Gravatar #1 - Nielson
19. feb. 2015 21:55
Halløj!

Jeg ved ikke om det bare er fordi at jeg er voldsom træt eller om jeg bare ikke kan magte mit eget liv mere, men jeg har store problemer med nedenstående kode:

$userDirectory = 'users/'.$user_id.'/';

if (file_exists($userDirectory)) { } else { mkdir("users/".$user_id."/", 0777); }


Den tjekker fint om mappen er der og opretter den hvis den ikke er, når jeg står på index siden, altså "/". Men hvis jeg går ind på et subdirectory som på mit forum som ligger på /forum/ og kører den samme, vil den ikke virke medmindre jeg smider laver koden således:

$userDirectory = '/users/'.$user_id.'/';  


Er der nogen der kender et work around til dette?
Gravatar #2 - XorpiZ
19. feb. 2015 21:56
Hvis det virker med den nederste, hvad er problemet så?

Og hvilken fejl får du?
Gravatar #3 - Nielson
19. feb. 2015 22:00
Ah ja sorry. Med den nederste kode virker det kun i subdirectories og ikke når jeg står på index siden.

Fejlen er: "Warning: mkdir(): No such file or directory in ....."

Ved godt at det er fordi at den ikke kan finde det directory der hedder /users/, men hvordan jeg skal løse det, kan jeg bare ikke hitte ud af :(

Har prøvet at smide "http://www" og så sidens adresse ind for at lave den fulde adresse, men det hjælper ligevidt.
Gravatar #4 - Ronson ⅍
19. feb. 2015 22:16
hvis du kalder kommandoen fra et subdir forsøger den vel også at lave biblioteket i det subdir

Altså bruger du funktionen i / vil den oprette user/brugernavn/ hvis den har rettigheder.
Står du i forum/ vil den oprette forum/user/brugernavn/ hvis den har rettigheder.

Kan du ikke angive en absolut sti eller starte med /? / må være den relative rod.

Er mit gæt...
Gravatar #5 - Nielson
19. feb. 2015 22:26
#4

Det er selvfølgelig rigtig.

Har prøvet at give den, den relative rod som jeg finder ved at lave en $_SERVER['DOCUMENT_ROOT'].

Der får jeg: /customers/4/5/b/gamersguild.dk/httpd.www.

Hvis jeg smider den ind så den hedder:

/customers/4/5/b/gamersguild.dk/httpd.www/users/'.$user_id.'/'; 


Så virker den stadig kun i "/", men ikke under /forum/.

Gravatar #6 - Nielson
19. feb. 2015 22:43
#4

Gjorde som du sagde og ændrede koden til:

  $root = $_SERVER['DOCUMENT_ROOT'];

$userDirectory = '/users/'.$user_id.'/';

if (file_exists($userDirectory)) { } else { mkdir($root."/users/".$user_id."/", 0777); }


Og dette virkede perfekt! :)

Tak for hjælpen!
Gravatar #7 - XorpiZ
19. feb. 2015 23:32
Det var så lidt!
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login