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

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

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

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

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

Q&A

解決済

1回答

3028閲覧

[Codeigniter]URLの表示

yclin_tagaya

総合スコア27

PHP

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

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

0グッド

0クリップ

投稿2015/07/16 07:21

初めて質問を致します。
お手柔らかにお願い致します

Codeigniterで管理者ログイン画面作成しています。
無事にログインできたが、
URLは
http://xxx.xxx.com/admin/user_list
のはずだが、
http://xxx.xxx.com/admin/login_validation
のままになっています。

また、user_listに同じ結果が二回繰り返されていますが、それはなぜでしょうか?

lang

1<?php 2defined('BASEPATH') OR exit('No direct script access allowed'); 3 4class Admin extends CI_Controller { 5 6 public function __construct(){ 7 parent::__construct(); 8 9 $this->load->model('Abstruct'); 10 } 11 12 public function login(){ 13 14 $this->load->helper('form'); 15 $this->load->view('admin/login'); 16 17 } 18 19 public function login_validation(){ 20 $this->load->library("form_validation"); 21 22 $this->form_validation->set_rules("account", "アカウント", "required|trim|callback_validate_credentials"); 23 $this->form_validation->set_rules("password", "パスワード", "required|trim"); 24 //エラーメッセージ 25 $this->form_validation->set_message('required', '%sを入力してください。'); 26 27 if($this->form_validation->run()){ 28 $this->validate_credentials(); 29 } else { 30 $this->load->view("admin/login"); 31 } 32 } 33 34 public function validate_credentials(){ 35 36 $admin_account = "admin"; 37 $admin_passwd = "admin"; 38 $check_posted_account = $this->input->post("account"); 39 $check_posted_passwd = $this->input->post("password"); 40 41 if ($check_posted_account == "admin" and $check_posted_passwd == "admin"){ 42 $this->user_list(); 43 } else { 44 $this->form_validation->set_message("validate_credentials", "ユーザー名かパスワードが異なります。"); 45 return false; 46 } 47 } 48 public function user_list(){ 49 50 $data['records'] = $this->db->get('user')->result_array(); 51 $this->load->view('admin/user_list',$data); 52 } 53 54}

設定画面

lang

1<!doctype html> 2<html lang="ja"> 3<head> 4<meta charset="UTF-8"> 5<title>大事なワードは28文字以内に。平均32文字程度に。</title> 6 7</head> 8 9<body> 10 11<?php foreach ($records as $row): ?> 12<table border="1"> 13<tr> 14<td>FB_ID</td> 15<td>FB_NAME</td> 16<td>TYPE</td> 17</tr> 18<tr> 19<td><?=$row['fb_id']?></td> 20<td><?=$row['name']?></td> 21<td><?=$row['type']?></td> 22</tr> 23<?php endforeach; ?> 24</table> 25 26</body> 27</html>

表示画面

lang

1<!doctype html> 2<html lang="ja"> 3<head> 4<meta charset="UTF-8"> 5<title>大事なワードは28文字以内に。平均32文字程度に。</title> 6 7</head> 8 9<body> 10 11<table border="1"> 12<tr> 13<td>FB_ID</td> 14<td>FB_NAME</td> 15<td>TYPE</td> 16</tr> 17<tr> 18<td>XXXXX</td> 19<td>XXXXX</td> 20<td>XXXXX</td> 21</tr> 22</table> 23 24</body> 25</html> 26<!doctype html> 27<html lang="ja"> 28<head> 29<meta charset="UTF-8"> 30<title>大事なワードは28文字以内に。平均32文字程度に。</title> 31 32</head> 33 34<body> 35 36<table border="1"> 37<tr> 38<td>FB_ID</td> 39<td>FB_NAME</td> 40<td>TYPE</td> 41</tr> 42<tr> 43<td>XXXXX</td> 44<td>XXXXX</td> 45<td>XXXXX</td> 46</tr> 47</table> 48 49</body> 50</html>

以上二点の解決策を教えて頂けると幸いです。
どうぞよろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

php

1public function validate_credentials(){ 2 3 $admin_account = "admin"; 4 $admin_passwd = "admin"; 5 $check_posted_account = $this->input->post("account"); 6 $check_posted_passwd = $this->input->post("password"); 7 8 if ($check_posted_account == "admin" and $check_posted_passwd == "admin"){ 9 //redirectしなければそのままuser_listのviewが呼ばれます。 10 //$this->user_list(); 11 redirect('admin/user_list'); 12 } else { 13 $this->form_validation->set_message("validate_credentials", "ユーザー名かパスワードが異なります。"); 14 return false; 15 } 16 }

login_validationにpostされた後
login_validation内でvalidate_credentialsメソッドを呼び出して、
その後user_listをメソッドとして呼び出してしまっています。

その為、遷移させたいのであれば
redirectで遷移させてはいかがでしょうか?

投稿2015/07/16 07:24

編集2015/07/16 07:28
nanndemoiikara

総合スコア775

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

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

yclin_tagaya

2015/07/16 07:37

早速のご回答ありがとうございます! 実はおっしゃった通り、redirectに変更したら、 Fatal error: Call to undefined function redirect() というエラーが出てきました・・・ A PHP Error was encountered Severity: Warning Message: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/ci/application/controllers/Admin.php:43) Filename: core/Common.php Line Number: 573 Backtrace: お忙しい中申し訳ありませんが、 お分かりなりましたら教えていただけたらと思います。 よろしくお願い致します。
yclin_tagaya

2015/07/16 07:48

一番先頭に $this->load->helper('url'); を入れたら直りました。 どうもありがとうございました! 今後とも宜しくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問