質問編集履歴

5

モデルの入れ忘れ

2017/03/26 05:33

投稿

destrudo
destrudo

スコア143

test CHANGED
File without changes
test CHANGED
@@ -136,9 +136,11 @@
136
136
 
137
137
  ```ここに言語を入力
138
138
 
139
+
140
+
139
- <?php
141
+ <?php
140
-
142
+
141
- class Controllers_login extends CI_Controller{
143
+ class models_login extends CI_Model{
142
144
 
143
145
  public function __construct(){
144
146
 
@@ -152,121 +154,89 @@
152
154
 
153
155
  $this->load->library('form_validation');
154
156
 
155
-
156
-
157
- }
158
-
159
-
160
-
161
- public function index(){
162
-
163
- $this->load->view('views_mainpage');
164
-
165
- }
166
-
167
-
168
-
169
- public function login(){
170
-
171
-
172
-
173
-
174
-
175
- $this->load->view('views_login');
176
-
177
- }
178
-
179
- public function main(){
180
-
181
- $this->form_validation->set_rules('email','mailaddress','required');
182
-
183
- $this->form_validation->set_rules('password','mypassword','required');
184
-
185
- if($this->form_validation->run()==FALSE){
186
-
187
- $this->load->view('views_empty_or_error');
188
-
189
- }
190
-
191
- else{
192
-
193
- $email=$this->input->post('email');
194
-
195
- $password=$this->input->post('password');
196
-
197
-
198
-
199
- $this->load->model('models_login');
200
-
201
- $number_result=$this->models_login->exist_func($email,$password);//!!!
157
+ }
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+ public function exist_func($email,$password){
166
+
167
+ $sql="SELECT*FROM login WHERE email=? AND password=?";
168
+
169
+ $query=$this->db->query($sql,array($email,$password));
170
+
171
+ $number_result=$query->num_rows();
172
+
173
+
174
+
175
+ return $number_result;
176
+
177
+ }
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+ public function get_id($email,$password){
192
+
193
+ $sql="SELECT id FROM login WHERE email=? AND password=?";
194
+
195
+ $query=$this->db->query($sql,array($email,$password));
196
+
197
+ $row=$query->row_array();
198
+
199
+ //var_dump($row);
200
+
201
+ return $row;
202
+
203
+
204
+
205
+ }
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+ public function get_name($session_id){
216
+
217
+ $sql="SELECT name FROM login WHERE id=?";
218
+
219
+ //var_dump($id_data);
220
+
221
+ $query=$this->db->query($sql,array($session_id));
222
+
223
+ $row=$query->row_array();
224
+
225
+
226
+
227
+ //var_dump($row);
228
+
229
+ return $row;
230
+
231
+ }
202
232
 
203
233
 
204
234
 
205
-
206
-
207
- if(!empty($number_result)){
208
-
209
- //get id by this email and password
210
-
211
- $get_user=$this->models_login->get_id($email,$password);//!!!
212
-
213
-
214
-
215
- //set this got id into session
216
-
217
- $this->session->set_userdata(array('id_key'=>$get_user['id']));
218
-
219
-
220
-
221
- //Call id from session
222
-
223
- //$sess_id = $this->session->userdata('id');
224
-
225
- $session_id =array('id_key'=>$get_user['id']);
226
-
227
-
228
-
229
-
230
-
231
-
232
-
233
- $name_data['yourname']=$this->models_login->get_name($session_id);
234
-
235
-
236
-
237
- //send name for view
238
-
239
- $this->load->view('views_mainpage',$name_data);
240
-
241
- }
242
-
243
- else{
244
-
245
- $this->load->view('views_empty_or_error');
246
-
247
- }
248
-
249
- }
250
-
251
- }
252
-
253
-
254
-
255
- public function logout(){
256
-
257
- $this->session->sess_destroy();
258
-
259
-
260
-
261
- redirect("controllers_login");
262
-
263
-
264
-
265
- }
266
-
267
235
  }
268
236
 
237
+
238
+
269
- ?>
239
+ ?>
270
240
 
271
241
  ```
272
242
 

4

内容の変更

2017/03/26 05:33

投稿

destrudo
destrudo

スコア143

test CHANGED
@@ -1 +1 @@
1
- 2回目以降空白のまま送信した際にelseに飛ぶようにす
1
+ viewファイルを一つにとめことできないか。
test CHANGED
@@ -30,7 +30,15 @@
30
30
 
31
31
 
32
32
 
33
-
33
+ public function login(){
34
+
35
+
36
+
37
+
38
+
39
+ $this->load->view('views_login');
40
+
41
+ }
34
42
 
35
43
  public function main(){
36
44
 
@@ -40,7 +48,7 @@
40
48
 
41
49
  if($this->form_validation->run()==FALSE){
42
50
 
43
- $this->load->view('views_login');
51
+ $this->load->view('views_empty_or_error');
44
52
 
45
53
  }
46
54
 
@@ -94,13 +102,13 @@
94
102
 
95
103
  $this->load->view('views_mainpage',$name_data);
96
104
 
97
- }
105
+ }
98
106
 
99
107
  else{
100
108
 
101
- $this->load->view('views_login');
109
+ $this->load->view('views_empty_or_error');
102
-
110
+
103
- }
111
+ }
104
112
 
105
113
  }
106
114
 
@@ -130,7 +138,7 @@
130
138
 
131
139
  <?php
132
140
 
133
- class models_login extends CI_Model{
141
+ class Controllers_login extends CI_Controller{
134
142
 
135
143
  public function __construct(){
136
144
 
@@ -144,94 +152,260 @@
144
152
 
145
153
  $this->load->library('form_validation');
146
154
 
147
- }
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
- public function exist_func($email,$password){
156
-
157
- $sql="SELECT*FROM login WHERE email=? AND password=?";
158
-
159
- $query=$this->db->query($sql,array($email,$password));
160
-
161
- $number_result=$query->num_rows();
162
-
163
-
164
-
165
- return $number_result;
166
-
167
- }
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
-
178
-
179
-
180
-
181
- public function get_id($email,$password){
182
-
183
- $sql="SELECT id FROM login WHERE email=? AND password=?";
184
-
185
- $query=$this->db->query($sql,array($email,$password));
186
-
187
- $row=$query->row_array();
188
-
189
- //var_dump($row);
190
-
191
- return $row;
192
-
193
-
194
-
195
- }
196
-
197
-
198
-
199
-
200
-
201
-
202
-
203
-
204
-
205
- public function get_name($session_id){
206
-
207
- $sql="SELECT name FROM login WHERE id=?";
208
-
209
- //var_dump($id_data);
210
-
211
- $query=$this->db->query($sql,array($session_id));
212
-
213
- $row=$query->row_array();
214
-
215
-
216
-
217
- //var_dump($row);
218
-
219
- return $row;
155
+
156
+
157
+ }
158
+
159
+
160
+
161
+ public function index(){
162
+
163
+ $this->load->view('views_mainpage');
164
+
165
+ }
166
+
167
+
168
+
169
+ public function login(){
170
+
171
+
172
+
173
+
174
+
175
+ $this->load->view('views_login');
176
+
177
+ }
178
+
179
+ public function main(){
180
+
181
+ $this->form_validation->set_rules('email','mailaddress','required');
182
+
183
+ $this->form_validation->set_rules('password','mypassword','required');
184
+
185
+ if($this->form_validation->run()==FALSE){
186
+
187
+ $this->load->view('views_empty_or_error');
188
+
189
+ }
190
+
191
+ else{
192
+
193
+ $email=$this->input->post('email');
194
+
195
+ $password=$this->input->post('password');
196
+
197
+
198
+
199
+ $this->load->model('models_login');
200
+
201
+ $number_result=$this->models_login->exist_func($email,$password);//!!!
202
+
203
+
204
+
205
+
206
+
207
+ if(!empty($number_result)){
208
+
209
+ //get id by this email and password
210
+
211
+ $get_user=$this->models_login->get_id($email,$password);//!!!
212
+
213
+
214
+
215
+ //set this got id into session
216
+
217
+ $this->session->set_userdata(array('id_key'=>$get_user['id']));
218
+
219
+
220
+
221
+ //Call id from session
222
+
223
+ //$sess_id = $this->session->userdata('id');
224
+
225
+ $session_id =array('id_key'=>$get_user['id']);
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+ $name_data['yourname']=$this->models_login->get_name($session_id);
234
+
235
+
236
+
237
+ //send name for view
238
+
239
+ $this->load->view('views_mainpage',$name_data);
240
+
241
+ }
242
+
243
+ else{
244
+
245
+ $this->load->view('views_empty_or_error');
246
+
247
+ }
248
+
249
+ }
250
+
251
+ }
252
+
253
+
254
+
255
+ public function logout(){
256
+
257
+ $this->session->sess_destroy();
258
+
259
+
260
+
261
+ redirect("controllers_login");
262
+
263
+
220
264
 
221
265
  }
222
266
 
223
-
224
-
225
267
  }
226
268
 
227
-
228
-
229
- ?>
269
+ ?>
230
270
 
231
271
  ```
232
272
 
233
273
  ```ここに言語を入力
234
274
 
275
+ //views_login.php
276
+
277
+ <html>
278
+
279
+ <head>
280
+
281
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
282
+
283
+
284
+
285
+ </head>
286
+
287
+ <body>
288
+
289
+
290
+
291
+ <form action="./main" method="post">
292
+
293
+ メールアドレス:<br />
294
+
295
+ <input type="text" name="email" value="<?php echo set_value('email'); ?>" size="30" ><br />
296
+
297
+ パスワード:<br />
298
+
299
+ <input type="password" name="password" size="30" ></input><br />
300
+
301
+
302
+
303
+ <input type="submit" value="送信" ></input><br/>
304
+
305
+ </from>
306
+
307
+
308
+
309
+ </body>
310
+
311
+ </html>
312
+
313
+
314
+
315
+ ```
316
+
317
+ ```ここに言語を入力
318
+
319
+ <head>
320
+
321
+ <meta charset="utf-8">
322
+
323
+ <title>メンバーページ</title>
324
+
325
+ </head>
326
+
327
+ <body>
328
+
329
+
330
+
331
+ <?php
332
+
333
+ if(isset ($yourname)){
334
+
335
+ foreach ((array)$yourname as $data){
336
+
337
+ echo "こんにちは" .$data. "さん";
338
+
339
+ }
340
+
341
+
342
+
343
+ /*if(isset($name_data)){
344
+
345
+ var_dump ($name_data);
346
+
347
+ */
348
+
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+
359
+ ?>
360
+
361
+ <br>
362
+
363
+
364
+
365
+ <a href="./logout" >ログアウト</a>
366
+
367
+ <?php
368
+
369
+ }else{
370
+
371
+ echo 'hello guest';
372
+
373
+
374
+
375
+ ?>
376
+
377
+ <br>
378
+
379
+ <a href="controllers_login/login">login</a>
380
+
381
+
382
+
383
+
384
+
385
+ <?php
386
+
387
+ }
388
+
389
+
390
+
391
+ ?>
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+ </body>
400
+
401
+ </html>
402
+
403
+ ```
404
+
405
+ ```ここに言語を入力
406
+
407
+ views_empty_or_error.php
408
+
235
409
  <?php
236
410
 
237
411
  if($this->form_validation->run()==FALSE){
@@ -250,30 +424,32 @@
250
424
 
251
425
  <body>
252
426
 
253
-
427
+ <h3>未入力です </h3>
254
428
 
255
429
  <form action="./main" method="post">
256
430
 
257
431
  メールアドレス:<br />
258
432
 
259
- <input type="text" name="email" size="30" ><br />
433
+ <input type="text" name="email" value="<?php echo set_value('email'); ?>" size="30" ><br />
260
434
 
261
435
  パスワード:<br />
262
436
 
263
- <input type="password" name="password" size="30" ><br />
437
+ <input type="password" name="password" size="30" ></input><br />
264
438
 
265
439
 
266
440
 
267
- <input type="submit" value="送信" ><br/>
441
+ <input type="submit" value="送信" ></input><br/>
442
+
268
-
443
+ </form>
269
-
270
-
271
-
272
-
444
+
445
+
446
+
273
- <?php
447
+ <?php
274
448
 
275
449
  }else{
276
450
 
451
+
452
+
277
453
  ?>
278
454
 
279
455
  <html>
@@ -288,23 +464,31 @@
288
464
 
289
465
  <body>
290
466
 
467
+
468
+
291
469
  <h3>正しいデータを入れてください。 </h3>
292
470
 
293
471
  <form action="./main" method="post">
294
472
 
295
- メールアドレス:<br />
473
+ メールアドレス:<br />
296
-
474
+
297
- <input type="text" name="email" value="<?php echo set_value('email'); ?>" size="30" ><br />
475
+ <input type="text" name="email" value="<?php echo set_value('email'); ?>" size="30" ><br />
298
-
476
+
299
- パスワード:<br />
477
+ パスワード:<br />
300
-
478
+
301
- <input type="password" name="password" size="30" ><br />
479
+ <input type="password" name="password" size="30" ></input><br />
302
480
 
303
481
 
304
482
 
305
- <input type="submit" value="送信" ><br/>
483
+ <input type="submit" value="送信" ></input><br/>
484
+
485
+
486
+
306
-
487
+ </body>
488
+
307
-
489
+ </html>
490
+
491
+ </from>
308
492
 
309
493
 
310
494
 
@@ -312,98 +496,12 @@
312
496
 
313
497
  }
314
498
 
315
- ?>
499
+ ?>
500
+
501
+
316
502
 
317
503
  ```
318
504
 
319
- ```ここに言語を入力
320
-
321
- <!DOCTYPE html>
322
-
323
- <html lang="ja">
324
-
325
- <head>
326
-
327
- <meta charset="utf-8">
328
-
329
- <title>メンバーページ</title>
330
-
331
- </head>
332
-
333
- <body>
334
-
335
-
336
-
337
- <?php
338
-
339
- if(isset ($yourname)){
340
-
341
- foreach ((array)$yourname as $data){
342
-
343
- echo "こんにちは" .$data. "さん";
344
-
345
- }
346
-
347
-
348
-
349
-
350
-
351
-
352
-
353
-
354
-
355
-
356
-
357
-
358
-
359
-
360
-
361
- ?>
362
-
363
- <br>
364
-
365
-
366
-
367
- <a href="./logout" >ログアウト</a>
368
-
369
- <?php
370
-
371
- }else{
372
-
373
- echo 'hello guest';
374
-
375
-
376
-
377
- ?>
378
-
379
- <br>
380
-
381
- <a href="controllers_login/main">login</a>
382
-
383
-
384
-
385
-
386
-
387
- <?php
388
-
389
- }
390
-
391
-
392
-
393
- ?>
394
-
395
-
396
-
397
-
398
-
399
-
400
-
401
- </body>
402
-
403
- </html>
404
-
405
- ```
406
-
407
- 最初にloginにいくときは、$this->form_validation->run()==FALSE
408
-
409
- になるのでviewloginのif中にいきます。次に何かしら間違ったデータでも適当に入れるとvalidationはtureになるので、elseに行って、正しいデータを入れてくださいと出ます。しかし、再度空白のまま送信した時にもelseに飛びたいのですが、どうすればいいでしょうか。今の状態だとvalidationがfalseになるので最初に戻ってしまいます。一回だけifを適用させたいというか・・・。validationを飛ばすようなことってできないでしょうか。
505
+ viewのフォームの入力画面の2つのファイルを一つにまとめることってできるでしょうか?
506
+
507
+ 最初のloginの方は必ず出るのでそのままですが、空白の場合やエラーの場合をもう一つのファイルに書きましたが、1つにすることが難しいです。なぜなら最初のフォームの状態と未入力で送信した場合の判別が難しいからです。フォームは同じなので複数のファイルに分割することはできれば避けたいのですができますか?

3

コード間違い

2017/03/26 05:01

投稿

destrudo
destrudo

スコア143

test CHANGED
File without changes
test CHANGED
@@ -30,15 +30,7 @@
30
30
 
31
31
 
32
32
 
33
- public function login(){
33
+
34
-
35
-
36
-
37
-
38
-
39
- $this->load->view('views_login');
40
-
41
- }
42
34
 
43
35
  public function main(){
44
36
 
@@ -386,7 +378,7 @@
386
378
 
387
379
  <br>
388
380
 
389
- <a href="controllers_login/login">login</a>
381
+ <a href="controllers_login/main">login</a>
390
382
 
391
383
 
392
384
 

2

説明追加

2017/03/26 03:14

投稿

destrudo
destrudo

スコア143

test CHANGED
File without changes
test CHANGED
@@ -414,4 +414,4 @@
414
414
 
415
415
  最初にloginにいくときは、$this->form_validation->run()==FALSE
416
416
 
417
- になるのでviewloginのif中にいきます。次に何かしら間違ったデータでも適当に入れるとvalidationはtureになるので、elseに行って、正しいデータを入れてくださいと出ます。しかし、再度空白のまま送信した時にもelseに飛びたいのですが、どうすればいいでしょうか。今の状態だとvalidationがfalseになるので最初に戻ってしまいます。一回だけifを適用させたいというか・・・。
417
+ になるのでviewloginのif中にいきます。次に何かしら間違ったデータでも適当に入れるとvalidationはtureになるので、elseに行って、正しいデータを入れてくださいと出ます。しかし、再度空白のまま送信した時にもelseに飛びたいのですが、どうすればいいでしょうか。今の状態だとvalidationがfalseになるので最初に戻ってしまいます。一回だけifを適用させたいというか・・・。validationを飛ばすようなことってできないでしょうか。

1

説明追加

2017/03/26 02:40

投稿

destrudo
destrudo

スコア143

test CHANGED
File without changes
test CHANGED
@@ -414,4 +414,4 @@
414
414
 
415
415
  最初にloginにいくときは、$this->form_validation->run()==FALSE
416
416
 
417
- になるのでif中にいきます。次に何かしら間違ったデータでも適当に入れるとvalidationはtureになるので、elseに行って、正しいデータを入れてくださいと出ます。しかし、再度空白のまま送信した時にもelseに飛びたいのですが、どうすればいいでしょうか。
417
+ になるのでviewloginのif中にいきます。次に何かしら間違ったデータでも適当に入れるとvalidationはtureになるので、elseに行って、正しいデータを入れてくださいと出ます。しかし、再度空白のまま送信した時にもelseに飛びたいのですが、どうすればいいでしょうか。今の状態だとvalidationがfalseになるので最初に戻ってしまいます。一回だけifを適用させたいというか・・・。