使用CodeIgniter重定向问题

时间:2014-09-12 16:31:10

标签: php codeigniter redirect

我有一个登录脚本,当登录成功时,我希望它将它们重定向到主页(welcome_message.php)由于某种原因它没有将我链接到这个文件,而是抛出404并说{{ 1}}

我正在使用CodeIgniters redirect()函数进行更改。

"The requested URL "http://localhost/musiclear/index.php/views/welcome_message" cannot be found or is not available. Please check the spelling or try again later."

4 个答案:

答案 0 :(得分:0)

尝试将完整的URI传递给重定向函数,如下所示:

redirect(base_url('views/welcome_message'));

当然假设你的控制器是Views而页面(功能)是welcome_message

答案 1 :(得分:0)

您无法直接将浏览器重定向到view文件,但您可以将其重定向到controller,这将显示您的观看次数。在您的示例中,您尝试访问CodeIgniter(位于您本地主机上的musiclear文件夹中)Controller,名称为views,并调用welcome_message()方法从中。但是如果你的真的想要展示它你必须有下一个结构:

  musiclear/
       Application
            Controllers
                   views.php

views.php内容:

<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Views extends CI_Controller {

    function index() {
        // default action, required method
    }

    function welcome_message(){
        $this->load->view('welcome_message');
    }
 }
?>

答案 2 :(得分:0)

实际上当您在CodeIgniters中进行重定向时,它会查找您的控制器,您应该通过控制器的功能加载视图。 e.g:

 function validate_credentials() {

        $this->load->model('membership_model');
        $query = $this->membership_model->validate();

        if ($query) { // if users credentials validated
            $data = array('usernames' => $this->input->post('username'), 
            'is_logged_in' => true);

            $this->session->set_userdata($data); //set session data
            redirect(base_url().'home/welcome'); //redirect to home function
        } else { //incorrect username or password
            $this->index();
        }
    }

    function welcome(){
   $this->load->view('welcome_mesage');
}

答案 3 :(得分:0)

可能忘了redirect()函数仅适用于控制器类,即。 让你拥有welcome课程,这样你就可以使用

重定向它
redirect('wolcome');

您还可以重定向控制器类的功能

如果要重定向到page控制器类的welcome函数,那么你将写入

redirect('welcome/page');