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...
Steve Jobs has no public record of giving to charity. As of 2011 Bill Gates has given about 30 billion to charity.
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