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

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

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

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

Q&A

解決済

1回答

857閲覧

フォーム入力をセッション変数に移し替える

bitcoiner2045

総合スコア47

PHP

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

0グッド

0クリップ

投稿2018/07/31 03:12

input.htmlで名前と好きな言葉を入力して
確認するボタンを押すと、Not Foundになります。
confirm.phpを確認してもエラーコードが表示されていないため、
原因の特定に詰まっています。
一体何が原因なのでしょうか。
お手数おかけしますが、ご回答頂けると幸いです。
宜しくお願いします。

input.php

confirm.php説明]

thankyou.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>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/07/31 03:43

404 Not FoundはPHPファイルを指定の場所にアップロードし忘れている可能性がありますが、点検してますか?
bitcoiner2045

2018/07/31 05:54

input.htmlもconfirm.phpもthankyou.phpも同じフォルダの中に入ってますし、<input type="button" value="戻る" onclick="location.href='input.html' ">や<input type="button" value="送信する" onclick="location.href='thankyou.php' ">の部分も不備がないように思うのですが、点検してる部分が違っていますかね?
guest

回答1

0

自己解決

confirm.phpをcomfirm.phpで名前をつけてたのが原因でした。

投稿2018/07/31 08:53

bitcoiner2045

総合スコア47

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問