###前提・実現したいこと
PHPで会員登録をするプログラムを作っています。
会員登録画面→会員登録確認画面→会員登録完了画面
と三段階のシステムを作りたいです。
データベースはこの問題を解決した後に取り組みます。
enshu1-2.php→会員登録画面
enshu3.php→会員登録確認画面
###発生している問題・エラーメッセージ
エラーの時は同じ画面にエラーを表示し、正しい場合は次の会員登録確認画面に推移させたい。 そのためにformのaction先を場合分けしようとしているができない。
###該当のソースコード
PHP
1<?php 2$errors = array(); 3 4if(isset($_POST['submit']) && $_POST['submit'] ==="確認"){ 5 6 $name = $_POST['name']; 7 $data = $_POST['data']; 8 $address = $_POST['address']; 9 10 11 12 if($name === ""){ 13 $errors['name'] = "名前が入力されていません。"; 14 } 15 16 if($data === ""){ 17 $errors['data'] = "生年月日が入力されていません。"; 18 } 19 20 if($address === ""){ 21 $errors['address'] = "住所が入力されていません。"; 22 } 23} 24?> 25 26<!DOCTYPE html> 27<html> 28<head> 29 <title>会員登録画面</title> 30</head> 31<body> 32 33 <?php 34 echo "<ul>"; 35 foreach($errors as $message){ 36 echo "<li>"; 37 echo $message; 38 echo "</li>"; 39 } 40 echo "</ul>"; 41 ?> 42 43 <h1>会員登録画面</h1> 44 45 <?php 46 47 if($_POST['name'] != "" && $_POST['data'] != "" && $_POST['address'] != ""){ 48 $sent = "enshu3.php"; 49 50 }else{ 51 $sent = "enshu1-2.php"; 52 } 53?> 54 <form action = "<?=$sent?>" method = "POST"> 55 56 <p>名前:<br></p> 57 <input type="text" name="name" > 58 <br> 59 60<p>生年月日:<br></p> 61 <input type="text" name="data" > 62 <br> 63 64 <p>住所:<br></p> 65 <input type="text" name="address" > 66 <br> 67 <br> 68 69 <input type="submit" name = "submit" value="確認"> 70 </form> 71 72 73 74</body> 75 </html> 76
###試したこと
actionの値を変数にして、ifで場合分けしました。
ですが、正しい場合に次の画面に推移するのがもう一度入力した際になってしまいます。
###補足情報(言語/FW/ツール等のバージョンなど)
[vagrant@localhost ~]$ php -v
PHP 5.4.45 (cli) (built: Feb 18 2017 15:55:26)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/31 06:13
2017/05/31 06:19
2017/05/31 06:26
2017/05/31 06:33 編集
2017/05/31 06:35
2017/05/31 06:50 編集
2017/05/31 07:23
2017/05/31 07:34
2017/06/01 02:55
2017/06/01 03:03