【问题标题】:How to redirect to my profile page in codeigniter?如何在codeigniter中重定向到我的个人资料页面?
【发布时间】:2018-08-26 21:46:13
【问题描述】:

我在同一页面上有两个表单,一个是注册,另一个是登录,这是我的登录过程代码

public function login() {

    //print_r($_POST);die;
    $this->load->library('session');
    $this->load->library('form_validation');
    $this->form_validation->set_rules('user_name', 'User Name', 'trim|required');
    $this->form_validation->set_rules('pw', 'Password', 'trim|required');
    if ($this->form_validation->run() == FALSE) {
        if (isset($_POST) && ($_POST['login'] == 'Login')) {
            $data['login_errors'] = validation_errors();
            $this->load->view('Public/register', $data);
        }
    } else {
        $this->load->database();
        $where = '';
        $where = array('email' => $_POST['user_name'], 'password' => $_POST['pw']);
        $rec = $this->db->select('*')->from('user')
                        ->where($where)
                        ->get()->result_array();
      if(!empty($rec)){

        $this->session->set_userdata('user',$rec);
        $this->load->view('Public/profile');


      }else{
         $data = array(
                'error_message' => 'Invalid Username or Password'
                );
                $this->load->view('Public/register', $data);
      }

    }
}

登录后的网址是 http://localhost/ci/blog/login 并查看 加载它。它看起来像 profile template

我对 codeigniter 非常陌生。为什么是 url 不改?应该是
http://localhost/ci/blog/profile 但是当我尝试重定向时 重定向(base_url()。'公共/个人资料');它 给出 404 错误。如何将其重定向到
个人资料页面并更改我的网址/个人资料。

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    请按以下步骤操作:

    第 1 步:如果您在本地服务器上开发了数据库驱动的网站,那么您还必须为您的实时网站创建数据库。您可以从您的虚拟主机控制面板创建 MySQL 数据库。

    第 2 步: 使用任何可靠的 ftp 客户端软件(如 filezilla)连接到您的网站 ftp 服务器,并将所有项目文件从本地服务器传输到实时服务器。

    第三步:在你的codeigniter项目中打开位于“/config/database.php”的数据库配置文件并用你的在线网站数据库信息更改数据库访问代码:

    $db[‘default’][‘hostname’] = “localhost“;
    $db[‘default’][‘username’] = “root“;
    $db[‘default’][‘password’] = “123456“;
    $db[‘default’][‘database’] = ” your_project_db“;
    

    第 4 步:在您的 codeigniter 项目中打开位于“/config/config.php”的配置文件,并将 base_url 更改为实时 URL:

    $config[‘base_url’]     = “http://localhost/yourprojectdir/“;
    

    应该是这样的:

    $config[‘base_url’]     = “http://www.yourdomain.com“;
    

    第五步:大功告成。现在从http://www.yourdomain.com检查您网站的所有页面链接和功能

    *** 注意:如果遇到 404 错误,请检查以下内容:

    如果您在项目中使用.htaccess 文件,请再次检查以确保 URL 重写代码对于您的实时服务器是正确的,并且您的服务器启用了 mod_rewrite。 从视图、控制器文件中删除所有硬代码 URL 链接(如果有)并始终使用 base_url() 而不是项目的硬代码 URL 链接。

    【讨论】:

      【解决方案2】:

      显示视图不会更改 CodeIgniter 中的 URI。 URI 由控制器/方法控制,视图由控制器调用。

      这样,您可以让控制器同时调用多个视图(例如,在我的最新项目中,我为页眉、结果和页脚调用视图)

      熟悉模型-视图-控制器范式将是有益的,但在这种情况下不是必需的。请记住,根据经验,您的 URI 将是: http://domain.tld/controller/method/

      通俗地说,这种方式的 URI 将使您更容易知道“哪个部分在做这项工作”,而不管哪个部分处理在屏幕上绘制结果

      【讨论】:

        【解决方案3】:
        redirect('public/login');
        redirect('public/regstration');
        

        【讨论】:

          【解决方案4】:

          代替

          $this->load->view('Public/profile');
          

          使用

          redirect('Public/profile);
          

          【讨论】:

            【解决方案5】:

            首先你应该学习 CodeIgniter URL Helper

            首先加载助手$this->load->helper('url');

            然后

            redirect('Your_Controller_name/function_name');
            In Your Case - redirect('Public/profile'); 
            

            如果您的 controller 名称是 Public 并且 function 名称是 profile

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-09-10
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-02-28
              相关资源
              最近更新 更多