こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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);を試すと正常に値が表示されます。全く意味不明
なのですが何かセキュリティ上の問題などが原因なのでしょうか?

投稿日時 - 2008-07-31 03:27:39

QNo.4216907

困ってます

このQ&Aは役に立ちましたか?

16人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

$up_img = $_FILES['userfile']['name'];
$_POST['up_img'] = $up_img;

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

投稿日時 - 2008-07-31 08:54:03

お礼

お返事ありがとうございます。

>$_POST['up_img']が未定義なら問題はないですが変数を2回も入れ直すのは意味がないというか無駄ではないでしょうか

確かにいま考えると
$_POST['up_img'] = $_FILES['userfile']['name'];
で済みますね。^^;

postについての理由ですが通常でpostされなかった事を初めて知り
どうすればできるのかちょっとした興味で試してみました。

投稿日時 - 2008-07-31 10:11:47

ANo.1

がると申します。
…とりあえず
http://www.php.net/manual/ja/features.file-upload.php
あたりを熟読してください。

これは、単純に「PHPというものがそのように設計/実装されているから」です。

投稿日時 - 2008-07-31 05:16:31

お礼

お返事ありがとうございます。

>これは、単純に「PHPというものがそのように設計/実装されているから」です。

これを基にマニュアルを確認し思ったのですが単純に

$up_img = $_FILES['userfile']['name'];

と定義し

$_POST['up_img'] = $up_img;

と値を入れてやれば問題ないという解釈でいいのでしょうか?

投稿日時 - 2008-07-31 06:21:27