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

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

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

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

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

解決済

1回答

1552閲覧

$_FILESのエラー【Undefined index】

pikumin777

総合スコア13

PHP

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

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

0グッド

0クリップ

投稿2019/09/22 20:42

会員登録画面で以下のようにコードを記入した時、

Notice: Undefined index: image in /Applications/MAMP/htdocs/post/join/index.php on line 18

と表示されます。

input要素の「name」属性には"image"を指定しますし、なぜこのようなエラーが起きるのでしょうか?

また、対処法も教えていただきたいです。

PHP

1<?php 2session_start(); 3 4if(!empty($_POST)) { 5 //エラー項目の確認 6 if($_POST["name"] === "") { 7 $error["name"] = "blank"; 8 } 9 if($_POST["email"] === "") { 10 $error["email"] = "blank"; 11 } 12 if(strlen($_POST["password"]) < 4) { 13 $error["password"] = "length"; 14 } 15 if($_POST["password"] === "") { 16 $error["password"] = "blank"; 17 } 18 $file = $_FILES["image"]; 19 if(!empty($file["name"])) { 20 $ext = substr($file["name"], -3); 21 if ($ext != "jpg" && $ext != "gif") { 22 $error["image"] = "type"; 23 } 24 } 25 26 if(empty($error)) { 27 //画像をアップロードする 28 $image = date("YmdHis").$_file["name"]; 29 move_uploaded_file($file["tmp_name"],"../member_picture/".$image); 30 $_SESSION["join"] = $_POST; 31 $_SESSION["join"]["image"] = $image; 32 header("Location: check.php"); 33 exit(); 34 } 35} 36?> 37<p>次のフォームに必要事項をご記入ください。</p> 38<form action="" method="post" enctype="multipart/form-date"> 39 <dl> 40 <dt>ニックネーム<span class="required">(必須)</span></dt> 41 <dd> 42 <input type="text" name="name" size="35" maxlength="255" value="<?php echo htmlspecialchars(filter_input(INPUT_POST,"name"), ENT_QUOTES); ?>"> 43 <?php if(isset($error["name"]) && $error["name"] ==="blank"): ?> 44 <p class="error">*ニックネームを入力してください</p> 45 <?php endif; ?> 46 </dd> 47 <dt>メールアドレス<span class="required">必須</span></dt> 48 <dd> 49 <input type="text" name="email" size="35" maxlength="255" value="<?php echo htmlspecialchars(filter_input(INPUT_POST,"email"), ENT_QUOTES); ?>"> 50 <?php if(isset($error["email"]) && $error["email"] === "blank"): ?> 51 <p class="error">*メールアドレスを入力してください</p> 52 <?php endif; ?> 53 </dd> 54 <dt>パスワード<span class="required">必須</span></dt> 55 <dd> 56 <input type="password" name="password" size="10" mexlength="20" value="<?php echo htmlspecialchars(filter_input(INPUT_POST,"password"), ENT_QUOTES); ?>"> 57 <?php if(isset($error["password"]) && $error["password"] === "blank"): ?> 58 <p class="error">*パスワードを入力してください</p> 59 <?php endif; ?> 60 <?php if(isset($error["password"]) && $error["password"] === "length"): ?> 61 <p class="error">*パスワードは4文字以上で入力してください</p> 62 <?php endif; ?> 63 </dd> 64 <dt>写真など</dt> 65 <dd> 66 <input type="file" name="image" size="35"> 67 <?php if(isset($error["image"]) && $error["image"] === "type"): ?> 68 <p class="error">*写真などは「.gif」または「.jpg」の画像を指定してください</p> 69 <?php endif; ?> 70 <?php if(!empty($error)): ?> 71 <p class="error">*恐れいりますが、画像を改めて指定してください</p> 72 <?php endif; ?> 73 </dd> 74 </dl> 75 <div><input type="submit" value="入力内容を確認する"></div> 76</form> 77

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

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

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

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

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

guest

回答1

0

ベストアンサー

enctype="multipart/form-date"

enctype="multipart/form-data"

です。

投稿2019/09/22 21:11

shun-K

総合スコア508

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

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

pikumin777

2019/09/22 21:36

shun-K様、コメントありがとうございます! 無事、問題は解決しました。 スペルミスには気をつけます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問