前提・実現したいこと
メールフォームを作っています。
ユーザーにお問い合わせいただいた内容をユーザーにも送信し、かつ管理者(自分)
にもしたいです。
発生している問題・エラーメッセージ
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/mail.php:2) in /home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/mail.php on line 6
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/mail.php:2) in /home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/mail.php on line 6
日本語訳:
警告:session_start():セッションcookieを送信できません-ヘッダーは/home/etdfftytg/etdfftytg.phpの(/home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/mail.php:2で開始された)によってすでに送信されています。6行目のxdomain.jp/public_html/mail.php
警告:session_start():セッションキャッシュリミッターを送信できません-ヘッダーは既に送信されています(出力は/home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/mail.phpで開始されました: 2)6行目の/home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/mail.php
該当のソースコード
<?php if(!$_POST){ header('Location: /'); } session_start(); if(isset($_POST['name'],$_POST['email'],$_POST['comment'])){ $_SESSION['name'] = $_POST['name']; $_SESSION['email'] = $_POST['email']; $_SESSION['comment'] = $_POST['comment']; } ?> <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title></title> </head> <body> <?php $action = $_POST['action']; $name = htmlspecialchars($_SESSION['name']); $email = htmlspecialchars($_SESSION['email']); $comment = htmlspecialchars($_SESSION['comment']); $to = '@yahoo.co.jp';//メアド $subject = 'form-mail-sample-2';//タイトル $message = '[お名前]'."\n".$name."\n"; $message .= '[email]'."\n".$email."\n"; $message .= '[コメント]'."\n".$comment."\n\n\n"; $header = 'From: '.$email."\r\n"; $header .= 'Reply-To: '.$email."\r\n"; if($action == "post"){ echo '<div class="tb-cell mail-form">'; echo '<form id="form" action="mail.php" method="post">'; echo '<div class="row">'; echo '<div class="cell">'; echo '<label>name</label>'; echo '<!--cell--></div>'; echo '<div class="cell">'; echo $_SESSION['name']; echo '<!--cell--></div>'; echo '<!--row--></div>'; echo '<div class="row">'; echo '<div class="cell">'; echo '<label>email</label>'; echo '<!--cell--></div>'; echo '<div class="cell">'; echo $_SESSION['email']; echo '<!--cell--></div>'; echo '<!--row--></div>'; echo '<div class="row">'; echo '<div class="cell">'; echo '<label>comment</label>'; echo '<!--cell--></div>'; echo '<div class="cell">'; echo $_SESSION['comment']; echo '<!--cell--></div>'; echo '<!--row--></div>'; echo '<div class="row">'; echo '<div class="cell">'; echo ' '; echo '<!--cell--></div>'; echo '<div class="cell">'; echo '<p>入力内容が正しければ送信してください</p><br>'; echo '<button type="submit" id="sbtn" name="action" value="send">送 信</button>'; echo '<button type="button" onclick="history.go(-1)">入力フォームに戻る</button>'; echo '<!--cell--></div>'; echo '<!--row--></div>'; echo '</form>'; echo '<!--tb-cell--></div>'; }elseif($action == "send"){ $status = mb_send_mail($to, $subject, $message, $header); if ($status) { echo '<p class="msg">メッセージは正常に送信されました</p>'; echo '<button type="button" onclick="history.go(-2)">入力フォームに戻る</button>'; } else { echo '<p class="msg">メッセージの送信に失敗しました</p>'; echo '<button type="button" onclick="history.go(-2)">入力フォームに戻る</button>'; } $_SESSION = array(); session_destroy(); } ?> </body> </html>
html
1<!DOCTYPE html> 2 3<html lang="ja" xmlns="http://www.w3.org/1999/xhtml"> 4<head> 5 <meta charset="utf-8" /> 6 <title>メール</title> 7</head> 8<style> 9 10 .tb-cell { 11 display: table; 12 width: 300px; 13 margin: 20px auto 40px auto; 14 text-align: left; 15 } 16 17 .tb-cell .row { 18 display: table-row; 19 } 20 21 .tb-cell .row .cell { 22 display: table-cell; 23 border: 1px solid #ddd; 24 padding: 10px; 25 vertical-align: middle; 26 color: #fff; 27 } 28 29 .tb-cell .row .cell:nth-child(odd) { 30 width: 100px; 31 } 32 33 .tb-cell .row .cell:nth-child(even) { 34 width: 200px; 35 } 36 37 .mail-form .row .cell { 38 padding: 5px; 39 } 40 41 .mail-form .row .cell:nth-child(1) { 42 background: #9fb7d4; 43 } 44 45 .mail-form .row .cell:nth-child(2) { 46 background: #ccc; 47 } 48 49 input[type="text"], 50 input[type="email"] { 51 height: 30px; 52 font-size: 16px; 53 } 54 55 textarea { 56 height: 100px; 57 font-size: 16px; 58 } 59 60 button { 61 color: #fff; 62 border: none; 63 padding: 10px; 64 font-size: 16px; 65 cursor: pointer; 66 } 67 68 button[type="button"] { 69 margin-left: 10px; 70 } 71 72 button[type="button"], 73 button[type="submit"] { 74 background: #afc6e2; 75 } 76 77 button[type="reset"] { 78 background: none; 79 } 80 81 button[type="button"]:hover, 82 button[type="submit"]:hover { 83 background: #ddd; 84 } 85 86 button[type="reset"]:hover { 87 text-decoration: underline; 88 } 89 90 @media (min-width: 768px) { 91 .tb-cell { 92 width: 800px; 93 } 94 95 .tb-cell .row { 96 display: table-row; 97 } 98 99 .tb-cell .row .cell { 100 display: table-cell; 101 border: 1px solid #ddd; 102 padding: 10px; 103 vertical-align: middle; 104 color: #fff; 105 } 106 107 .tb-cell .row .cell:nth-child(odd) { 108 width: 200px; 109 } 110 111 .tb-cell .row .cell:nth-child(even) { 112 width: 600px; 113 } 114 115 input[type="text"], 116 input[type="email"] { 117 width: 300px; 118 } 119 120 textarea { 121 width: 580px; 122 } 123 /* ** */ 124 } 125</style> 126<body> 127 128 <div class="tb-cell mail-form"> 129 <form id="form" action="mail.php" method="post"> 130 <div class="row"> 131 <div class="cell"> 132 <label>name</label> 133 <!--cell--> 134 </div> 135 <div class="cell"> 136 <input type="text" name="name" required> 137 <!--cell--> 138 </div> 139 <!--row--> 140 </div> 141 <div class="row"> 142 <div class="cell"> 143 <label>email</label> 144 <!--cell--> 145 </div> 146 <div class="cell"> 147 <input type="email" name="email" required> 148 <!--cell--> 149 </div> 150 <!--row--> 151 </div> 152 <div class="row"> 153 <div class="cell"> 154 <label>comment</label> 155 <!--cell--> 156 </div> 157 <div class="cell"> 158<textarea name="comment" required></textarea> 159 <!--cell--> 160 </div> 161 <!--row--> 162 </div> 163 <div class="row"> 164 <div class="cell"> 165 166 <!--cell--> 167 </div> 168 <div class="cell"> 169 <button type="submit" id="sbtn" name="action" value="post">入力内容を確認</button> 170 <button type="reset" id="rbtn">リセット</button> 171 <!--cell--> 172 </div> 173 <!--row--> 174 </div> 175 </form> 176 <!--tb-cell--> 177 </div> 178 179</body> 180</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/10/13 09:46
退会済みユーザー
2020/10/13 10:03