首页 > 解决方案 > 如何在codeigniter中不使用会话或javascript返回当前页面的上一个

问题描述

我想转到 View 和 Controller 中当前页面的上一个,而不在会话中存储 URL 或使用从缓存加载未更新页面的 javascript

上一页是 users.php 当前页是 editUser.php

这是我当前的代码部分。

我尝试在视图中使用它:

<a href="<?php $_SERVER['HTTP_REFERER'] ?>">Go Back</a>

但它加载相同的页面。

<a href="<?php echo base_url() ?>usersListing">Go Back</a>

还有一件事是在控制器中我使用它来加载上一页:

redirect('usersListing');

有类似redirect_back()内置的吗?

标签: phphtmlcodeigniter

解决方案


您可以传入 GET 参数editUser.php?ref=users.php,因为Referrer它不可靠。你不会有那个内置的。您将需要手动redirect($_GET['ref']). 如果你这样做,你需要确保你不会进入users.php?ref=http://external.url.example.com/

了解对的请求与对的请求editUser.php完全不同users.php。因此,为了使返回具有某种意义,需要在某处定义“先前”。如果您使用 javascript 执行此操作,则您依赖于存储“以前”的历史记录。如果您通过会话执行此操作,则您依靠它来存储“以前的”。因此,如果您不想使用其中任何一个,则需要提出另一种解决方案,因此我建议使用ref参数。您也可以使用 HTTP_REFERER,但同样,您需要验证它不是外部 url。


推荐阅读