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

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

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

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

解決済

PHP お問い合わせフォーム エラー

mgrates
mgrates

総合スコア17

PHP

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

2回答

0評価

0クリップ

347閲覧

投稿2022/01/25 06:36

前提・実現したいこと

お問い合わせフォームを作っていますが、確認画面から完了画面(自分のメールアドレスにも内容を送信)まででエラーが発生してしまいます。

PHP初心者でコード規則がわかなずエラーの原因がわかりません。(ex.line16)
$name = $_POST['name'];

発生している問題・エラーメッセージ

Notice: Undefined index: name in /opt/lampp/htdocs/project/pf/done.php on line 16 Notice: Undefined index: email in /opt/lampp/htdocs/project/pf/done.php on line 18 Notice: Undefined index: contact_body in /opt/lampp/htdocs/project/pf/done.php on line 19 お名前が入力されていません。 メールアドレスが入力されていません。 お問合せ内容が入力されていません。

該当のソースコード

done.php

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>メール送信完了|メール送信フォーム</title> </head> <body> <?php /******************************* データの受け取り *******************************/ $name = $_POST['name']; //お名前 $email = $_POST["email"]; //メールアドレス $contact_body = $_POST["contact_body"]; //お問合せ内容 //危険な文字列を入力された場合にそのまま利用しない対策 $name = htmlspecialchars($name, ENT_QUOTES); $email = htmlspecialchars($email, ENT_QUOTES); $contact_body = htmlspecialchars($contact_body, ENT_QUOTES); /******************************* 未入力チェック *******************************/ $errmsg = ''; //エラーメッセージを空にしておく if ($name == '') { $errmsg = $errmsg.'<p>お名前が入力されていません。</p>'; } if ($email == '') { $errmsg = $errmsg.'<p>メールアドレスが入力されていません。</p>'; } if ($contact_body == '') { $errmsg = $errmsg.'<p>お問合せ内容が入力されていません。</p>'; } /******************************* メール送信の実行 *******************************/ if ($errmsg != '') { //エラーメッセージが空ではない場合には、[前のページへ戻る]ボタンを表示する echo $errmsg; //[前のページへ戻る]ボタンを表示する echo '<form method="post" action="index.php">'; echo '<input type="hidden" name="namae" value="'.$name.'">'; echo '<input type="hidden" name="mailaddress" value="'.$email.'">'; echo '<input type="hidden" name="naiyou" value="'.$contact_body.'">'; echo '<input type="submit" name="backbtn" value="前のページへ戻る">'; echo '</form>'; } else { //エラーメッセージが空の場合には、メール送信処理を実行する //メール本文の作成 $honbun = ''; $honbun .= "メールフォームよりお問い合わせがありました。\n\n"; $honbun .= "【お名前】\n"; $honbun .= $name."\n\n"; $honbun .= "【メールアドレス】\n"; $honbun .= $email."\n\n"; $honbun .= "【お問い合わせ内容】\n"; $honbun .= $contact_body."\n\n"; //エンコード処理 mb_language("Japanese"); mb_internal_encoding("UTF-8"); //メールの作成 $mail_to = "mgraces2042@gmail.com"; //送信先メールアドレス $mail_subject = "メールフォームよりお問い合わせ"; //メールの件名 $mail_body = $honbun; //メールの本文 $mail_header = "from:".$mailaddress; //送信元として表示されるメールアドレス //メール送信処理 $mailsousin = mb_send_mail($mail_to, $mail_subject, $mail_body, $mail_header); //メール送信結果 if($mailsousin == true) { echo '<p>お問い合わせメールを送信しました。</p>'; } else { echo '<p>メール送信でエラーが発生しました。</p>'; } } ?> <!-- <h2>メール送信完了</h2> <p class="message"> お問い合わせありがとうございます。1営業日以内にご返信させていただきます。<br> 自動返信メールをお送りしておりますのでご確認ください。<br> 1時間たっても届かない場合はお手数ですがこちらからご連絡ください。 </p> --> </body> </html>

confirm.php

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>sample</title> </head> <body> <h2>問合せ内容</h2> <form action="done.php" method="post"> <table border="1"> <tr> <td>名前</td> <td type="name" name="name"><?php echo $_POST['name'];?></td> </tr> <tr> <td>メールアドレス</td> <td type="email" name="email"><?php echo $_POST["email"]; ?></td> </tr> <tr> <td>問い合わせ内容</td> <td type="contact_body" name="contact_body"><?php echo $_POST["contact_body"]; ?></td> </tr> </table> <input type="submit" name="submit" value="送信" /> </form> </body> </html> <!-- <?php //直リンクされた場合index.phpにリダイレクト if($_SERVER["REQUEST_METHOD"] != "POST"){ header("Location: /pf.html"); exit(); } //各項目を内容を取得 $name = $_POST['name']; $email = $_POST['email']; $contact_body = $_POST['contact_body']; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>確認画面</title> <style type="text/css"> body { background-color: #f9fff2; } .input-area { margin-bottom: 20px; } p { font-weight: bold; font-size: 20px; } .btn-border { display: inline-block; max-width: 180px; text-align: left; border: 2px solid #9ec34b; font-size: 15px; color: #9ec34b; text-decoration: none; font-weight: bold; padding: 8px 16px; border-radius: 4px; transition: .4s; } .btn-border:hover { background-color: #9ec34b; border-color: #cbe585; color: #FFF; } </style> </head> <body> <form action="complete.php" method="post"> <h2>お問い合わせ内容確認</h2> <div class="input-area"> <p>名前</p> <?php echo htmlspecialchars($name,ENT_QUOTES,'UTF-8');?> </div> <div class="input-area"> <p>メール</p> <?php echo htmlspecialchars($email,ENT_QUOTES,'UTF-8');?> </div> <div class="input-area"> <p>お問い合わせ内容</p> <?php echo nl2br(htmlspecialchars($contact_body,ENT_QUOTES,'UTF-8'));?> </div> <div class="input-area"> <input type='button' onclick='history.back()' value='戻る' class="btn-border"> <input type="submit" name="submit" value="送信" class="btn-border"> <input type="hidden" name="name" value="<?php echo $name;?>"> <input type="hidden" name="email" value="<?php echo $email;?>"> <input type="hidden" name="contact_body" value="<?php echo $contact_body;?>"> </div> </form> </body> </html> -->

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

PHP

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。