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

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

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

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

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

HTML

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

Q&A

解決済

3回答

1313閲覧

問い合わせフォームでリターンメールが届きません

chamaki40

総合スコア32

PHP

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

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

HTML

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

0グッド

1クリップ

投稿2021/04/15 07:24

知り合いが運営するお店の商品の紹介ページを作ってます

http://seven-7.info/test_2021/index.html

このページの一番下に問い合わせフォームがあり、項目を追加して送信後の確認ページ、完了ページまでphpファイルでつなげました。

以前、別のサイトで使ってたフォームを引用してphpのファイルと紐付けさせたのですが、完了までするものの、リターンメールも入力フォームに入れたメールアドレスにも届きません。

自分でコードは確認して問題ないと思ってますが、原因分かる方いたら今日、明日で教えてほしいです

納品を週末までにしたいためです

宜しくお願い致します。

【確認フォーム】

<?PHP //すべて受信 extract($_POST); //エラー用FLAG未記入の場合1にする $flag=0; //お問い合わせ項目 if(empty($origin)){ echo '<p><span>必須</span>お問い合わせ項目を選択してください。</p><br />'."\n"; $flag=1; } //名前チェック if(empty($name)){ echo '<p><span>必須</span>お名前を入力してください。</p><br />'."\n"; $flag=1; } //メールアドレスチェック if(empty($email1)){ echo '<p><span>必須</span>メールアドレスを入力してください。</p><br />'."\n"; $flag=1; } //メールアドレス確認用チェック if(empty($email2)){ echo '<p><span>必須</span>メールアドレス確認用を入力してください。</p><br />'."\n"; $flag=1; } //メールアドレスとメールアドレス確認用が同じかチェック elseif($email1!=$email2){ echo '<p><span>必須</span>メールアドレスが一致していません。</p><br />'."\n"; $flag=1; } //電話番号チェック if(empty($tel)){ echo '<p><span>必須</span>電話番号を入力してください。</p><br />'."\n"; $flag=1; } //お問い合わせ内容チェック if(empty($naiyou)){ echo '<p><span>必須</span>お問い合わせ内容を入力してください。</p><br />'."\n"; $flag=1; } //エラーの場合(上記で未記入の場合flagを1にしているので)すなわちflagが1の場合戻るボタンを作成 if($flag==1){ echo '<div class="button"><input type="button" onclick="self.history.back()" value="入力画面に戻る"/></div>'."\n"; } //必須が全て入力されていれば else{ echo ' <form action="complete.php" method="post"> <table id="inq"> <tr> <th>お問い合わせ項目</th> <td>'.$origin.'</td> </tr> <tr> <th>お名前</label></th> <td>'.$name.'</td> </tr> <tr> <th>メールアドレス</th> <td>'.$email1.'</td> </tr> <tr> <th>電話番号</th> <td>'.$tel.'</td> </tr> <tr> <th>お問い合わせ内容</th> <td>'.$naiyou.'</td> </tr> </table> </div> <br> <p class="center"><input class="button" type="submit" value="送 信"></p> <!--button_end --> <input type="hidden" value="'.$origin.'" name="origin" /> <input type="hidden" value="'.$name.'" name="name"/> <input type="hidden" value="'.$mail1.'" name="mail1"/> <input type="hidden" value="'.$tel.'" name="tel"/> <input type="hidden" value="'.$naiyou.'" name="naiyou"/> </form> <form action="index.html" method="post"> <ul class="form_button"> <li><input type="hidden" name="fix" value="<?php echo $fix ?>"></li> <li><input class="button" type="submit" value="修正する"></li> </ul> </form> '; } ?>

【完了フォーム】

<?PHP //すべて受信 extract($_POST); //宛先作成自分のメールアドレスを$toに入れる $to="rachael474@gmail.com"; //タイトル作成 $title="お問い合わせ"; //本文を作成 $all=" お問い合わせ項目:$origin 名前:$name メールアドレス:$email1 電話番号:$tel お問い合わせ内容 : $naiyou"; /* 文字化けした方は下記のmb_convert_encodingの2行をコメントアウトしてください それでも文字化けする方は[mb_convert_encoding]で検索して調べてください $title=mb_convert_encoding($title,"EUC-JP","UTF-8"); $all=mb_convert_encoding($all,"EUC-JP","UTF-8"); */ //メール送信 if(mb_send_mail($to,$title,$all,"FROM:$email1")){ echo "メールを送信いたしました。折り返し担当よりご連絡致します<br /> このたびはお問い合わせいただき、誠にありがとうございました。<br />"; } else{ echo"メールの送信に失敗しました。<br /> 再度お問い合わせいただくか、お電話にてご連絡ください。<br /><br />"; } //返信用作成 //タイトル作成 $title2="お問い合わせありがとうございます。"; //本文を作成 $all2="このメールは自動送信です。 このたびはお問い合わせいただき、誠にありがとうございます。 今一度ご入力内容をご確認いただきますようよろしくお願いいたします。 項目:$origin お名前:$name メールアドレス:$email1 電話番号 : $tel お問い合わせ内容:$naiyou 担当者よりご連絡させていただきますので今しばらくお待ちいただきますようよろしくお願いいたします。"; /* 文字化けした方は下記のmb_convert_encodingの2行をコメントアウトしてください それでも文字化けする方は[mb_convert_encoding]で検索して調べてください $title2=mb_convert_encoding($title2,"EUC-JP","UTF-8"); $all2=mb_convert_encoding($all2,"EUC-JP","UTF-8"); */ //送信 mb_send_mail($email1,$title2,$all2,"FROM:$to"); ?>

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

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

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

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

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

m.ts10806

2021/04/15 07:26

お急ぎでしたら業者にご依頼を。 仕事内容なのに他人にほぼ丸投げってありえません。
chamaki40

2021/04/15 07:50

すいません 以前、質問した時はこの程度の内容でも回答は色々頂いてました ブランクがあるため詳しい方の意見を聞いた方が早いので投稿しました
m.ts10806

2021/04/15 07:59 編集

ざっと見ましたが納期や急ぎ等の他人には全く関係ないような内容にはなっていませんでした。
m.ts10806

2021/04/15 08:00

コードに問題ないならサーバー側見てみては。
AbeTakashi

2021/04/15 08:58 編集

善意で成り立ってるコミュニティですから、一方的な都合を回答者に押し付けてはいけないとおもいます。明日まで解決したいというのは質問の勝手な都合です。私なら同じ立場だったとしても、それは質問文には含まないでしょう。前に教えてもらったとか、それもたまたまそうだったというだけです。納品しないと首を切られるとかレベルで切羽詰まっているなら、こんなところで聞いててはダメで、しかるべき人に対価を払って依頼するしかありません。 一応、質問内容見ましたが、これだけの情報で適切な回答が来ることは望み薄のように思えます。一番ヒントがありそうなのはサーバーのログだと思いますので、その辺を確認するともしかすると解決するかもしれません。ただ、メール周りは色々と複雑なので、知識ある人に見てもらう方が良いと思います。
guest

回答3

0

それでも文字化けする方は[mb_convert_encoding]で検索して調べてください

とありますが、調べましたか?

まずは、mb_convert_encoding を読みましょう。

mb_convert_encoding ( array|string $string , string $to_encoding , array|string|null $from_encoding = null )

to_encoding

string の変換後の文字エンコーディング。

from_encoding

変換前の文字エンコーディング名を指定します。 これは、配列またはカンマ区切りの文字列とすることが可能です。 from_encoding を指定しなかった場合は、内部文字エンコーディングを使用します。

エンコーディングは、何を参考にして決められたのでしょうか?

投稿2021/04/15 14:44

CHERRY

総合スコア25171

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

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

chamaki40

2021/04/15 15:15

回答ありがとうございます。 さっき、グーグルで昔の記事を調べたらPHPのエンコード処理について書いてあったので 試したら文字化けなおりました。  お手数おかけしました。
guest

0

$title2=mb_convert_encoding($title2,"EUC-JP","UTF-8"); $all2=mb_convert_encoding($all2,"EUC-JP","UTF-8");

上記の二行をコメントアウトして、直前に下記のコードを入れたらなおりました

mb_internal_encoding("UTF-8"); mail( '$mail1', mb_encode_mimeheader('$title2', 'ISO-2022-JP-MS'), //エンコードはISO-2022-JP-MSで行う! mb_convert_encoding('$all2', 'ISO-2022-JP-MS'), //エンコードはISO-2022-JP-MSで行う! "Content-Type: text/html; charset=\"ISO-2022-JP\";\n" //ヘッダはISO-2022-JPを指定する! );

これを送信元と送り先で指定された値で記述したら文字化けは解消されました

PHP5.2.1以降でISO-2022-JP-MSという文字コードがサポートされるようになったと
記事にありました。

コメント頂いた方、ありがとうございました。

イメージ説明

投稿2021/04/15 15:23

chamaki40

総合スコア32

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

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

0

自己解決

リターンメールは、元の使っていたサイトから再度、nameを指定しなおして配置したら返ってきました。

ただ、今度はメールに届いたメッセージが全部文字化けするという局面に陥ってます

完了メール(complete.php)に下記のコードが入っているのに原因がわかりません。

$title=mb_convert_encoding($title,"EUC-JP","UTF-8");
$all=mb_convert_encoding($all,"EUC-JP","UTF-8");

秀丸でUTF-8で何度、保存しなおしてもリターンメールは画像のように化けてます

これだけでも原因分かる方いませんか?

イメージ説明

投稿2021/04/15 14:07

chamaki40

総合スコア32

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問