index.html >> kakunin.php >> send.php
という流れで送信メールを作っています。
サーバの環境は CentOS7+PHP7+Apache です。
index.htmlをformで配列に格納し、
kakunin.phpで$_POSTして配列から取り出し、
sand.phpにて、$_SESSIONで渡してメールするというように書いていますが、
動いていません。
どう書くのが正しいのでしょうか?
ご教示頂ければ幸いです。
(kakunin.phpはきちんとindex.htmlのname要素から抽出して表示されています。)
php
1<?php 2ini_set('display_errors', 'On'); 3error_reporting(E_ALL); 4?> 5<? php 6if(!$_POST){ 7header('Location: ./index.html'); 8session_start(); 9$_SESSION = $_POST; 10?> 11 12<!DOCTYPE html> 13<html> 14 <head> 15 16 <h2>以下の内容で送信します</h2> 17 <form id="form" action="send.php" method="post"> 18 <p>お名前:<?php echo htmlspecialchars($_POST['names']); ?></p> 19 <p>メール:<?php echo htmlspecialchars($_POST['email']); ?></p> 20 <p>電話:<?php echo htmlspecialchars($_POST['tel']); ?></p> 21 <button type="submit" value="確認"></button> 22 </form> 23</body> 24</html>
php
1<?php 2session_start(); 3 4if($_SESSION['names']==""){ 5header('Location: ./kakunin.php'); 6} 7 8$add_header="From:info@yyyy.com\n"; 9$add_header .= "Reply-to: info@yyyy.com\n"; 10$add_header .= "X-Mailer: PHP/". phpversion(); 11$opt = '-f'.'info@yyyy.com'; 12 13$message =<<<HTML 14新しい申し込みが来ました。 15<p>お名前:{$_SESSION['name']}</p> 16<p>メール:{$_SESSION['email']}</p> 17<p>電話:{$_SESSION['tel']}</p> 18HTML; 19 20mb_language("ja"); 21mb_internal_encoding("UTF-8"); 22mb_send_mail('info@yyyy.com',"問い合わせがありました",$message,$add_header,$opt); 23session_destroy(); 24?>
どこまで正常と思われる動作をしているのでしょうか。「動いていません」だけで原因を推測するのは無理です。「どう書くのが正しい?」というのは、何についての質問でしょうか?
kakunin.phpまでは正常に動いています。(掲載しているのは引数が何かを問われると思っているからです)問題はsend.phpです。ここのheader('Location: ./kakunin.php');は何を書くべきなのか?(今は一つ前のファイルを指定)
$messageの中の書き方などが問題があるのでは?と直感的に思っているのですが、全体的に見て、ここがおかしいという所があれば教えてくださいという話です。PHPでメール送信をしている方だったらそこまで難しい話ではないと思います。既に、他のサイトで散々過去のドキュメントを見て一旦書いたもので、エラー内容は一通り見ていますし、分かる人が見ればすぐわかる問題だと思っています。
回答2件
あなたの回答
tips
プレビュー