dポイントプレゼントキャンペーン実施中!

実は、下のように記述して実行してもディレクトリーが作成されずに、その原因がわからないでいます。
<?php
parse_str($_COOKIE[abc]);

$dirc=$ck_data1;
print $dirc;
if(!file_exists($dirc)){
mkdir("$dirc");
}

?>

一応ディレクトリー名を確認するために、途中でprint $dirc;を入れて
ディレクトリー名を確認しましたが、問題ないようでした。

$dircという変数を遣わないで、直接ディレクトリー名を入れると
問題なくディレクトリーは作成されます。
    ↓
<?php
parse_str($_COOKIE[abc]);

$dirc=$ck_data1;
print $dirc;

if(!file_exists("test")){  //←testというディレクトリー名を直接入れると、問題なくディレクトリーが作成される。
mkdir("test");
}

?>


何とか、ディレクトリ名を変数で受けて作成したいのですが、
なぜ、変数で受けることができないのかがわかりません。

どなたか、詳しい方よろしくご指導お願いいたします。

A 回答 (1件)

print $dirc;


で、もちろん値は確認できているんですよね?

普通は、パーミッション設定の確認を勧めるところですが、直接値『test』を設定した場合成功するとの事なので、それも違うようです。
あるいは、変数$dircに入っている値にディレクトリ名として使えない文字、/\:あるいはスペースなどが含まれている、という事なのかも知れません。記号を除いた英数のみで構成されていれば、確実に大丈夫ですが、日本語が含まれた場合ダメかも知れません(サーバ設定によると思うので、一般的にどうとは言えない)。

$dirc=$ck_data1;
の部分を
$dirc='test';
とした場合は、どうでしょうか?

これでダメなら、変数を受けて以降の場所に間違いがあり、もし成功したら変数を受け取るまでに間違いがあるか、変数の値に問題があると切り分けできます。
    • good
    • 0
この回答へのお礼

お礼が遅れまして申し訳ございません。
投稿質問後に、自力解決できました。
おっしゃられるとおり、スペースが入っていたのが原因でした。
trimで対応できました。

ありがとうございました。

お礼日時:2011/03/01 23:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!