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

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

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

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PHP

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

XAMPP

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

Q&A

解決済

2回答

1434閲覧

このコードでなんでエラーが出るのか分かりません。教えて頂けませんでしょうか。

potet

総合スコア17

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PHP

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

XAMPP

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

0グッド

0クリップ

投稿2020/05/23 11:08

<!doctype html> <html lang ="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel ="stylesheet" href="css/style.css"> </head> <body> <?php session_start(); if(!empty($_POST)){ if($_POST['name']==''){ $error['name']='blank'; } if($_POST['email']==''){ $error['email']='blank'; } if(strlen($_POST['password'])<4){ $error['password']='length'; } if($_POST['password']==''){ $error['password']='blank'; } if(empty($error)){ $_SESSION['join']=$_POST; header('Location:check.php'); exit(); } } ?> <p>次のフォームに必要事項をご記入ください。</p> <form action="" method="post" enctype="multipart/form-data"> <dl> <dt>ニックネーム<span class="required">必須</span></dt> <dd><input type="text" name="name" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['name'],ENT_QUOTES);?>"/> <?php if($error['name']=='blank'):?> <p class="error">*ニックネームを入力してください。</p> <?php endif; ?> </dd> <dt>メールアドレス<span class="required">必須</span></dt> <dd><input type="text" name="email" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['email'],ENT_QUOTES);?>"/> <?php if($error['email']=='blank'):?> <p class="error">*メールアドレスを入力してください。</p> <?php endif;?> </dd> <dt>パスワード<span class="required">必須</span></dt> <dd><input type="password" name="password" size="10" maxlength="20" value="<?php echo htmlspecialchars($_POST['password'],ENT_QUOTES);?>"/> <?php if($error['password']=='blank'):?> <p class="error">*パスワードを入力してください。</p> <?php endif;?> <?php if($error['password']=='length'):?> <p class="error">*パスワードは4文字以上で入力してください。</p> <?php endif;?> </dd> <dt>写真など</dt> <dd><input type=file name="image" size="35"/></dd> </dl> <div><input type="submit" value="入力内容を確認する"/></div> </form> </body>

イメージ説明

57行目から62行目、43行目から45行目(下記の部分)などを削除するとエラーが消えるのでここが原因だと思うのですが、なんでエラーになるのか分かりません。

<?php if($error['name']=='blank'):?> <p class="error">*ニックネームを入力してください。</p> <?php endif; ?>
<?php if($error['password']=='blank'):?> <p class="error">*パスワードを入力してください。</p> <?php endif;?> <?php if($error['password']=='length'):?> <p class="error">*パスワードは4文字以上で入力してください。</p> <?php endif;?>

イメージ説明

実行環境はwindows10でxamppを使ってます。

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

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

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

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

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

guest

回答2

0

自己解決

https://teratail.com/questions/65452
https://teratail.com/questions/69059
この記事を参考に57行目から62行目、43行目から45行目などを値が定義されている事をたしかめてから(!emptyやissetを使って値を確かめる)使うようにしたら解決しました。原因は値が定義されていないのに$error['name']や$_POST['name']などを使った事です。結果はこんな感じになりました。

<p>次のフォームに必要事項をご記入ください。</p> <form action="" method="post" enctype="multipart/form-data"> <dl> <dt>ニックネーム<span class="required">必須</span></dt> <dd><input type="text" name="name" size="35" maxlength="255" value="<?php if(!empty($_POST['name'])){echo htmlspecialchars($_POST['name'],ENT_QUOTES);}?>"/> <?php if(isset($error['name'])&&$error['name']=='blank'):?> <p class="error">*ニックネームを入力してください。</p> <?php endif; ?> </dd> <dt>メールアドレス<span class="required">必須</span></dt> <dd><input type="text" name="email" size="35" maxlength="255" value="<?php if(!empty($_POST['email'])){ echo htmlspecialchars($_POST['email'],ENT_QUOTES);}?>"/> <?php if(isset($error['email'])&&$error['email']=='blank'):?> <p class="error">*メールアドレスを入力してください。</p> <?php endif;?> </dd> <dt>パスワード<span class="required">必須</span></dt> <dd><input type="password" name="password" size="10" maxlength="20" value="<?php if(!empty($_POST['password'])){ echo htmlspecialchars($_POST['password'],ENT_QUOTES);}?>"/> <?php if(isset($error['password'])&&$error['password']=='blank'):?> <p class="error">*パスワードを入力してください。</p> <?php endif;?> <?php if(isset($error['password'])&&$error['password']=='length'):?> <p class="error">*パスワードは4文字以上で入力してください。</p> <?php endif;?> </dd>

投稿2020/05/23 15:04

potet

総合スコア17

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

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

0

エラー文を読んで、それを検索してみましょう。

【エラーメッセージの読み方と対処, 検索や質問の原則 - Qiita】
https://qiita.com/cannorin/items/eb062aae88bfe2ad6fe5

投稿2020/05/23 11:24

kei344

総合スコア69398

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

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

potet

2020/05/23 11:30

ご回答ありがとうございます。 参考にさせて頂きますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問