$_FILESを使うと内部サーバエラー500になってしまう - PHPプロ!Q&A掲示板

4919

  • 0P

$_FILESを使うと内部サーバエラー500になってしまう

質問日時 / 2018年2月8日 19:58    回答数 / 2件

Questioner:  kawa_den  このエントリーをはてなブックマークに追加 

キーワード / $_FILES    IIS   

もともとレンタルサーバ(CentOS+Apache2.4.6+php5.4.16)で動作させていたphpプログラムをWindowsServer2012R2+IIS8.5+php5.6.32で動作させたく、構築をしたのですが、期待通り動きません。

phpのコードは以下の5行です。(EUC-JP)
  1. <?php
  2.   ini_set('display_errors'1);
  3.   error_reporting(E_ALL);
  4.   $upload_name =  $_FILES["upfile"]["name"];
  5. ?>

レンタルサーバ上においてブラウザからアクセスすると、
Notice: Undefined index: upfile in /virtual/xxx.xxx.xxx.xxx/home/TEST/test.php on line 4 
と表示されます。
しかし、構築したWindowsServerにアクセスすると、500 - 内部サーバエラーです
と表示されてしまいます。

 $_FILESがなければエラーにならないため、漠然とphpの設定なのでは、と思いますが、どこを変更すればいいか検討がつきません。
アドバイスいただけますとうれしいです。

よろしくお願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01shimix単にNoticeエラーが発生するような状態が「500エラー
 ┗A01-1kawa_denありがとうございました。 issetでもそうなのです

回答一覧

並び替え:

A01 満足
answerershimix [2月9日 09:37]

単にNoticeエラーが発生するような状態が「500エラー」になるというだけではないのですかね。$_FILES['upfile'] が存在していてもエラーになるなら問題でしょうけど、そうでないのであれば

if (!isset($_FILES['upfile'])) { die('illegal access'); }

として弾くのが正解だと思いますが・・・

この意見に回答する

ツリーへ TOPへ

A01-1
replyerkawa_den [2月14日 16:28]

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

issetでもそうなのですが、そもそもtmpにアクセス権がなく、ファイルのアップロードもできていなかったので、そのあたりもIISでエラーページの詳細を表示することで解消できました。(そのままでは全く進みませんでした)

一応:
IIS→エラーページ→機能設定の編集→エラーの詳細とカスタムエラーページに設定

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)