【问题标题】:Code Igniter Session not geting any value at index pageCodeigniter 会话在索引页面没有获得任何价值
【发布时间】:2012-07-20 19:54:10
【问题描述】:

我是 Code Igniter 的新手。我的索引页面被命名为 abc_welcome 我在下面的代码

public function index()
{
    $this->load->library('session');
    $login_data = $this->session->userdata('user');

    if($login_data) {
        redirect('/product/product_details');
    }
    else {
                $this->display();
    }
}

所以当一个已经登录的用户点击时,他可以重定向到产品页面。但奇怪的是它没有重定向。

在登录页面,我有相同的代码,它可以重定向。

因此,当用户访问我的 www.abc.com 页面时,它不会重定向(如果已登录)并且会话没有检查数据,但是当单击登录按钮时,他是并且显然会话获得了正确的数据。我希望他第一次重定向....在我的演示站点(我的笔记本电脑)中更奇怪的是索引重定向正在工作!但不在 hostgator.com。

提前致谢。 法内斯

【问题讨论】:

  • 你能在ifelse 条件下回显一些东西,看看有什么回显
  • 回显 $login_data 不显示任何内容.....现在还有一个奇怪的事情,请不要认为我疯了....如果我输入 www.abc.com 它不是重定向,而是如果我把 abc.com 然后它用上面的代码重定向....
  • 你能告诉我你在配置文件中写了什么吗?我的意思是在你的 base_url 中?
  • 加载 url helper 以便重定向可以工作
  • abc_com hmmm 我应该输入www_abc_com.... 那么它对 www_abc_com 和 abc_com 都有效吗(请将 _ 视为 .)

标签: php codeigniter session


【解决方案1】:

感谢大家的支持。

我终于通过 .htaccess 重定向让它工作了。我只是将以下代码放入我的 .htaccess 中,它按预期工作。

   RewriteEngine On
   RewriteBase /
   RewriteCond %{HTTP_HOST} ^www.abc.com [NC]
   RewriteRule ^(.*)$ http://abc.com/$1 [L,R=301]

【讨论】:

    【解决方案2】:

    是的@farness 把$config['base_url'] = 'http://www.abc.com/'; 放在你的config.php 文件中

    【讨论】:

    • yaar 尝试过不工作......如果我使用'www[dot]abc[dot]com';那么 www.abc.com 和 abc.com 都没有重定向。
    • 好的,我想从你这里得到一些信息......你的控制器名称是什么,你的默认控制器是什么?我想知道你在 routes.php 文件中写了什么 $route['default_controller'] = ""; ??
    • $route['default_controller'] = "welcome/abc_welcome";欢迎文件夹下的控制器名称与 abc_welcome 相同
    • 这是正确的,告诉我当你在你的 url 中输入 www.abc.com 时发生了什么?你得到什么错误?
    【解决方案3】:

    根据您的描述,您的代码似乎很好,如果它在您的笔记本电脑上本地运行,那么很可能会话数据没有被正确存储/读取。除了上面的 base_url 之外,您还应该在 /appication/config.php 中验证以下设置:

    1. 如果您的基本网址是 www.abc.com,则应将 $config['cookie_domain'] 设置为 .abc.com(带前导点)
    2. $config['cookie_path'] 为了安全起见,将其设置为“/”
    3. $config['cookie_secure'] 设置为 FALSE(除非您的网站仅使用 https 访问,否则请将此设置为 false

    希望这能让您启动并运行。

    【讨论】:

    • 我已经有了 $config['cookie_prefix'] = ""; $config['cookie_domain'] = ".abc.com"; $config['cookie_path'] = "/"; $config['cookie_secure'] = FALSE;
    • 在我的笔记本电脑 $config['cookie_domain']="" 中。此外,如果我将 abc.com 放在地址栏它正在重定向,但如果 www.abc.com 则不是
    • 无论您在笔记本电脑上运行什么域,都需要在 $config['cookie_domain'] 中进行配置,并且它应该与您的 base_url 变量匹配。
    • hi nageeb ...我的笔记本电脑在实时服务器上出现问题并没有问题,并且设置为“.abc.com”
    • 您的网站实际上是在 abc.com 吗?它应该设置为 .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多