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

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

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

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

1回答

245閲覧

PHPの構文エラー、、?

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2018/09/15 20:23

初めて、PHPを書きました。
XAMPPを使いブラウザで表示しましたが、以下のスクショになってしまいます。
イメージ説明

何が原因でしょうか?
検索の仕方も分からず、非常に困っています。
どなたかお助けください。

以下、コードになります。

PHP

1<?php 2session_start(); 3if (!empty($_POST)) { 4 // エラー項目の確認 5 if ($_POST['name'] == '') { 6 $error['name'] = 'blank'; 7 } 8 if ($_POST['email'] == '') { 9 $error['email'] = 'blank'; 10 } 11 if (strlen($_POST['password']) < 4) { 12 $error['password'] = 'length'; 13 } 14 if ($_POST['password'] == '') { 15 $error['password'] = 'blank'; 16 } 17 $fileName = $_FILES['image']['name']; 18 if (!empty($fileName)) { 19 $ext = substr($fileName, -3); 20 if ($ext != 'jpg' && $ext != 'gif') { 21 $error['image'] = 'type'; 22 } 23 } 24 if (empty($error)) { 25 // 画像をアップロードする 26 $image = date('YmdHis') . $_FILES['image']['name']; 27 move_uploaded_file($_FILES['image']['tmp_name'], '../member_picture/' .$image); 28 $_SESSION['join'] = $_POST; 29 $_SESSION['join']['image'] = $image; 30 header('Location: check.php'); 31 exit(); 32 } 33} 34?> 35<!DOCTYPE html> 36<html lang="ja"> 37<head> 38 <meta charset="UTF-8"> 39 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 40 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 41 <title>ひとこと掲示板</title> 42 43 <link rel="stylesheet" href="../style.css" /> 44</head> 45 46<body> 47<div id="wrap"> 48 <div id="head"> 49 <h1>会員登録</h1> 50 </div> 51 <div id="content"> 52 <p>次のフォームに必要事項をご記入ください。</p> 53 <form action="" method="post" enctype="multipart/form-data"> 54 <dl> 55 <dt>ニックネーム<span class="required">必須</span></dt> 56 <dd><input type="text" name="name" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['name'], ENT_QUOTES); ?>"/> 57 <?php if ($error['name'] == 'blank'): ?> 58 <p class="error">* ニックネームを入力してください</p> 59 <?php endif; ?> 60 </dd> 61 <dt>メールアドレス<span class="required">必須</span></dt> 62 <dd> 63 <input type="text" name="email" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['email'], ENT_QUOTES); ?>"/> 64 <?php if ($error['email'] == 'blank'): ?> 65 <p class="error">* メールアドレスを入力してください</p> 66 <?php endif; ?> 67 </dd> 68 <dt>パスワード<span class="required">必須</span></dt> 69 <dd> 70 <input type="password" name="password" size="10" maxlength="20" value="<?php echo htmlspecialchars($_POST['password'], ENT_QUOTES); ?>"/> 71 <?php if ($error['password'] == 'blank'): ?> 72 <p class="error">* パスワードを入力してください</p> 73 <?php endif; ?> 74 <?php if ($error['password'] == 'length'): ?> 75 <p class="error">* パスワードは4文字以上で入力してください</p> 76 <?php endif; ?> 77 </dd> 78 <dt>写真など</dt> 79 <dd><input type="file" name="image" size="35" /> 80 <?php if ($error['image'] == 'type'): ?> 81 <p class="error">* 写真などは「.gif」または「.jpg」の画像を指定してください 82 </p> 83 <?php endif; ?> 84 <?php if (!empty($error)): ?> 85 <p class="error">* 恐れ入りますが、画像を改めて指定してください</p> 86 <?php endif; ?> 87 </dd> 88 </dl> 89 <div><input type="submit" value="入力内容を確認する" /></div> 90 </form> 91 </div> 92 93</div> 94</body> 95</html>

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

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

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

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

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

guest

回答1

0

ベストアンサー

配列に指定したキー(index)がない場合のエラーです。
コードはざっとしか見ていませが$errorはpostされたときしか値を格納されていません。
ページアクセス時には未定義であるため、当然その配列のキーも未定義です。
isset()やarray_key_exist()などで配列やキーの存在確認を行った上で変数、キーを利用すると良いです。

追記。
今回の「検索の仕方」ですが、今回はエラーメッセージ「Undefined index」で検索すると良いかと。
私の回答のような記事は出てくると思います。
※意味だけを知りたければGoogle翻訳にかけるのでも充分です

投稿2018/09/15 21:30

編集2018/09/15 22:11
m.ts10806

総合スコア80765

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問