MkDir Не удалось создать каталог PHP - PullRequest
0 голосов
/ 18 августа 2011

Я пытаюсь создать каталог с помощью PHP, это работает:

<?php
$uid = "user_615";
$thisdir = getcwd(); 

if(mkdir($thisdir ."/userpics/" . $uid , 0777)) 
{ 
   echo "Directory has been created successfully..."; 
} 
else 
{ 
   echo "Failed to create directory..."; 
} 
?>

но это не работает

<?php
session_start();
$uid = $_SESSION['username'];
$thisdir = getcwd(); 

if(mkdir($thisdir ."/userpics/" . $uid , 0777)) 
{ 
   echo "Directory has been created successfully..."; 
} 
else 
{ 
   echo "Failed to create directory..."; 
} 
?>

Да, переменная сеанса заполняется точно так же, как указано выше 'user_615', так почему второй отказал?

EDIT:

Итак, я принял предложение @stefgosselin и переделал код так, чтобы он был

<?php
session_start();
$uid = $_SESSION['username'];
$thisdir = getcwd() . "/userpics" . $uid; 

if(mkdir($thisdir , 0777)) 
{ 
   echo "Directory has been created successfully..."; 
} 
else 
{ 
   echo "Failed to create directory..."; 
   echo "Your thisdir Variable is:'" . $thisdir . "'" ;
} 
?>

И вывод

Не удалось создать каталог ... Ваша переменная thisdir: '/ unified / b / bis / www.mysite.com / jou / userpics / user_615

Любые другие идеи о том, что может привести к невозможности использования переменной Session при создании каталога?

1 Ответ

2 голосов
/ 18 августа 2011

В качестве небольшого совета я бы просто поместил все значения $thisdir в переменную и проверил, соответствует ли вывод этого результата ожидаемому результату.

IE: определение $thisdir ."/userpics/" . $uid в переменной даст вам возможность легко вывести и проверить значение аргумента, которое вы передаете mkdir.

Редактировать: исправлены незначительные фразы для лучшего перевода на английский. Извините, но не ясно, Уэсли понял простую мысль, которую я неуклюже пытался сформулировать.

...