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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

555閲覧

入力フォームの情報が確認表示画面で表示されないです。

ghtew2

総合スコア245

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2023/10/05 09:14

編集2023/10/05 10:11

入力フォームに入力した値を確認表示画面で表示されないです。初期入力フォームで値を入力したあと、submit押すと確認表示画面に情報を送れるようになっています。

キャッシュデータを消去して試しても確認表示画面で表示されないです。

コードの概要
未入力エラーの場合はPHPエラーと同時にscriptのアラートエラーも出すように2重実装してあります。

■入力フォームのPHP page1.php
https://jdsatysdf.info/reviwe/osusume/page1.php

php

1<?php 2session_start(); 3 4$errors = array(); 5if ($_POST) { 6 7$email = filter_input(INPUT_POST, 'email'); 8 9if (empty($email)) $errors[] ="未入力 "; 10if (count($errors) === 0) { 11 12$_SESSION['email'] = $email; 13 14/* 確認画面の表示, */ 15header('Location:https://jdsatysdf.info/reviwe/osusume/page2.php'); 16exit(); 17 } 18} 19 20if(isset($_GET['action']) && $_GET['action'] === 'edit'){ 21$email = $_SESSION['email']; 22} 23?> 24 25<body> 26 <form action="page2.php" method="post" id="form"> 27 <input type="text" class="form1" name="email" id="email" placeholder="例)ta.com" 28 value="<?php if(isset($email)){ echo $email; } ?>" /> 29 30 <button id="submit" type="submit" value="送信する">確認画面へ</button> 31 </form> 32 33<script> 34 // javaでエラーメッセージの表示 35 const form = document.querySelector('#form'); 36 const itemname = document.querySelector('#itemname'); 37 const email = document.querySelector('#email'); 38 form.addEventListener('submit', function(event) { 39 let msg = ""; 40 41 42 // scriptでエラーメッセージの表示 PHPと重複表示にしています。 43 if (email.value == "") msg += "未入力\n"; 44 if (msg != "") { 45 event.preventDefault(); 46 alert(msg); 47 } 48 }); 49 50 form.addEventListener('change', function() { 51 52 if (itemname.value != "") sessionStorage.setItem('itemname', itemname.value); 53 if (email.value != "") sessionStorage.setItem('email', email.value); 54 }); 55 56 //値を保持 57 itemname.value = sessionStorage.getItem('itemname'); 58 email.value = sessionStorage.getItem('email'); 59</script>

■確認表示画面php page2.php

php

1<?php 2session_start(); 3 4if(isset($_SESSION['name'])){ 5$email = $_SESSION['email']; 6} 7 8$_SESSION['token'] = base64_encode(openssl_random_pseudo_bytes(48)); 9$token = htmlspecialchars($_SESSION['token'], ENT_QUOTES); 10?> 11 12<body> 13 <form action ="" method ="post" name="doui_form"> 14 <input type ="hidden" name ="token" value ="<?php echo $token ?>"> 15 <div class="inputtitle">アドレス<?php echo $email; ?></div> 16 </form> 17</body> 18 19 20 21

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

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

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

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

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

guest

回答2

0

PHP

1<?php 2session_start(); 3$errors = []; 4$email = filter_input(INPUT_POST, 'email'); 5if (!is_null($email)){ 6 if(empty($email)){ 7 $errors[] ="未入力 "; 8 }elseif(filter_var($email,FILTER_VALIDATE_EMAIL)==false){ 9 $errors[] ="メールアドレスではない"; 10 }else{ 11 $_SESSION['email'] = $email; 12 } 13} 14var_dump($errors); 15var_dump($_SESSION); 16?> 17<form method="post"> 18<input name="email" id="email" value="<?=htmlspecialchars($email)?>"> 19<button type="submit" value="送信する">確認画面へ</button> 20</form>

投稿2023/10/06 00:29

yambejp

総合スコア117791

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

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

ghtew2

2023/10/08 07:13

回答ありがとうございました。返信遅くなり申し訳ありません。解析に時間が掛かってしましました。上記のコードで自分がしたいように出来ました。ありがとうございました。
guest

0

ベストアンサー

sessionにnameが無いのでif文で弾かれているのではないでしょうか。

PHP

1if(isset($_SESSION['name'])){ 2$email = $_SESSION['email']; 3}

投稿2023/10/05 23:24

tabuu

総合スコア2492

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

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

ghtew2

2023/10/08 07:16

回答ありがとうございました。返信遅くなり申し訳ありません。何度も試しても確認画面に表示されないでいましたが、上記の回答if(isset($_SESSION['name'])){ $email = $_SESSION['email']; } の通り、sessionにnameが無いのでif文で弾かれていたとおもいます。新しくnameのフォームを追加して書き直したら、きちんと情報が確認表示画面で表示されました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問