Php URL重定向不总是有效吗?
我正在用PHP和CodeIgniter开发一个Web应用程序,我被卡住了:p 这很难解释,所以我用一个例子来说明 我有正常的代码点火器控制器。在该控制器中,我具有如下功能:Php URL重定向不总是有效吗?,php,codeigniter,redirect,if-statement,Php,Codeigniter,Redirect,If Statement,我正在用PHP和CodeIgniter开发一个Web应用程序,我被卡住了:p 这很难解释,所以我用一个例子来说明 我有正常的代码点火器控制器。在该控制器中,我具有如下功能: <?php public function groups($subdomain ='') { $this->load->library('MyLogin'); $user_id = $this->mylogin->logged_in(); if ($subdomai
<?php
public function groups($subdomain ='') {
$this->load->library('MyLogin');
$user_id = $this->mylogin->logged_in();
if ($subdomain == '') {
.....
} elseif ($subdomain == 'create') {
.....
} elseif ($subdomain == 'join') {
.....
} elseif ($subdomain == 'leave') {
.....
} elseif ($subdomain == 'assign') {
.....
} else {
.....
}
}
echo header("Location: /user/login");
5分钟前,这很有效。现在我创建了一个新的子域“assign”
现在,如果我没有登录并尝试连接到以下URL之一,我总是会被重定向
localhost/user/groups
localhost/user/groups/2
localhost/user/groups/create
localhost/user/groups/join
localhost/user/groups/leave
但是如果我连接到
localhost/user/groups/assign
他尝试加载此页面(由于$user\u id为空,因此无法工作)。
为什么。。。这会发生吗
关于Teifun2在用户登录时使用$\u会话。。。!因此,即使在刷新和页面更改之后,他也将重新登录。。!空值不会通过。我建议您通过以下方式修改logged_in()函数:
echo header("Location: /user/login");
为此:
header("Location: /user/login");
exit;
我认为这会解决问题。回音与它无关,它只是多余的。
header()
没有返回值echo header(…)
完全没有意义。请记录,您使用的$subdomain
不是子域,而是子目录。@MarcB-Ups:P谢谢会改变这一点,(但并不能解决我的问题)@DanLugg是的:P我来自瑞士,所以我不总是能得到正确的词抱歉,问题是不要一直登录,你是我的英雄:你能解释一下为什么这样做吗?我的意思是为什么它适用于其他3个子目录而不适用于assign?header()函数只会使PHP向浏览器发送一个头值,分配一些值。在某些情况下,这是“位置”值,表示浏览器应重定向到其他位置。在代码级别,header()函数不像return语句,因此它后面的代码将继续执行。由于您通常希望位置头是页面加载的终点,因此最好在任何位置头之后退出。