前提・実現したいこと
phpの練習でメールフォームを作成中です。
データをindex.php→check.php→comletion.php
の順番でデータを受け渡ししています。
質問は二つです。
1.completion.phpをサイトで表示した際に本来名前が表示されるところが、非表示になること。
2.自動送信を送った後にメールが返ってこないこと。(自分にメールを送ってます。)
→ローカル開発環境で行っているのが原因?
以上2点です。
該当のソースコード
index.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>tekitou</title> </head> <body> <form action="check.php" method="post"> 名前:<br/> <input type="text" name="name" style="width:300px"> <br/> メールアドレス:<br/> <input type="text" name="mail" style="width:300px"><br/> お問い合わせ内容:<br/> <textarea name="inquiry" style="width:300px;height:80px"></textarea><br/> <input type="submit" value="送信"> </form> </body> </html>
check.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>sousin</title> </head> <body> <?php $name = $_POST['name']; $mail = $_POST['mail']; $inquiry = $_POST['inquiry']; $name = htmlspecialchars($name); $mail = htmlspecialchars($mail); $inquiry = htmlspecialchars($inquiry); print 'お問い合わせ内容<br/>'; print '<br/>'; if($name == '') { print '名前が入力されてません。<br/>'; }else{ print '名前:'; print $name; print '<br/>'; } if($mail == '') { print 'メールアドレスが入力されてません。<br/>'; }else{ print 'メールアドレス:'; print $mail; print '<br/>'; } if($inquiry == '') { print 'お問い合わせ内容が入力されてません。<br/>'; }else{ print 'お問い合わせ内容:'; print $inquiry; print '<br/>'; } if($name = '' ||$mail == '' ||$inquiry == '' ){ print '<form>'; print '<input type="button" onclick="history.back()" value="戻る">'; print '</form>'; }else{ print '<form method="post" action="completion.php">'; print '<input name="name" type="hidden" value="'.$name.'">'; print '<input name="mail" type="hidden" value="'.$mail.'">'; print '<input name="inquiry" type="hidden" value="'.$inquiry.'">'; print '<input type="button" onclick="history.back()" value="戻る">'; print '<input type="submit" value="送信">'; print '</form>'; } ?> </body> </html>
completion.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>aafafeaf</title> </head> <body> <?php $name = $_POST['name']; $mail = $_POST['mail']; $inquiry = $_POST['inquiry']; $name = htmlspecialchars($name); $mail = htmlspecialchars($mail); $inquiry = htmlspecialchars($inquiry); print $name; print '様<br/>'; print 'お問い合わせありがとうございます。<br/>'; print 'お問い合わせ内容『'; print $inquiry; print '』<br/>'; print $mail; print 'に自動返信メールを送りしておりますのでご確認ください。'; $subject = 'お問い合わせありがとうございます。'; $text = name."様へ¥n この度はお問い合わせいただき誠にありがとうございます。1営業日以内に返信させていただきます。"; $text = html_entity_decode($mail_body, ENT_QUOTES, "UTF-8"); $header = 'From:99999999@gmail.com'; mb_language('japanese'); mb_internal_encoding("UTF-8"); mb_send_mail($mail, $subject, $text, $header); ?> </body> </html>
試したこと
$name付近のスペルミスチェック等しましたが、これ以上どこを見ればいいのかわかりません
補足情報(FW/ツールのバージョンなど)
Windows10 WindowsPowershell PUTTY cyberduck
回答1件
あなたの回答
tips
プレビュー