session_start(); $mode = !empty($_POST['mode'])? $_POST['mode']:''; $namae = ""; $company = ""; $email = ""; $honbun = ""; $error = ""; $error_namae = ""; $error_company = ""; $error_email = ""; $error_honbun = ""; if($mode){ if(empty($_SESSION['token']) || $_SESSION['token']!=$_POST['token']){ die('不正な遷移です。'); } if(empty($_POST['namae'])){ $error_namae = "<class='error'><font color='red' size='2'>お名前を入力してください</font></class>\n"; }else{ $namae = htmlspecialchars($_POST['namae']); } $company = htmlspecialchars($_POST['company']); if(empty($_POST['email'])){ $error_email = "<class='error'><font color='red' size='2'>メールアドレスを入力してください</font></class>\n"; }else{ $email = htmlspecialchars($_POST['email']); } if(empty($_POST['honbun'])){ $error_honbun = "<class='error'><font color='red' size='2'>本文を入力してください</font></class>\n"; }else{ $honbun = htmlspecialchars($_POST['honbun']); } if($error_namae || $error_email || $error_honbun){ $mode = 'input'; } if($mode == 'submit'){ session_destroy(); $to = '送信先'; $subject = 'お問い合わせがありました'; $message = 'お名前:'.$namae."\n" .'御社名:'.$company."\n" .'メールアドレス:'.$email."\n" .'本文:'.$honbun."\n"; $header = 'From:test@ad5.jp'; $result = mb_send_mail($to,$subject,$message,$header); if($result){ header('Location:https://送信先'); exit; }else{ $mode = 'error'; $error = 'メール送信に失敗しました'; } } }else{ $mode = 'input'; $_SESSION['token'] = bin2hex(openssl_random_pseudo_bytes(16)); } (省略) <main id="toiawase" class="cf"> <?php if($mode == 'input'): ?> <form action="toiawase_test.php" method="post"> <input type="hidden" name="mode" value="confirm"> <input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>"> <table class="error"> <tr><td colspan="2"><?php if($error_namae): ?><em><?php echo $error_namae; ?></em><?php endif; ?></td></tr> <tr><td>お名前:</td><td><input type="text" name="namae" value="<?php echo $namae; ?>"></td></tr> <tr><td colspan="2"><?php if($error_company): ?><em><?php echo $error_company; ?></em><?php endif; ?></td></tr> <tr><td>御社名:</td><td><input type="text" name="company" value="<?php echo $company; ?>"></td></tr> <tr><td colspan="2"><?php if($error_email): ?><em><?php echo $error_email; ?></em><?php endif; ?></td></tr> <tr><td>メールアドレス:</td><td><input type="email" name="email" value="<?php echo $email; ?>"></td></tr> <tr><td colspan="2"><?php if($error_honbun): ?><em><?php echo $error_honbun; ?></em><?php endif; ?></td></tr> <tr><td>本文:</td><td><textarea name="honbun" cols="50" rows="10"><?php echo $honbun; ?></textarea></td></tr> </table> <p><button type="submit">確認</button></p> </form> <?php elseif($mode == 'confirm'): ?> <table class="error"> <tr><td>お名前:</td><td><?php echo $namae; ?></td></tr> <tr><td>御社名:</td><td><?php echo $company; ?></td></tr> <tr><td>メールアドレス:</td><td><?php echo $email; ?></td></tr> <tr><td>本文:</td><td><?php echo nl2br($honbun); ?></td></tr> </table> <form action="toiawase_test.php" method="post"> <input type="hidden" name="mode" value="submit"> <input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>"> <input type="hidden" name="namae" value="<?php echo $namae; ?>"> <input type="hidden" name="company" value="<?php echo $company; ?>"> <input type="hidden" name="email" value="<?php echo $email; ?>"> <input type="hidden" name="honbun" value="<?php echo $honbun; ?>"> <p><button type="submit">送信</button></p> </form> <form action="toiawase_test.php" method="post"> <input type="hidden" name="mode" value="input"> <input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>"> <input type="hidden" name="namae" value="<?php echo $namae; ?>"> <input type="hidden" name="company" value="<?php echo $company; ?>"> <input type="hidden" name="email" value="<?php echo $email; ?>"> <input type="hidden" name="honbun" value="<?php echo $honbun; ?>"> <p><button type="submit">戻る</button></p> </form> <?php else: ?> <p>エラーが発生しました</p> <?php if($error): ?><p><em><?php echo $error; ?></em></p><?php endif; ?> <?php endif; ?> </main>
メールフォームを作成していますが、以下の記述でアップロードしたら、Internal Server Errorが出てしまいます。
メインフォルダ内にテストフォルダを作って作成をしていた段階では確認できていたのですが、いざテストフォルダを外したらエラーになってしまいました。
tokenの記述があやしいのかと思っていますが分かりません。
何かおかしい部分はありますでしょうか?
なお、送信先は、単独で開くことは確認できています。
コードはマークダウンのcode機能にてご提示ください
コードの挿入(<code>ボタン)を使用して、書式が設定された状態のコードを確認できるように修正をお願いします。
>何かおかしい部分はありますでしょうか?
自身はどの程度このコードを把握されているのでしょうか。
逆に「おかしくない」と思っている箇所はどこですか?質問の仕方おかしい部分もありますけど、おかしいからエラーとなるわけで。
ひとまず、エラーログを確認してください
フォルダとはなんの話でしょう。
アップロードとはなんの話でしょう。
見るのは赤の他人なので、例え熟練者であっても説明のない項目を質問者の都合の良いように解釈することはできません。
環境情報含めて本件に関して自身が持ってる情報をなるべく全てご提示ください。
※パスワードや個人情報などセキュアな情報は除く
ファイルの先頭に <?php が必要ですが、これはありますか?
error500はサーバ上のトラブルです。だいたいはPHPの記述の問題で解決するので
ini_set('display_errors',1);
を先頭に記述してエラーを吐くようにしたらわかりませんかね。
あなたの回答
tips
プレビュー