MkDir创建目录PHP失败

时间:2011-08-18 02:50:21

标签: php mkdir

我正在尝试使用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'完全相同,那么为什么第二个会失败呢?

修改

所以我接受了@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 个答案:

答案 0 :(得分:2)

作为一个小技巧,我只需将所有$thisdir放入一个变量中,并检查其输出是否与您期望的结果相加。

IE:在变量中定义$thisdir ."/userpics/" . $uid将使您可以轻松输出并验证要传递给mkdir的参数值。

编辑:调整较小的措辞以获得更好的英语翻译。对不起,上面不清楚,韦斯利明白我笨拙地试图做的简单点。