[PHP] aanmaken van subdirectories gaat niet: slash probleem?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben even een beetje aan het aanklooien met de sourcecode van de Simpleviewer Admin (http://www.redsplash.de/projects/simplevieweradmin), een php foto album icm flash. Nu gaat er wat mis bij het aanmaken van een nieuwe categorie in mijn fotoalbum. De code die hier voor in de source wordt gebruikt is:

code:
1
2
3
4
if (@mkdir($_SESSION['currentDir'] . $albumDirName, 0777)) {
@mkdir($_SESSION['currentDir'] . $albumDirName . '/images', 0777);
@mkdir($_SESSION['currentDir'] . $albumDirName . '/thumbs', 0777);
$_SESSION['statusMsg'][] = 'The album ' . $albumRealName . ' was created.';


Kort komt het er op neer dat de volgende dingen vervolgens gebeuren bij het aanmaken van de nieuwe map "Map1":
- de nieuwe Map1 wordt in de huidige directory aangemaakt, met de juiste rechten (777),
- de melding "The album Map1 was created" wordt correct weergegeven,
- maar het belangrijkste: de submappen worden niet aangemaakt.

Nu heb ik gekeken wat er gebeurt wanneer ik '/images' verander in "images"- naast de nieuwe hoofdmap Map1 wordt er ook een andere hoofdmap Map1images aangemaakt.
Map1 heeft de juiste rechten (777), dus het kan niet aan de rechten liggen. Zou het wellicht aan de / kunnen liggen, of kunnen er ook andere redenen zijn?

Alvast bedankt :)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

offtopic:
Fouten moet je afvangen, niet onderdrukken met @.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Wat is de volledige output van
code:
1
$_SESSION['currentDir'] . $albumDirName . '/images'
want als je de map vanaf de root zou opbouwen dan zou er geen probleem mogen ontstaan.

  • Stamgastje
  • Registratie: April 2003
  • Laatst online: 02-02-2020
Off-topic: je code zou wat leesbaarder (en ook optimaler doordat je onnodige concat operaties vermijdt) worden als je het zo zou herschrijven:

PHP:
1
2
3
4
5
6
$baseDir = $_SESSION['currentDir'] . $albumDirName;
if (@mkdir($baseDir, 0777)) {
  @mkdir($baseDir . '/images', 0777);
  @mkdir($baseDir . '/thumbs', 0777);
  $_SESSION['statusMsg'][] = 'The album ' . $albumRealName . ' was created.';
};

Oh ja, gebruik [code=php] om syntax highlighting te gebruiken. ;)

On-topic: geef idd de waarde van $_SESSION['currentDir'] eens weer:
PHP:
1
echo $_SESSION['currentDir'];

  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 19-09 18:02
Ik heb ook eens zoiets gehad en toen ik mkdir als naam het rootpad + de naam gaf werkte hij wel, misschien moet je dat eens proberen.

Read the code, write the code, be the code!