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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

Q&A

解決済

1回答

439閲覧

PHP 問い合わせフォーム メールアドレスのみの入力フォームをPHPで実装したい

ema-material

総合スコア29

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

0グッド

0クリップ

投稿2023/05/01 12:12

表題のとおりです。確認画面で止まってしまい、送信されません。

前提

html cssでメールフォームのみの問い合わせフォームを実装し、
PHPを記載して送信しようとしています。
メールのみなので簡単かと思ったのですが、つまづいてしまいました。
どうぞよろしくおねがいします。

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

確認画面で止まってしまい、送信ボタンが押下されず、送信されない。

index.html

html

1<form method="post" action="form_enteletry.php"> 2 <dl class="form-area"> 3 4 5<!-- メールアドレス記入欄 --> 6 <dt class="tryfotmtext"><label for="mailInput">受付用QRコードを送信するメールアドレスを入力してください</label></dt> 7 8 <dd class="mailAdd"> 9 <input id="mailInput" type="email" name="email" placeholder="mail@mailaddress.co.jp" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" oncopy="return false" onpaste="return false" style="ime-mode:disabled"></dd> 10<!-- メールアドレス記入欄 --> 11 12 </dl> 13 <!-- 8送信ボタン --> 14 <button type="submit" class="btn11"><span>確認する</span></button> 15 <input type="hidden" name="mode" value="post"> 16<!-- 8送信ボタン --> 17 18</form>

verification.tmpl

html

1 <dl class="verification-area"> 2 3 4<!-- メールアドレス記入欄 --> 5 <dt class="tryfotmtext_verification">入力されたメールアドレス</dt> 6 7 <dd class="tryformtext_verification_mailaddress">!email!</dd> 8<!-- メールアドレス記入欄 --> 9 10 </dl> 11 <!-- 8送信ボタン --> 12 <ul class="btn_wrapper"> 13 <li> 14 <a href="javascript:history.back();" class="back">修正する</a></li> 15 <li><button type="submit" class="btn11">送信する</button> 16 <input type="hidden" name="mode" value="send"> 17 <input type="hidden" name="email" value="!email!"></li> 18 </ul>

error.tmpl

html

1<p class="error">!error!</p> 2 <a href="javascript:history.back();" class="back">修正する</a>

done.tmpl

html

1<p class="done">送信完了</p> 2 <a href="../index.html" class="backhome"></a>

form_enteletry.php

PHP

1<?php 2 3#送信先アドレス 4$mailto = "⚫︎"; 5#送信後画面からの戻り先 6$toppage = "index.html"; 7 8#入力情報の受け取りと加工 9 10#$document = implode(' ',$_POST["document"]); 11#var_dump($document); 12$email = $_POST["email"]; 13 14#無効化 15$email = htmlentities($email,ENT_QUOTES, "UTF-8"); 16 17#改行処理 18$email = str_replace("\r\n","", $email); 19 20#入力チェック 21if (!preg_match("/\w+@\w+/",$email)){ error("メールアドレスが未入力であるか、不正です");} 22 23#分岐チェック 24if ($_POST["mode"] == "post"){ conf_form();} 25else if ($_POST["mode"] == "send"){ send_form();} 26#conf_form(); 27 28#確認画面 29function conf_form(){ 30 global $email; 31 32#テンプレート読み込み 33 $conf = fopen("tmpl/verification.tmpl","r") or die; 34 $size = filesize("tmpl/verification.tmpl"); 35 $data = fread($conf, $size); 36 fclose($conf); 37 38#文字置き換え 39 $data = str_replace("!email!", $email, $data); 40 41#表示 42 echo $data; 43 exit; 44} 45 46#エラー画面 47function error($msg){ 48 $error = fopen("tmpl/error.tmpl","r"); 49 $size = filesize("tmpl/error.tmpl"); 50 $data = fread($error , $size); 51 fclose($error); 52 53#文字置き換え 54 $data = str_replace("!error!", $msg, $data); 55 56 57#表示 58 echo $data; 59 exit; 60} 61 62#CSV書き込み 63function send_form(){ 64 global $email; 65 66 $user_input = array($email); 67 mb_convert_variables("SJIS","UTF-8",$user_input); 68 $fh =fopen("user.csv","a"); 69 flock($fh,LOCK_EX); 70 fputcsv($fh, $user_input); 71 flock($fh,LOCK_UN); 72 fclose($fh); 73 74#メール送信 75 send_mail(); 76 77#テンプレート読み込み 78 $conf = fopen("tmpl/done.tmpl","r") or die; 79 $size = filesize("tmpl/done.tmpl"); 80 $date = fread($conf, $size); 81 fclose($conf); 82#文字置き換え 83 global $toppage; 84 $date = str_replace("!top!",$toppage, $date); 85#表示 86 echo $date; 87 exit; 88} 89 90#メール送信 91function send_mail(){ 92 #時間とIPアドレスの取得 93 $date = date("Y/m/d H:i:s"); 94 $ip = getenv("REMOTE_ADDR"); 95 96 global $email; 97 98 99#本文 100 $body = <<< _FORM_ 101 【entele】お問合せありがとうございました。 102 103 日時 : $date 104 IP情報 : $ip 105 メールアドレス : $email 106 107_FORM_; 108 109#管理者(4行目のメールアドレス)に送信 110 global $mailto; 111 mb_language("japanese"); 112 mb_internal_encoding("UTF-8"); 113 $name_sendonly = "entele「試してみる」お問合せフォーム"; 114 $name_sendonly = mb_encode_mimeheader($name_sendonly); 115 $mail_sendonly ="hirokoyamauchi@gmail.com"; 116 $mailform = "From:".$name_sendonly."<".$mail_sendonly.">"; 117 $subject = "entele「試してみる」お問合せフォームに連絡がありました"; 118 $result = mb_send_mail($mailto,$subject,$body,$mailform); 119#ユーザーに自動返信メールを送信 120 global $mail; 121 mb_language("japanese"); 122 mb_internal_encoding("UTF-8"); 123 $name_sendonly = "entele「試してみる」お問合せフォーム"; 124 $name_sendonly = mb_encode_mimeheader($name_sendonly); 125 $mail_sendonly ="info@fiu.co.jp"; 126 $mailform = "From:".$name_sendonly."<".$mail_sendonly.">"; 127 $subject = "お問合せありがとうございました。"; 128 $result = mb_send_mail($email,$subject,$body,$mailform); 129 130} 131

試したこと

PHPの書き換え

補足情報 Dreamweaver Atom

ここにより詳細な情報を記載してください。

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

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

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

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

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

AbeTakashi

2023/05/01 15:55

説明がざっくりしてて状況よく分からないのですが、少なくともverification.tmplに<form>〜</form>タグがないので、次の画面に遷移しないんだろうなぁ、とは思いました。
ema-material

2023/05/01 18:02

上記回答ありがとうございます。おっしゃるとおり単純な記載もれでした。ご指摘ありがとうございます。無事送信完了まで持ち込めました。
guest

回答1

0

自己解決

自己解決しましたのでおしらせします。

投稿2023/05/02 00:35

ema-material

総合スコア29

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問