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

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

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

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

Q&A

3回答

865閲覧

登録ページから確認ページへの遷移をしてみたい

kokokooooooooo

総合スコア18

PHP

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

0グッド

0クリップ

投稿2018/10/02 09:45

編集2018/10/03 02:54

わからないこと
登録ページ(registe.php)から確認ページ(confirm.php)への遷移の書き方がわからないです。
最初、作りとして<form action="confirm.php" method="post">という作りにしていました。
しかし、入力制限をつけることになり、自分自身にpostした作りにしました。そこから、confirm.phpにどうやってデータをわたせばいいか悩んでいます

追記
このまま開くことをすると、エラーがないと判断され、register.phpに遷移してしまいます。もちろんregiste.phpで入力されていないため
未定義エラーがconfirm.phpに表示されます。

実現したいこと
あまり、confirm.phpをいじらないで、register.phpの値をconfirm.phpにpostしたいです。

追記
登録ページ(register.php)の値を、セッションIDに入れて、postで送って、確認ページ(confirm.php)でpost表示してそのままデータベースに入れたいです。

自分の考え
セッションを使って、値を渡すのかなと予想しています。

php

1register.php 2<?php 3session_start(); 4 5$errors = array(); 6//postによる送信 7if (!empty($_POST)) { 8 /* 9 inputタグで受け取りフィルタリングする関数。一般的には、ユーザが入力した値が妥当であるか調べるのに使う 10 FILTER_SANITIZE_SPECIAL_CHARSはサニタイジングを実行してくれます。XSSを防いでくれます 11 */ 12 if (!$KlastName = filter_input(INPUT_POST, 'KlastName', FILTER_SANITIZE_SPECIAL_CHARS)) { 13 $errors['KlastName'] = 'カナ苗字が記載されていません'; 14 } 15 if (!$Kname = filter_input(INPUT_POST, 'Kname', FILTER_SANITIZE_SPECIAL_CHARS)) { 16 $errors['Kname'] = 'カナ名前が記載されていません'; 17 } 18 if (!$lastName = filter_input(INPUT_POST, 'lastName', FILTER_SANITIZE_SPECIAL_CHARS)) { 19 $errors['lastName'] = '苗字が記載されていません'; 20 } 21 if (!$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_SPECIAL_CHARS)) { 22 $errors['name'] = '名前が記載されていません'; 23 } 24 if (!$password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_SPECIAL_CHARS)) { 25 $errors['password'] = 'パスワードが記載されていないです'; 26 } 27 if (!$confirm_password = filter_input(INPUT_POST, 'confirm_password', FILTER_SANITIZE_SPECIAL_CHARS)) { 28 $errors['confirm_password'] = '確認パスワードもよろしく'; 29 } 30 if (!$sex = filter_input(INPUT_POST, 'sex', FILTER_SANITIZE_SPECIAL_CHARS)) { 31 $errors['sex'] = '性別も記載して'; 32 } 33 if (!$bday = filter_input(INPUT_POST, 'bday', FILTER_SANITIZE_SPECIAL_CHARS)) { 34 $errors['bday'] = '生年月日もよろしく'; 35 } 36} 37if (empty($error)) { 38 $_SESSION['join'] = $_POST; 39 header('Location: confirm.php'); exit(); 40 } 41 42 ?> 43 44 45<!DOCTYPE html> 46<html> 47 <head> 48 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 49 <title>ログイン前</title> 50 <script src="app.js" type="text/javascript"></script> 51 </head> 52 <body> 53 <h1>自己紹介</h1> 54 <h2>ユーザ新規登録</h2> 55 <form action="" method="post"> 56 <?php 57 echo "<ul>"; 58 foreach ($errors as $message) { 59 echo "<li>"; 60 echo "$message"; 61 echo "</li>"; 62 } 63 echo "</ul>"; 64 ?> 65 <p>カナ苗字 66 <input type="text" name="KlastName" input pattern="^[ァ-ン]+$" 67 title="全角カタカナでご入力ください。"> 68 </p> 69 <p>カナ名前 70 <input type="text" name="Kname" input pattern="^[ァ-ン]+$" 71 title="全角カタカナでご入力ください。"> 72 </p> 73 <p>苗字 74 <input type="text" name="lastName"> 75 </p> 76 <p>名前 77 <input type="text" name="name" > 78 </p> 79 <p>パスワード 80 <input id="password" type="text" name="password"> 81 </p> 82 <div id="pass_message"></div> 83 <p>パスワード確認 84 <input type="password" name="confirm_password" id="confirm_password" 85 onkeyup="setConfirmMessage(this.value);"> 86 </p> 87 <div id="pass_confirm_message"></div> 88 <input type="radio" name="sex" value="1">89 <input type="radio" name="sex" value="2">90 <br> 91 生年月日<input type="date" name="bday" value="<?php echo date('Y-m-j');?>"> 92 <br> 93 <input type="submit" name="submit" value="送信"> 94 </form> 95 </body> 96</html> 97

php

1confirm.php 2<!DOCTYPE html> 3<html> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 6 <title>確認フォーム</title> 7 </head> 8 <body> 9 <h2>確認ページ</h2> 10 <form method="post" action="add.php"> 11 <p><?php echo "カナ苗字:". $_POST['KlastName'];?></p> 12 <p><?php echo "カナ名前:". $_POST['Kname'];?></p> 13 <p><?php echo "苗字:". $_POST['lastName'];?> 14 <p> <?php echo "名前:". $_POST['name'];?> 15 <p> <?php echo "パスワード:". $_POST['password'];?> 16 <p> <?php 17 $sex = ($_POST['sex'] == 1) ? "男":"女"; 18 echo "性別:" . $sex;?> 19 <p><?php $date = new DateTime($_POST['bday']); 20 echo $date->format('Y年n月j日');?> 21 <br> 22 <input type="submit" name="送信"> 23 <a href="register.php">戻る</a> 24 <input type="hidden" name="KlastName" value="<?php echo $_POST['KlastName'];?>"> 25 <input type="hidden" name="Kname" value="<?php echo $_POST['Kname'];?>"> 26 <input type="hidden" name="lastName" value="<?php echo $_POST['lastName'];?>"> 27 <input type="hidden" name="name" value="<?php echo $_POST['name'];?>"> 28 <input type="hidden" name="password" value="<?php echo $_POST['password'];?>"> 29 <input type="hidden" name="sex" value="<?php echo $_POST['sex'];?>"> 30 <input type="hidden" name="bday" value="<?php echo $_POST['bday'];?>"> 31 </form> 32 </body> 33</html>

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

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

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

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

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

guest

回答3

0

sessionに格納した値は$_POST['name']ではなく、$_SESSION['name']で取得すればいいだけです。
session_start()をお忘れなく。

投稿2018/10/03 03:40

kunai

総合スコア5405

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

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

0

入力部分のview部分を共通化して、confirm.phpで入力チェックはするものの、何か入力チェックにかかったら現在register.phpに書いている内容を入力内容初期値で表示すれば良いと思います。

あまり、confirm.phpをいじらないで、

ここ見落としてました。
どちらがいいかは一長一短ですね。
ただ、

セッションを使って、値を渡すのかなと予想しています。

と仰るのであれば、実際やってみた内容で質問された方が良いと思います。
既に何かしらしようとしているようには思いますが、現在のコードで何がどううまくいっていないのか、とか
起きている現象、できていること・できていないこと(わかっていること・わからないこと)を明確に記載してください。

投稿2018/10/02 11:54

編集2018/10/02 11:56
m.ts10806

総合スコア80850

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

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

0

入力に問題がない場合はセッション変数にデータを記録して confirm.php にリダイレクトすれば良いと思います。

投稿2018/10/02 10:03

mather

総合スコア6753

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問