【问题标题】:Is there a way to pass variables except sessions and get variables?有没有办法传递除会话之外的变量并获取变量?
【发布时间】:2011-05-21 14:23:47
【问题描述】:

我的问题不是那么容易描述......对我来说:-)所以请对我宽容。

我有几种查看列表的方法。这意味着,有一些可能性如何来创建显示我的列表的视图。这可以很好地与并行打开的浏览器选项卡配合使用,并且是理想的。

如果我单击列表中的一个项目,我会进入该项目的详细视图。

在这个视图中,我想知道链接是从哪种类型的列表中“调用”的。第一个问题是,引用者总是相同的,第二个问题是:我不应该将 get 变量附加到 url。 (它也不应该是提交的表单)

如果我将它存储到会话中,我也会在并行选项卡中工作时覆盖我的会话参数。

什么是仍然实现我的目标的最佳方法,即知道上一个列表处于哪种模式。

【问题讨论】:

  • “我不应该在 url 中附加一个 get 变量。(它也不应该是一个提交的表单)”为什么不呢?
  • 拥有用户友好的网址(无获取)并能够在所有浏览器中使用后退按钮(无表单)。
  • 你应该看看mod_rewrite -- httpd.apache.org/docs/current/mod/mod_rewrite.html。
  • 如果我无权访问服务器配置?

标签: php url parameter-passing


【解决方案1】:

你需要使用 something 来区分一个页面和另一个页面,否则你的服务器不会知道你在问什么。

您可以发布您的请求:这将隐藏 URL 参数,但会妨碍您的后退按钮功能。

您可以获取您的请求:这将使您的网址更加“丑陋”,但您应该能够通过传递简短、简洁的标识符(例如 www.example.com/listDetail?id=12)来解决这个问题

如果你可以设置 mod_rewrite,那么你可以 GET 请求到一个像 www.example.com/listDetails/12 这样的 url,而 apache 会在后台重写请求,让它看起来更像 www .example.com/listDetails?id=12 但用户永远不会看到它——他们只会看到原始、干净/友好的版本。

您说您无权访问服务器配置——我认为这是因为您在共享服务器上? 大多数 共享服务器已经安装了 mod_rewrite。虽然 apache vhost 通常是放置重写规则的最合适位置,但它们也可以放在您想要控制的任何目录中的 .htaccess 文件中。 (有时服务器配置禁用此功能,但通常在共享主机上启用)查看创建.htaccess 文件以及如何使用mod_rewrite

【讨论】:

    猜你喜欢
    • 2014-01-30
    • 2021-02-21
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    相关资源
    最近更新 更多