0

在我的代码中,我有一个链接:

 <a href='http://www.anotherpageinmywebsite.com'>Click for the other page</a>

当用户单击此链接时,我需要将值保存到 PHP 会话变量中。我不想使用 Ajax、iframe 和 GET 变量(我不想让用户看到会话变量,因为它是敏感数据),编辑也不想将所有链接放在页面上表格内。

似乎它应该是可能的——因为毕竟,单击链接会生成对 Web 服务器的调用以加载新页面,我不应该能够(以某种方式)添加一些代码到自然的“piggyback”处理链接以将“加载此新网页”请求发布到 Web 服务器?

当用户单击链接以更新 PHP 会话变量(最好不使用 GET 变量、ajax 或 iframe)时,我如何“搭载”这个自然发生的事件序列。

4

2 回答 2

0

如果我们假设您正在使用一些基于 PHP 的框架,并且您有一个根据 URL 为页面提供服务的控制器 - 实际上这很简单。

假设您使用的是 CodeIgniter - 但对于大多数 MVC 来说,逻辑是相同的。

<?php

class Web extends Controller {

  // this will fire when you access http://mysite.com/mypage
  function mypage($encoded_value) {
    $decoded_value = decode($encoded_value);

    // although CI has a different way of doing this
    $_SESSION['mypagesessionvar'] = $decoded_value; 

    $this->load->view('mypage'); // this loads the actual page
  }

}
于 2013-07-27T19:17:50.423 回答
0

我想在用户单击一个回调到 Web 服务器的链接时利用浏览器的默认行为——我想“搭载”该默认行为并发送更新的会话变量。我试图避免额外调用服务器来更新我的会话变量,并且我的要求是“不允许使用 GET 变量”。

最后,我们下注并编写了一个 Ajax 调用来设置会话变量。我们无法弄清楚如何在不使用 GET 变量的情况下“搭载”单击链接的默认行为。

于 2013-07-29T15:05:57.430 回答