- 締切済み
mb_send_mailの受信メールが一部反映されません、どなたか教えて頂ければ助かります。
フォーム入力→確認画面→メールソフトに送信→送信完了画面を作成したのですが、フォームの内容は確認画面に反映され、メールソフトに送信できます。しかし、メールソフト送られてくる性別が全て女性になり、セレクトタグで選んだ項目が、メールソフトには何も表示されてません。どなたか知恵を貸していただければたすかります。PHPを習い始めてまだ、3ヶ月ほどです。 if(!isset($PHP_SELF)){ $PHP_SELF = $_SERVER["PHP_SELF"]; } if(!isset($action)){ $action = $_REQUEST['action']; } if(!isset($namae)){ $namae = $_REQUEST['namae']; if( get_magic_quotes_gpc() ) { $namae = stripslashes("$namae"); } $namae = htmlspecialchars ($namae); } if(!isset($old)){ $old = $_REQUEST['old']; if( get_magic_quotes_gpc() ) { $old = stripslashes("$old"); } $old = htmlspecialchars ($old); } if(!isset($sei)){ $sei = $_REQUEST['sei']; if($sei= ="m"){ $sei="男性"; }else{ $sei="女性"; } 一部省略 $pc_str=array("ooから","ooから","ooから","ooから","ooりから","oo","ooから","その他"); if(!isset($pc)){ $pc = $_REQUEST['pc']; $pc_mozi=$pc_str[$pc]; } --------------------------------------------------------------- <body> <?php if($action = = "post"){ if($_REQUEST["namae"] && $_REQUEST["mail"] && $_REQUEST["mail2"] && $_REQUEST["mail"]==$_REQUEST["mail2"]){ print ("内容(下記の内容でよいろしいですか)<br><br>\n"); print ("<form action=\"$PHP_SELF\" method=\"post\">\n"); print ("<input type=\"hidden\" name=\"action\" value=\"send\">\n"); print ("名前:$namae<br><br>\n"); print ("<input type=\"hidden\" name=\"namae\" value=\"$namae\">\n"); print ("E-mail:$mail<br><br>\n"); print ("<input type=\"hidden\" name=\"mail\" value=\"$mail\">\n"); print ("E-mail2 : $mail2<br><br>\n"); print ("<input type=\"hidden\" name=\"mail2\" value=\"$mail2\">\n"); if($sei){ print ("性別 : $sei<br><br>\n"); print ("<input type=\"hidden\" name=\"sei\" value=\"$sei\">\n"); } 一部省省略してます。 if($pc_mozi){ print ("きっかけ : $pc_mozi<br><br>\n"); print ("<input type=\"hidden\" name=\"pc_mozi\" value=\"$pc_mozi\">\n"); } print ("<input type=\"submit\" name=\"submit\" value=\"送信\"></from>\n"); print ("\n"); }else{print ("必須項目が未入力、もしくは確認用メールが不一致です。再度入力お願い致します。<br><br>\n"); print ("<a href=\"javascript:history.back()\">戻って修正する</a>"); } }elseif($action = = "send"){ mb_language("ja"); mb_internal_encoding("SJIS"); $header="Content-Type: text/plain;charset=ISO-2022-JP"; $header.='From: oo@oo.jp'; $header.='Reply-To:oo@oo.jp'; $header.='X-Mailer: PHP/' . phpversion(); $to="oo@oo.jp"; $sub="問い合わせ内容"; $message = "お名前=".$namae."\n"; $message.="性別=".$sei."\n";●すべて女性になってます。 (一部省略してます) $$message.="きっかけ=".$pc_mozi."\n";●この中身が反映されません $message.= "質問=".$msg."\n"; if(mb_send_mail($to,$sub,$message,$header)){ print "送信完了しました。"; ・・・こんな感じです
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mpx
- ベストアンサー率71% (149/209)
>> メールソフト送られてくる性別が全て女性になり、・・・ 確認画面にて >> if($sei){ >> print ("性別 : $sei<br><br>\n"); >> print ("<input type=\"hidden\" name=\"sei\" value=\"$sei\">\n"); 上記より、(推測ですが、)$sei="男性"(または女性)なのでしょうが、その受け側では >> if($sei=="m"){ >> $sei="男性"; >> }else{ >> $sei="女性"; "m"かどうかで判定しています。これでは、全てfalseでしょうから 結果は 女性になってしまうのでは? 受け側のスクリプトのトップで print_r($_REQUEST); を事項して所望のデータを正しく受けているか確認してみては如何でしょう
- tany180sx
- ベストアンサー率63% (239/379)
ソースを見る限りでは動かなそうですが・・ >フォーム入力→確認画面→メールソフトに送信→送信完了画面 どの段階まで正常なのでしょうか? メールでのみの不具合ということなら //mb_send_mail($to,$sub,$message,$header) echo $message; exit; としてデバッグしてみては? メール送信から受信までの間に 男性から女性に変換されるようなことはないと思います。