2016-09-16 5 views
0

これは1日分の調査であり、それを把握することはできません。 mkdir()を使ってユーザー名を登録したユーザーにサインインすると、フォルダを正常に作成できます。問題は、最初のユーザーのフォルダーが自分のホストに追加される前に別のユーザーにサインアップする必要があるため、最新のユーザーには別のユーザーが登録されるまでフォルダーが追加されません。phpは、ユーザ名に基づいてフォルダ機能を追加しますが、別のユーザを追加した後のみです

私は新しい会社を立ち上げて自分自身をテストし、ボトムアップから作業しているので、私は自分の持っているものにもっとセキュリティを加える必要があることを知っていますが、進む。

私がオンラインで調査したすべてとphp.netで、私が(私が見つけることができる)追加する必要があるものは何も書き留めていません。

推奨事項があります。お手伝いありがとう。

ここに私のコードです。

<?php 
     $author=$_POST['username']; 
     $root = "upload"; 

mkdir("$root/$author", 0777, true); 
?> 

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

+0

「clearstatcache();」を実行してみてください。 mkdirの前後。phpsファイルキャッシュにはまだ知られていないので、無視されることがあります。 – ZBerg

+0

私はまだ同じ問題を抱えています。ここにコードがあります。<?php \t $ author = $ _ POST ['username']; \t \t $ root = "upload"; \t clearstatcache(); \t \t mkdir( "$ root/$ author"、0777、true); \t \t clearstatcache(); \t?> – brtedesco

+0

これをデバッグしてください...あなたがディレクトリを作成する前に$ authorと$ rootをエコーアウトして、あなたが何を表示しているかを見てください。 –

答えて

-1

さて、次のようにして投稿してください。

<?php 

$author = $_POST['username']; 
$root = "upload"; 
$path = $root.'/'.$author; 

mkdir($path, 0777, true); 
clearstatcache(); 

if(file_exists($path)){ 
    echo $path.' -> directory does exists'; 
} else { 
    echo $path.' -> directory does not exist'; 
} 

?> 
+3

POST値は常に消毒されるべきであることを忘れないでください。 – rak007

+0

ああ、まったく同意して、ただちに問題を解明してください。彼はすでにセキュリティは問題だと知っている...誰もが覚えている! – ZBerg

+0

私はそれをしました、そして今私のホスティングに投稿するものはありません。私は次のようになりますが、フォルダーの値は新しいユーザー名に基づいているため、ファイルの存在に関する部分がわかりません。これはサインアップ時に一意のユーザー名に基づいた$ authorです。私が追加するユーザー名をテストすることはまだ使用されていないので、$ author値が存在する可能性はありません。 '警告:mkdir()[function.mkdir]:ファイルは/home/content/14/6467414/html/upub/signup.php on line 105に存在します アップロード/ - >ディレクトリは存在する '。 – brtedesco

関連する問題