teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

cookieを残し、renderを使えば入力されると思っていたが、cookieを使わず入力された値を$this->request->dataを初期値としてセットするように変更。

2018/05/19 04:51

投稿

minusion
minusion

スコア17

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- CakePHPにて、コントローラーでpreg_matchを使い入力チェクを行った後に、エラーがあれば入力画面へ戻り(render)、エラーがなければ確認画面に飛ぶ処理を作ろうとしています。
1
+ CakePHPにて、コントローラーでpreg_matchを使い入力チェクを行った後に、エラーがあれば入力された値を持ったまま入力画面へ戻り(render)、初期値としてセット。エラーがなければ確認画面に飛ぶ処理を作ろうとしています。
2
2
 
3
3
  ```PHP(コントローラー:入力チェック処理)
4
4
  private function __preg_match($hankakuei) {
@@ -39,19 +39,50 @@
39
39
 
40
40
  // 入力チェック
41
41
  $moge = $this->__preg_match ( $hankakuei );
42
+ }
43
+ ```
42
44
 
43
- // $POSTデータから入力した値を取得
45
+ ```PHP(view:入力画面)
44
- $mailaddress = $_POST ['mailaddress']; // 全角文字
45
- $honbun = $_POST ['zenkaku']; // メールアドレス
46
- $hankakuei = $_POST ['hankakuei']; // 半角英字
46
+ <form action="Contact/contact_2" method="post">
47
- $hankakusuu = $_POST ['hankakusuu']; // 半角数字
48
47
 
48
+ <p>名前</p>
49
+ <input type="text" name="input_name" />
50
+ <br />
51
+
52
+ <p>本文</p>
53
+ <textarea name="honbun" rows="4" cols="40"></textarea>
54
+ <br />
55
+ <!-- JavaScriptを使った入力チェック -->
56
+ <div class="zenkaku" id="zenkaku">
57
+ <p>全角文字</p>
58
+ <input type="text" name="zenkaku" value=""/>
59
+ <br />
60
+ </div>
61
+ <div class="mailaddress" id="mailaddress">
62
+ <p>メールアドレス</p>
63
+ <input type="text" name="mailaddress" value=""/>
64
+ <br />
65
+ </div>
66
+
67
+
68
+
69
+ <!-- PHPを使った入力チェック -->
70
+ <div class="hankakuei" id="hankakuei">
71
+ <p>半角英字</p>
72
+ <input type="text" name="hankakuei" value=""/>
73
+ <br />
74
+ </div>
75
+
76
+ <div class="hankakusuu" id="hankakusuu">
77
+ <p>半角数字</p>
78
+ <input type="text" name="hankakusuu" value=""/>
79
+ <br />
80
+ </div>
81
+
82
+ <input type="submit" value="送信" />
83
+
84
+
49
- // クッキーに値を登録
85
+ </form>
50
- setcookie ( "mailaddress", $mailaddress, time () + 3600 ); // 1時間で消えるクッキーを設定
51
- setcookie ( "zenkaku", $honbun, time () + 3600 ); // 1時間で消えるクッキーを設定
52
- setcookie ( "hankakuei", $hankakuei, time () + 3600 ); // 1時間で消えるクッキーを設定
53
- setcookie ( "hankakusuu", $hankakusuu, time () + 3600 ); // 1時間で消えるクッキーを設定
54
- }
55
86
  ```
56
87
 
57
88
  ```PHP(view:確認画面)
@@ -99,5 +130,5 @@
99
130
 
100
131
  </body>
101
132
  ```
102
- renderを使えばできるのではないかと考えたのですが、処理の筋道が頭の中でまとまりません。
133
+ renderを使えばできるのではないかと考えたのですが、頭の中でまとまりません。
103
134
  どなたか、ご存知な方いらっしゃいましたら教えていただけると助かります。