• 締切済み

POSTされない

xamppにてローカル環境でやっているのですがなぜか type="file"だけPOSTされません。 ie6とfairefox3で試しましたが取得できませんでした。 調べてみたのですが同様の事例が見つからずわからかったのですが これは何が原因なのでしょうか? ---html--- <form action="index.php" method="post" enctype="multipart/form-data"> <input type="text" name="name" /> <input type="file" name="img" /> <input type="submit" name="send" value="送信する" /> </form> ---php--- if (isset($_POST['send'])) { echo '<pre>'; print_r($_POST); echo '</pre>'; } print_r($_FILES);を試すと正常に値が表示されます。全く意味不明 なのですが何かセキュリティ上の問題などが原因なのでしょうか?

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

$up_img = $_FILES['userfile']['name']; $_POST['up_img'] = $up_img; $_POST['up_img']が未定義なら問題はないですが変数を2回も入れ直すのは意味がないというか無駄ではないでしょうか $_POSTにしないといけない理由があるのでしょうか

noname#65793
質問者

お礼

お返事ありがとうございます。 >$_POST['up_img']が未定義なら問題はないですが変数を2回も入れ直すのは意味がないというか無駄ではないでしょうか 確かにいま考えると $_POST['up_img'] = $_FILES['userfile']['name']; で済みますね。^^; postについての理由ですが通常でpostされなかった事を初めて知り どうすればできるのかちょっとした興味で試してみました。

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 …とりあえず http://www.php.net/manual/ja/features.file-upload.php あたりを熟読してください。 これは、単純に「PHPというものがそのように設計/実装されているから」です。

noname#65793
質問者

お礼

お返事ありがとうございます。 >これは、単純に「PHPというものがそのように設計/実装されているから」です。 これを基にマニュアルを確認し思ったのですが単純に $up_img = $_FILES['userfile']['name']; と定義し $_POST['up_img'] = $up_img; と値を入れてやれば問題ないという解釈でいいのでしょうか?

関連するQ&A