質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

5回答

7080閲覧

エラー、Notice: Undefined index: を解消したい

xiaomu

総合スコア17

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/09/11 01:11

エラー、Notice: Undefined index: を解消したいです。

<HTML> <HEAD> <TITLE>ファイルのアップロード</TITLE> </HEAD> <BODY> <FORM ACTION ="upload_test2.php" METHOD="post" ENCTYPE="multipart/form-data"> <INPUT NAME = "myf" TYPE="file"> <INPUT TYPE = "submit" VALUE="送信"> </FORM> </BODY> </HTML>

このHTMLファイルを開き、ファイルをupload_test2.phpに送信します。
その後以下のphpを実行すると

<?php $file=$_FILES['myf']; print "アップロードされました<BR>"; move_uploaded_file($file['tmp_name'],'./data/'.$file['name']); print "ファイルサイズは".$file['size']."バイトです<BR>"; print "ファイルの種類は".$file['type']."です"; ?>

以下のような実行結果になってしまいます。エラーが発生し、さらに、$file[]の値が表示されません。

Notice: Undefined index: myf in C:\xampp\htdocs\upload_test2.php on line 2
アップロードされました
ファイルサイズはバイトです
ファイルの種類はです

どのように解決すればいいのでしょうか?
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/09/11 04:26

プログラムコード(およびエラーメッセージ)は質問内容としては最も重要な部分であるため、見やすくしていただけると助かります。<code>ボタン押下→「コード」部分にコードを貼り付け→「ここに言語を入力」に対象言語名記入(エラーメッセージの場合は不要)の手順で「コードハイライト化」してください。(質問編集画面ではリアルタイムでプレビューが表示されるので見ながら調整してください)
guest

回答5

0

その後以下のphpを実行すると

フォームから送信されて実行されるものなので別個に実行しては意味がありません。

Notice: Undefined index は配列に指定したkeyが存在しないときに起きるものです。
$_FILESなどリクエストを受けとるスーパーグローバル変数はフォームからリクエストを送信された情報が格納されます。
フォーム自体、きちんとWebサーバー(ローカルでも同)で実行されましたか?

またprintで状況を出力するのは結構なのですが、それぞれアップロード関数の成功をもって出力するようにしないと、アップロードできなかったときに分からなくなります。
入力内容の検証(バリデーションと呼ばれるもの)も適宜行ってくださいね。

投稿2018/09/11 01:26

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

本題ではありませんが、なにか書籍やWebサイトを参考にされているのであれば、それが古すぎるのもトラブルの一因ではないかと思います。

いまどきのHTMLはタグをすべて小文字で書くものですので、<HTML>となっている時点でかなり古いものであることが予想されます。

投稿2018/09/11 01:17

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

最低でも確認しなくちゃいけないことがいくつかあります

PHP

1<form method="post" enctype="multipart/form-data"> 2<input name="myf" type="file" required> 3<input type="submit" value="send"> 4</form> 5<?php 6$file=isset($_FILES['myf'])?$_FILES['myf']:null; 7if(is_null($file)){ 8 print "ファイルないよ"; 9 exit; 10} 11if($file["error"]!==0){ 12 print "転送失敗"; 13 exit; 14}; 15if(@move_uploaded_file($file['tmp_name'],'./temp/'.$file['name'])){ 16print "アップロードされたよ<br>\n"; 17print "ファイルサイズ:".$file['size']."<br>\n"; 18print "ファイルの種類:".$file['type']."<br>\n"; 19}else{ 20 print "アップロード失敗"; 21 exit; 22};

投稿2018/09/12 01:36

yambejp

総合スコア114779

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

以下のサンプルを動かしてみて参考にされてはいかがでしょうか?
ファイルアップロードの処理

投稿2018/09/11 01:17

taka2063

総合スコア307

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

issetできちんと聞いてあげることが大前提ですが
php.iniで
error_reporting = E_ALL & ~E_NOTICE
とするととりあえずエラーは出なくはなりますが

投稿2018/09/14 11:05

ms5025

総合スコア292

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問