【问题标题】:Source code doesn't update after PHP redirectionPHP重定向后源代码不更新
【发布时间】:2015-09-25 11:52:16
【问题描述】:

祝你早安,我目前正在经历一个神秘的现象,从昨天开始就让我感到困惑和失眠......:/ 我有一个产品页面site.com/product/name-product/ 这个页面显示正确的信息,当我查看源代码时,一切都很好。 例如,当客户从购物车页面单击产品链接时,它将发送到 site.com/product/name-product/12345 (12345) 作为产品 ID,以显示所选尺寸/颜色。在页面的开头我有以下代码:

<?php
session_start();

$id_product = 1111;

// if the product is being viewed from the cart
if(isset($_GET['id_product'])) { // extracted from url rewriting
    $_SESSION['id_product_cart'] = $_GET['id_product'];
    header("Location: /product/name-product/", true, 301);
    exit();
}

if(!empty($_SESSION['id_prod_ref_cart'])) { // preselect size/color when viewed from cart
    $id_product = $_SESSION['id_product_cart'];
    unset($_SESSION['id_product_cart']);
}

echo $id_product;

?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Title</title>
</head>
<body>

</body>
</html>

问题是重定向后,查看源码时,只显示初始页面的价格和数据:/

我在这里错过了什么吗? :/

提前感谢您的宝贵时间

【问题讨论】:

  • 你可以在使用前开始会话吗??
  • 您提供的少数事实完全脱节。我们不知道所有这些步骤之间发生了什么,它们是如何结合在一起的,或者 90% 的相关代码中发生了什么。
  • 感谢您的及时回复 :) 是的,在使用之前会话已经开始...实际上如果我只是删除重定向,一切正常
  • 你能在'/product/name-product/'这个页面上开始会话吗???
  • @deceze:我不知道你到底需要什么,页面里有很多代码,但我给出了其中最重要的部分,我认为它与重定向有关,也许我只是错过了一些愚蠢的东西!

标签: php url-redirection


【解决方案1】:

天哪,我想我刚刚明白会发生什么!重定向后,当我在chrome中点击“查看源代码”时,实际上它并不仅仅是显示代码而是重新运行脚本并显示1111!我说的对吗?

【讨论】:

  • 是的,这听起来很对。您确实在使用该会话时打破了 HTTP 约定。相同的请求应该产生相同的结果;通过使结果取决于会话的状态,您正在为此投入一把扳手。
  • 您是否可以提出更好的解决方案来实现我想要做的事情?这是重定向到原始 url(没有 ID)并显示所选产品的信息...
    P.S.这只发生在 chrome 上,Safari 工作得很好!
  • 不知道你在这里尝试的究竟是什么。不,请不要试图在 cmets 中详细说明这一点。
  • 好吧,我真的不知道我能解释多少比我已经做过的更多:/这只是一个简单的重定向到原始 URL 并记住要显示的 id_product !
  • 为什么首先要重定向?!每个唯一页面都应该有自己唯一的 URL。重定向到一个内容取决于之前访问过的页面的常见页面……至少可以说是非常不合常规的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-15
  • 1970-01-01
相关资源
最近更新 更多