在 Codeigniter 上注销

Logout on Codeigniter

我正在使用 Codeigniter,遇到无法注销的问题。以下是我的代码。 控制器 'Login' 具有注销功能。

function logout(){
//session destroy
}

视图 login_view 有一个 link 和 href

<a href="logout">Logout</a>

添加如下路线

$route['logout'] = 'Login/logout';

然而,当点击 link 时,它会重定向到 link http://localhost:8080/po/logout(po是我的目录)

请帮忙,提前致谢。

请试试这个

<a href="<?= base_url()?>logout">Logout</a>

将此添加到 .htaccess 以删除 index.php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L]

确保在你的base_url变量中定义了config.php。 然后试试下面的代码。

<a href="<?php echo base_url . 'logout'; ?>">Logout</a>

配置错误。修复它

$config['base_url'] 应该是

$config['base_url'] = 'http://localhost:8080/po/';

而link应该是

<a href="<?php echo site_url('logout');?>">Logout</a>

site_url() 将比 base_url() 更好地使用您的配置。 base_url 仅应在资产 link 中使用,例如 CSS、JS 等

将你的base_url改成这样

 $config['base_url'] = 'http://localhost/projectName/';

创建一个新文件并粘贴以下代码并将其另存为 .htaccess 在您的根目录中

RewriteEngine on
RewriteCond  !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/ [L,QSA]

这将删除 url

中的 index.php

更改锚标签如下

<a href="<?= base_url('controller/function') ?>">Logout</a>

Controller Function

function logout()
 {
  $this->session->sess_destroy();
  redirect('user');
 }

Menu Link
<li><a href="<?php echo base_url(); ?>user/logout">Logout</a></li>