2012-03-01 11 views
-2

これは非常に単純ですが、何かがうまくいかないと思います。私は、ユーザーが投稿した名前のフォルダを作成し、同じディレクトリにフォルダを作成しようとしています。しかし、私はそれを作成することはできません。ここでPHPを使用しているユーザー名を持つフォルダを作成する

は私のコードです:

$Name = $_POST['name'];  

$thisdir = getcwd(); 

$folderPath = $thisdir . '\\' . $Name; 

mkdir($folderPath); 

chmod($folderPath, 0777); 

私は間違いを犯していますか、問題がサーバ設定で横たわっている問題で、ことができるもの。もしそうなら何がPHPサーバーの設定を変更する

おかげ

+0

問題を教えてください。エラーメッセージ? – Alp

+0

誰かが自分のユーザー名を../../../../../../../../../../../etc/passwdというように入力するかもしれないことに気付いていますか? – GordonM

+0

***あなたには何のエラーメッセージがありますか? php.iniの 'display_errors'設定を有効にしましたか?*** –

答えて

1

を行うべきである私は、次のことをお勧め:あなたはキーとして「名前」を使用して$ _POSTからデータを取得している

  1. チェック。

  2. 使用「/」の代わりに「\」のファイルパスで

  3. は、現在の作業ディレクトリにディレクトリを作成する権限を持って確認してください(あなたが持っているかもしれないが、ウェブサーバのですか?)

+1

ファイル名を作成する前に入力を消毒することをお勧めします –

+2

私のユーザ名は"/etc/passwd " –

+0

何がエラーであったかを指摘してくれてありがとう – 125369

1

ユーザー名から他の文字を削除し、唯一のAZをキープ、0-9、-_

をあなたは str_replace(配列( "/"、 "%")することで、これらを削除することができ、配列()、$ _ POST [ 'name'])

関連する問題