php - 如何在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()
内置的吗?
解决方案
您可以传入 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。
推荐阅读
- php - VueJS - 也在文本区域的开头和结尾提交换行符
- javascript - Javascript单例模式初始化值没有进入html文件
- redis - redis key expire show -1 即使设置为 900 秒
- mysql - MySQL - 我的请求的具体条件
- c# - 从 UWP 应用程序请求对文件夹的永久访问权限
- javascript - 在jquery的同一部分内定位不同的元素
- excel - Sub 在 VBA 中终止后,无模式的用户窗体会发生什么?
- excel - Excel vba删除Word中的空行
- xml - XSD:如何正确使用从抽象类型派生的类型的元素?
- java - Spring 返回 401 而不是 200 状态