• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP 入力フォームで入力された情報が、折り返しメ)

PHP入力フォームで入力された情報が折り返しメールに表示されない問題の解決方法

このQ&Aのポイント
  • 入力フォームで入力された情報が折り返しメールに表示されない問題が発生しています。表示させたい情報を$mail->Bodyに追加したり、セキュリティ対策を行っていますがうまくいきません。
  • 問題の解決方法として、セッションから入力内容を取得し、メール本文に追加することで解決できる可能性があります。
  • また、セッションとトークンを使用してセキュリティ対策を行っている点も確認しましょう。詳しい解決方法については、詳しい方からの回答をお待ちください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

$mail->Body = "▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼\n"; $mail->Body = "【Web担当者の作り方】\n"; $mail->Body = "メール:〇〇@\n"; $mail->Body = "URL:https://www.web-officer.com/\n"; $mail->Body = "▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼\n"; これです。 $mail->Body =  これは「今までの物を消して代入」です。 結合したいなら、 $mail->Body .=  これは「今までの物に追加」です。 =の前にドットを付けます。 そんだけで治りますよ。 なので、最初の一回目だけ"="それ以降を".="でOKです。

hayosat
質問者

お礼

ありがとうございました。無事解決出来ました。感謝です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

メール本文の代入を $mail->Body = "お名前:".$name."\n". "下記の情報を受け取りました。\n内容を確認し、こちらから折り返し、ライン又はメールアドレスにてご案内させて頂きます。\n\n". "メールアドレス:".$email."\n". "▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼\n". "【Web担当者の作り方】\n". "メール:〇〇@\n". "URL:https://www.web-officer.com/\n". "▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼\n"; という感じに書き直してみて下さい。

hayosat
質問者

お礼

ありがとうございました。無事解決出来ました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPMailerを使ってのSTMPメール

    PHPMailerを使ってのSTMPメールの折り返し受信のコードを書いているのですが、付属画像のように「件名なし」の部分にタイトルを入れたいのですが、どうコードを書いたら良いでしょうか? 回答よろしくお願いいたします。 コードは以下になります。 // メール本体    $mail->setFrom('〇〇com', 'maru');  // 送信元メールアドレスと名前    $mail->addAddress($email,$name);  // 送信先メールアドレスと名前              $mail->Body    = "下記の情報を受け取りました。\n内容を確認し、こちらから折り返し、ライン又はメールアドレスにてご案内させて頂きます。\n\n";        $mail->Body    .= "お名前:".$name."\n";     $mail->Body    .= "フリガナ:".$furigana."\n";    $mail->Body    .= "メールアドレス:".$email."\n";    $mail->Body    .= "電話番号:".$tel."\n";

    • ベストアンサー
    • PHP
  • PHP入力フォームについて

    現在入力フォームを作っています。 流れとしてはDBに入っている会員情報をフォーム上に呼び出して(各inputにはDB内の会員の情報が表示される)各会員が自分の情報を編集できるというフォームです。 ここで質問なのですが、会員の人が自分の入力内容を変更した際に入力漏れがあるとフォーム画面に戻るのですがその際に入力した内容が表示されるのではなくDB内のデータが表示されてしまいます。 これをDB内のデータではなく入力した内容にしたいのですが、どうしたらよろしいでしょうか? ソースは下記になります。 form.php <?php DB呼び出し・・・ $_SESSION['name'] = $row['name']; ・・・ ?> <?php echo $_SESSION['err_name']; ?> <input type="text" name="name" value="<?php echo $_SESSION['name']; ?>" /> confirm.php <?php $name = htmlspecialchars($_REQUEST['name']); if(!strlen($name)) { $_SESSION['err_name'] = '氏名を入力してください。'; $errFlag = true; } else { unset($_SESSION['err_name']); } エラーの時はform.phpに戻る ?> <?php echo $name; ?> としています。 とても省略していますが、お分かりの方がいらっしゃいましたら教えていただけると助かります。

    • 締切済み
    • PHP
  • phpのシンプルなメールフォーム

    あるサイトにて、単一phpのメールフォームのソースをコピーし、使用としましたが、 設定したメールアドレスに、送信ボタンを押しましたが、 受信されません。  ・送信後、「メールを送信しました」と表示されます。  ・送信のあて先は、何も反応なし。  ・ソースの「●●@●●」はダミーです。 以下ソースです。原因がわかりますでしょうか。ご教授のほどよろしくお願いします。 ―――――――――――――――――――――――――――――――――――― <?php // 送信フラグ $send_flg = false; // エラーメッセージ $err_msg = array(); // 送信ボタンを押した後の処理 if ($_POST["post_flg"]) { // エラー if ($_POST["name"] == "") { $err_msg[] = "「お名前」は必須です"; } if ($_POST["email"] == "") { $err_msg[] = "「メールアドレス」は必須です"; } // エラーが無ければ送信 if (count($err_msg) == 0) { // 宛先 $mail_to = "●●@●●"; // 送信元アドレス $mail_from = "form@example.com"; // 件名 $mail_subject = "メールフォームから送信がありました"; // 本文 $mail_body = ""; $mail_body.= "■お名前\n".$_POST["name"]."\n\n"; $mail_body.= "■メールアドレス\n".$_POST["email"]."\n\n"; $mail_body.= "■コメント\n".$_POST["comment"]; // 送信処理 mb_language("Japanese"); mb_internal_encoding("UTF-8"); mb_send_mail($mail_to, $mail_subject, $mail_body, "From: <".$mail_from.">"); $send_flg = true; $_POST = array(); } } ?> <!DOCTYPE HTML> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>メールフォーム</title> </head> <body> <?php // 初期フォーム表示 if (!$send_flg) { ?> <h1>メールフォーム</h1> <?php // エラーメッセージがある場合 if (count($err_msg) > 0) { ?> <p style="color:red;"> <?php foreach ($err_msg as $val) { ?> ※<?php echo $val ?><br> <?php } ?> </p> <?php } ?> <form action="mail.php" method="post"> <p> お名前<br> <input type="text" cols="30" name="name" value="<?php echo $_POST["name"] ?>"><br> </p> <p> メールアドレス<br> <input type="text" cols="30" name="email" value="<?php echo $_POST["email"] ?>"><br> </p> <p> コメント<br> <textarea name="comment" cols="50" rows="10"><?php echo $_POST["comment"] ?></textarea><br> </p> <input type="submit" name="post_flg" value="送信する"><br> </form> <?php // メール送信後の表示 } else { ?> <br><br><br><br>メールを送信しました。<br> <?php } ?> </body> </html> ――――――――――――――――――――――――――――――――――――

    • ベストアンサー
    • PHP
  • 問い合わせフォームからPHPを使って、、、、、

    問い合わせフォームからPHPを使って指定のアドレスにメールを送ろうとしているのですが、届きません、、、、、、 原因が分かりません。助けていただけないでしょうか。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>お問い合わせページ</title> <link rel="stylesheet" href="styles.css"> </head> <body> <h1>お問い合わせページ</h1> <form action="send_email.php" method="post"> <label for="name">お名前:</label> <input type="text" id="name" name="name" required><br><br> <label for="email">メールアドレス:</label> <input type="email" id="email" name="email" required><br><br> <label for="message">お問い合わせ内容:</label><br> <textarea id="message" name="message" rows="4" cols="50" required></textarea><br><br> <input type="submit" value="送信"> </form> </body> </html> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 以下がPHPのプログラムです。 <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = $_POST["name"]; $email = $_POST["email"]; $message = $_POST["message"]; // 送信先のメールアドレス $to = "***@gmail.com"; // 件名 $subject = "お問い合わせがありました"; // 本文 $body = "お名前: $name\n"; $body .= "メールアドレス: $email\n\n"; $body .= "お問い合わせ内容:\n$message"; // メールを送信 mail($to, $subject, $body); // 送信後のリダイレクト header("Location: thank_you.html"); exit; } ?>

    • 締切済み
    • PHP
  • php入力画面から確認画面へ情報の受け渡しについて

    php 参考書を見て、入力フォームを作成しているのですが、入力画面から確認表示画面へ情報の受け渡しについて。コードは下に記載してます。 最初の入力画面ではmethod=postで送信した値を$name = $_POST['name'];に格納して次ページに値を渡すそうですが、 しかし最初の入力画面のコードに$name = $_POST['name'];と、もうひとつ、$name = $_SESSION['name'];でセッションに保存して、次ページに送るそうですが、 保存したSESSIONの値は次ページの確認表示画面から戻る際に値を保持する際に使うからだそうですが、値を次ページに送る役割が$_POSTやSESSIONにあるならば、SESSIONの記述のみで 次ページに送れると思うのですが、なぜこのコードの場合、$_POSTに値を格納する必要があるのでしょうか? 以下のような解釈で正しいでしょうか?? 「$_POSTは送られた値をフォームのvalue内にechoで出力するため、SESSIONはページから戻る場合に値を保持するため」 回答よろしくお願いいたします。 コード 入力初期画面 <?php session_start(); $errors = array(); if(isset($_POST['submit'])){ $name = $_POST['name']; if($name === ""){ $errors['name'] = "お名前が入力されていません。"; } if(count($errors) ===0){ $_SESSION['name'] = $name; header('Location:https:次ページへform2.php'); exit(); } } ?> <body> <form action="form1.php" method="post"> お名前 <input type="text" name="name" value="<?php if(isset($name)){echo $name;}?>"> <input type="submit" name="submit" value="確認画面へ"> </body> コード 確認表示画面 <?php session_start(); if(isset($_SESSION['name'])){ $name = $_SESSION['name']; } <body> <form action="form3.php" method="post"> お名前 <?php echo $name;?> <input type="submit" name="submit" value="送信する"> p><a href="form1.php?action=edit">入力画面へ戻る</a></p> </body>

    • ベストアンサー
    • PHP
  • フォームの入力チェック処理について

    確認ボタンを押しエラーがあればエラーメッセージを出力し なければ確認画面に移りたいと考えているのですがうまくいきません。 具体的には 1:入力フォームを表示 2-1:送信ボタンを押しエラーがあればメッセージ出力 2-2:送信ボタンを押しエラーがなければhiddenのname="mode" value="confirm"を渡す hiddenの値はswitchのcase文の値でconfirmで確認画面を表示します。 入力フォームを表示する段階にてhiddenを渡しているのが原因なのは わかるのですがエラーチェックを通す際の構文がわかりません・・・ また、hiddenを消すとエラーチェックが通るのですが例えば名前を入力 しメールを入力しない状態で 送信ボタンを押すとメールの入力を促すエラーメッセージが表示され名前の入力も消えてしまいます。 これは回避できるのでしょか? 見づらいかと思うのですが下記のソースです。宜しくお願い致します。 function input() { if(isset($_POST{"submit"})) { if (empty($_POST["name"])) { $error_message[] = "お名前を入力して下さい。"; } if (empty($_POST["email"])) { $error_message[] = "メールアドレスを入力して下さい。"; }if (count($error_message)) { echo "<p style=\"color: #ff0000\">入力内容にエラーがあります。</p>\n"; foreach ($error_message as $message) { echo "<p style=\"color: #ff0000\">" . "・$message" . "</p>\n"; } } } echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">\n"; echo "<table border=\"1\">\n"; echo "<tr>\n"; echo "<td>お名前</td>\n"; echo "<td><input type=\"text\" name=\"name\" size=\"20\"></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td>メールアドレス</td>\n"; echo "<td><input type=\"text\" name=\"email\" size=\"20\"></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td>メッセージ</td>\n"; echo "<td><textarea name=\"msg\" rows=\"5\" cols=\"40\"></textarea></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td colspan=\"2\"><input type=\"submit\" name=\"submit\" value=\"内容を確認\"></td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<input type=\"hidden\" name=\"mode\" value=\"confirm\" />\n"; echo "</form>\n"; }

    • 締切済み
    • PHP
  • PHPMailerのコードエラーが解決出来ません

    PHPMailerのコードエラーが解決出来ません。 入力フォームの最終段階で、PHPMailerのコードを使ったプログラムを書いているのですが、PHPMailerの知識が乏しいので、下記のサイトを参考に、書いてあったコードをコピペして、一部を改変して、書いたのですが、付属画像のようなエラーが出てしまいます。書いたコードは下にあります。 参考サイト https://web.hazu.jp/php-mailer/   このサイトからコードをコピペして少しメールや送信する情報等を改変したので、スペル間違いなど、ないと思うのですが、原因は何でしょうか。回答よろしくお願いいたします。全くわかりません。どうコード書いたら良いでしょうか? 回答よろしくお願いいたします。困っています先に進めません。 エラー名;Undefined type'PHPMailer/PHPMailer/PHPMailer' もう一つすぐ下にもエラーが出ます。 エラー名 Undefined type'PHPMailer/PHPMailer/Exception'   全コード一覧 <?php // PHPMailer クラスをネーム空間にインポート use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; // Composer の autoloader をロード require 'vendor/autoload.php'; // 入力内容の取得・変数に格納 $name = $_POST['name']; $furigana = $_POST['furigana']; // メール日本語対応 mb_language("japanese"); mb_internal_encoding("UTF-8"); // インスタンス生成 $mail = new PHPMailer(true); try { // SMTPの設定 $mail->isSMTP(); // SMTP 利用 $mail->Host = 'smtp.gmail.com'; // SMTP サーバー(Gmail の場合これ) $mail->SMTPAuth = true; // SMTP認証を有効にする $mail->Username = '○○@gmail.com'; // ユーザ名 (Gmail ならメールアドレス) $mail->Password = '△△'; // パスワード $mail->SMTPSecure = 'tls'; // 暗号化通信 (Gmail では使えます) $mail->Port = 587; // TCP ポート (TLS の場合 587) // メール本体 $mail->setFrom('○○@gmail.com', 'hazuki'); // 送信元メールアドレスと名前 $mail->addAddress($email, mb_encode_mimeheader($name, 'ISO-2022-JP')); // 送信先メールアドレスと名前 // 件名 $mail->Body = mb_convert_encoding($name, "JIS","UTF-8"); // 本文 $mail->Body = mb_convert_encoding($furigana, "JIS","UTF-8"); // 本文 // 送信 $mail->send(); echo '送信済み'; } catch (Exception $e) { echo "送信失敗: {$mail->ErrorInfo}"; } ?> <!DOCTYPE html> <html> <head> <meta charset ="utf-8"> </head> <body> </body> </html>

    • ベストアンサー
    • PHP
  • PHPによるメールフォームの作成について

    質問致します。文字制限があるので適所のみの抜粋ですがよろしくお願いします。 ある某PHPの参考書の付録CD-ROMにフォームメールのファイルが収められていたのですが、以下は入力フォームのformmail.html とエラー処理を表す部分のformmail.phpの抜粋です。 ./formmail.htmlにすべて入力してもエラーが出てしまいます。formmail.phpの必須項目のチェックおよびエラー時の処理のスクリプト文でおかしいところはあるでしょうか?市販されている参考書のCD-ROMをそのままコピーしたものなので動作しない事自体驚いています。どうぞよろしくお願い致します。 *formmail.html(簡潔に要約してあります) <FORM method="post" action="./formmail.php"> 名前(必須):<INPUT type="text" name="namae" size="20"> 電話番号:<INPUT type="text" name="tel" size="20"> E-mail(必須)<INPUT type="text" name="email" size="20"> </FORM> *formmail.php(必要箇所を抜粋) // 必須項目のチェック if (empty($namae)||empty($email)){ $err_message = "未入力の必須項目があります。<BR>\n"; } // エラー時の処理 if (!empty($err_message)){ echo "<HTML>\n"; echo "<HEAD>\n"; echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=EUC-JP\">\n"; echo "<TITLE>エラー</TITLE>\n"; echo "</HEAD>\n"; echo "<BODY>\n"; echo "<H1>エラー</H1>\n"; echo $err_message; echo "ブラウザの戻るボタンで戻り正しく入力して下さい\n"; echo "</BODY>\n"; echo "</HTML>"; exit; } // メール Body(本文)の設定 $mail_body = " 名前 - $namae 電話番号 - $tel E-mail - $email ";

    • 締切済み
    • PHP
  • phpのメール送信での質問になります

    メールとお問い合わせ内容は届くのですが、名前とアドレスが届かないので間違っている箇所を教えていただけるとありがたいです。 以下コードになります。 html <body> <main> <section> <h2>お問合せ内容の確認</h2> <form action="mailto.php" method="post"> <div class="contant-area"> <div class="label-container"> <label class="item intem-name">名前</label> <label class="item item-email">メールアドレス</label> <label class="item item-message">問い合わせ内容</label> </div> <div class="text"> <p class="item-post" name="name"><?php echo $_POST["name"]; ?></p> <p class="item-post" name="email"><?php echo $_POST["email"]; ?></p> <textarea class="item-post item-textarea" name="message"><?php echo $_POST["message"]; ?></textarea> </div> </div> <div class="button-area"> <input type="submit" value="送信"> </div> </form> </section> </main> </body> php <?php // フォームデータの取得 $name = $_POST[&#039;name&#039;]; $email = $_POST[&#039;email&#039;]; $message = $_POST[&#039;message&#039;]; // 送信先のメールアドレス $to = &#039;*****@gmail.com&#039;; // 件名 $subject = &#039;お問い合わせがありました&#039;; // メール本文 $body = "名前: $name\n"; $body .= "メールアドレス: $email\n"; $body .= "問い合わせ内容:\n$message"; // 送信元のメールアドレスと名前 $from = &#039;*****1690.xsrv.jp&#039;; $fromName = &#039;お問い合わせフォーム&#039;; // ヘッダー $headers = "From: $fromName <$from>"; // メール送信 $mailResult = mail($to, $subject, $body, $headers); ?>

    • ベストアンサー
    • PHP
  • メールフォームにある必須入力について

    こんばんは、今メールフォームを作っています。入力画面→確認画面→完了ページという流れで作ったのですがよく必須項目に何も入れなかったり、間違った文字をいれたりするとエラーページが表示されるようにしたいと思っているのですが、なかなか上手くできません。下記のスクリプトからだとどうやってやったら良いのでしょうか?よろしくおねがいします。 <?php if (! isset($_POST[btn1]) and! isset($_POST[btn2]) and! isset($_POST[cancel])) { //入力画面 $body = "必要な項目を入力して[OK]ボタンをクリックしてください。 <FORM action='$_SERVER[PHP_SELF]' method='POST'> 名前:<INPUT size='40' type='text' name='name'><BR><BR> フリガナ:<INPUT size='40' type='text' name='kana'><BR><BR> 電話番号:<INPUT size='40' type='text' name='tel'><BR><BR> E-Mailアドレス:<INPUT size='40' type='text' name='email'><BR><BR> お問い合わせ内容:<BR><TEXTAREA rows='6' cols='40' name='inquiry'></TEXTAREA><BR><BR> <INPUT type='submit' name='btn1' value=' OK '> </FORM>"; } elseif (isset($_POST[btn1])) { //入力画面で[OK]がクリックされたとき $name = htmlspecialchars(stripcslashes($_POST[name])); $kana = htmlspecialchars(stripcslashes($_POST[kana])); $tel = htmlspecialchars(stripcslashes($_POST[tel])); $email = htmlspecialchars(stripcslashes($_POST[email])); $inquiry = htmlspecialchars(stripcslashes($_POST[inquiry])); $body = "ご入力した内容でメッセージを送信します。<BR> よろしければ[送信]ボタンをクリックしてください。 <FORM action='$_SERVER[PHP_SELF]' method='POST'> 名前:$name<BR><BR> フリガナ:$kana<BR><BR> 電話番号:$tel<BR><BR> E-Mailアドレス:$email<BR><BR> お問い合わせ内容:<BR>" . nl2br($inquiry) . "<BR><BR> <INPUT type='submit' name='btn2' value=' 送信 '> <INPUT type='submit' name='cancel' value='キャンセル'> <INPUT type='hidden' name='name' value=\"$name\"> <INPUT type='hidden' name='kana' value=\"$kana\"> <INPUT type='hidden' name='tel' value=\"$tel\"> <INPUT type='hidden' name='email' value=\"$email\"> <INPUT type='hidden' name='inquiry' value=\"$inquiry\"> </FORM>"; } elseif (isset($_POST[btn2])) { //確認画面で[送信]がクリックされたとき //メールの送信処理を行う $name = stripcslashes($_POST[name]); $kana = stripcslashes($_POST[kana]); $tel = stripcslashes($_POST[tel]); $email = stripcslashes($_POST[email]); $inquiry = stripcslashes($_POST[inquiry]); $mailto = "kuma202000@yahoo.co.jp"; $mailsbj = "メールフォームからの送信"; $mailbody = "$name さんからのメールが届きました。\n" . "---------------------------------------------\n" . "名前:$name \n" . "フリガナ:$kana \n" . "電話番号:$tel \n" . "E-Mailアドレス:$email \n" . "メッセージ:$inquiry \n" . "---------------------------------------------\n"; mb_language("ja"); if (mb_send_mail($mailto, $mailsbj, $mailbody, $mailheader)) { $body = "メールを送信しました。ありがとうございました。<BR><BR>"; } else { $body = "メールの送信に失敗しました。<BR><BR>"; } $body .= "<A href='$_SERVER[PHP_SELF]'>戻る</A>"; } elseif (isset($_POST[cancel])) { //確認画面で[キャンセル]がクリックされたとき header("location: $_SERVER[PHP_SELF]"); exit(); } ?> <HTML> <HEAD> </HEAD> <BODY> <?=$body?> </BODY> </HTML>

    • 締切済み
    • PHP