input.htmlで名前と好きな言葉を入力して
確認するボタンを押すと、Not Foundになります。
confirm.phpを確認してもエラーコードが表示されていないため、
原因の特定に詰まっています。
一体何が原因なのでしょうか。
お手数おかけしますが、ご回答頂けると幸いです。
宜しくお願いします。
input.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>入力ページ</title> <link href="../../css/style.css" rel="stylesheet"> </head> <body> <div> <form method="POST" action="confirm.php"> <li><label>名前: <input type="text" name="name" placeholder="ニックネーム可" ;> </label></li> <li><label>好きな言葉: <input type="text" name="kotoba"; > </label></li> <li><input type="submit" value="確認する" ></li> </ul> </form> </div> </body> </html>
confirm.php
<?php require_once("util.php"); //セッションの開始 session_start(); ?> <?php //文字エンコードの検証 if (!cken($_POST)) { $encoding = mb_internal_encoding(); $err = "Encoding Error! The expected encoding is " . $encoding; //エラーメッセージを出して、以下のコードを全てキャンセルする exit($err); } ?> <?php //POSTされた値をセッション変数に受け渡す if (isset($_POST[ 'name' ])) { $_SESSION[ 'name' ] = $_POST[ 'name' ]; } if (isset($_POST[ 'kotoba' ])) { $_SESSION[ 'kotoba' ] = $_POST[ 'kotoba' ]; } //入力データの取り出しとチェック $error = []; //名前 if (empty($_SESSION[ 'name' ])) { //未設定の時のエラー $error[] = "名前を入力して下さい"; } else { //名前を取り出す $name = trim($_SESSION[ 'name' ]); } //好きな言葉 if (empty($_SESSION[ 'kotoba' ])) { //未設定の時のエラー $error[] = "好きな言葉を入力して下さい"; } else { //好きな言葉を取り出す $kotoba = trim($_SESSION[ 'kotoba' ]); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>確認ページ</title> <link href="../../css/style.css" rel="stylesheet"> </head> <body> <div> <form> <?php if (count($error)>0) { ?> <span class="error"><?php echo implode('<br>' , $error); ?></span><br> <span> <input type="button" value="戻る" onclick="location.href='input.html' "> </span> <?php } else { ?> <span> 名前:<?php echo es($name); ?><br> 好きな言葉:<?php echo es($kotoba); ?><br> <input type="button" value="戻る" onclick="location.href='input.html' "> <input type="button" value="送信する" onclick="location.href='thankyou.php' "> </span> <?php } ?> </form> </div> </body> </html>
thank you.php
<?php require_once("util.php"); //セッションの開始 session_start(); $error = []; //セッションのチェック if (!empty($_SESSION[ 'name' ]) && !empty($_SESSION[ 'kotoba' ])) { //セッション変数から値を取り出す $name = $_SESSION[ 'name' ]; $kotoba = $_SESSION[ 'kotoba' ]; } else { $error[] = "セッションエラーです。"; } //HTMLを表示する前にセッションを破棄する killSession(); ?> <?php //セッションを破棄する function killSession() { //セッション変数の値を空にする $_SESSION = []; //セッションクッキーを破棄する if (isset($_COOKIE[session_name()])) { $params = session_get_cookie_params(); setcookie(session_name(), '', time()-36000, $params[ 'path' ]); } //セッションを破棄する session_destroy(); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>完了ページ</title> <link href="../../css/style.css" rel="stylesheet"> </head> <body> <div> <?php if (count($error)>0) { ?> <span class="error"><?php echo implode('<br>' , $error); ?></span><br> <a href="input.html">最初のページに戻る</a> <?php } else { ?> <span> 次のように受付けました。ありがとうございました。 <HR> <span> 名前:<?php echo es($name); ?><br> 好きな言葉:<?php echo es($kotoba); ?><br> <a href="input.html" >最初のページに戻る</a> </span> ![イメージ説明](b7ceeacaaf230a2870de71296ebfcb07.png)ジ説明](e36de721560d927d28e5c0d7f1175c90.png)hp } ?> </div> </body> </html>
404 Not FoundはPHPファイルを指定の場所にアップロードし忘れている可能性がありますが、点検してますか?
input.htmlもconfirm.phpもthankyou.phpも同じフォルダの中に入ってますし、<input type="button" value="戻る" onclick="location.href='input.html' ">や<input type="button" value="送信する" onclick="location.href='thankyou.php' ">の部分も不備がないように思うのですが、点検してる部分が違っていますかね?
自己解決できました!
回答1件
あなたの回答
tips
プレビュー