質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

570閲覧

Internal Server Errorが出てしまいます

antaquen

総合スコア3

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2021/01/14 07:19

編集2021/01/14 07:34
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の記述があやしいのかと思っていますが分かりません。

何かおかしい部分はありますでしょうか?
なお、送信先は、単独で開くことは確認できています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/01/14 07:23

コードはマークダウンのcode機能にてご提示ください
plasticgrammer

2021/01/14 07:24

コードの挿入(<code>ボタン)を使用して、書式が設定された状態のコードを確認できるように修正をお願いします。
m.ts10806

2021/01/14 07:25

>何かおかしい部分はありますでしょうか? 自身はどの程度このコードを把握されているのでしょうか。 逆に「おかしくない」と思っている箇所はどこですか?質問の仕方おかしい部分もありますけど、おかしいからエラーとなるわけで。 ひとまず、エラーログを確認してください
m.ts10806

2021/01/14 07:37

フォルダとはなんの話でしょう。 アップロードとはなんの話でしょう。 見るのは赤の他人なので、例え熟練者であっても説明のない項目を質問者の都合の良いように解釈することはできません。 環境情報含めて本件に関して自身が持ってる情報をなるべく全てご提示ください。 ※パスワードや個人情報などセキュアな情報は除く
ockeghem

2021/01/14 09:12

ファイルの先頭に <?php が必要ですが、これはありますか?
FKM

2021/01/14 09:19

error500はサーバ上のトラブルです。だいたいはPHPの記述の問題で解決するので ini_set('display_errors',1); を先頭に記述してエラーを吐くようにしたらわかりませんかね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問