Ale*_*duc 2 php redirect codeigniter
我在使用Code Igniter时遇到了一些问题,我觉得有些东西我不明白,因为我无法让我的重定向和标题工作.情况如下:
输入站点时,将调用默认的"home"控制器.
public function initialize()
{
printf("CONSTRUCTION OF HOME CONTROLLER - \n");
// print_r($_SESSION);
//TODO : CONSIDER CREATING A LIBRARY TO AVOID WRITING THIS OFTEN. NOT
// SESSION TROLLING DETECTION
if( isset($_SESSION['banana']))
{
echo "SPLITTING THE TRUTH";
}
// GETTING AS SERIOUS AS GREG
if( !isset($_SESSION['username']))
{
printf("USERNAME IS NOT SET. SETTING UP THE LOGIN PAGE. \n");
redirect('home_invite');
}
else
{
$this->load->view('welcome_message');
}
}
public function index()
{
//INITIALIZING THE PATH USED FOR THIS NAVIGATION
printf("TROLLING THE BEGINNING OF THIS CONTROLLER HOME - ");
$this->initialize();
printf("TROLLING THE END OF THIS CONTROLLER HOME - ");
//TODO : CONSIDER CREATING A LIBRARY TO AVOID WRITING THIS OFTEN
}
Run Code Online (Sandbox Code Playgroud)
索引调用初始化谁验证用户是否已经有一个包含用户名的会话变量.如果是这种情况,我们将继续检查他的权限级别等,并加载相应的视图.那不是问题.
如果会话未启动,我想加载"登录"视图,此处称为"home_invite".我想将他重定向到那个页面.但是,如果我使用此代码,页面将显示404错误.
如果我使用$this->load->view('home_invite')它,它有效,但我不明白,我觉得这不是我想要它做的.
为什么重定向不能在这种情况下工作?
使用该redirect()方法重定向到URL.因此,您需要传递一个完整的URL(因为它使用header()根据RFC1 for HTTP1.1需要完整URL的功能).
这意味着你可以使用
redirect(site_url('home_invite'));
Run Code Online (Sandbox Code Playgroud)
这会将您的用户重定向到http://www.yoursite.com/home_invite
这意味着您必须拥有一个名为home_invite的控制器,因为您无法从URL加载视图.同样,您可以在现有控制器中创建一个方法,并使用routes.php文件将/ your_controller/home_invite伪装成/ home_invite
该site_url()函数也是您已经包含使用的URL帮助程序的一部分redirect().
如果你不想使用site_url(),你也可以像这样硬编码URL
redirect('http://www.yoursite.com/home_invite');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11511 次 |
| 最近记录: |