有没有更好/替代的方法将变量传递给页面而不是PHP?

时间:2011-08-15 17:13:42

标签: php mysql

我正在构建一个非常简单的类似脚本的组件,以便在假期中用于学习目的。我在下面发布的是显示交易的代码,您可以选择购买它。当您单击“购买”时,您将转到checkout.php,其中还显示有关所请求产品的一些信息。 的 deal.php

$dealid = (int)$_GET["id"];

$query = "SELECT * FROM products WHERE id = $dealid LIMIT 1";
$row = mysql_fetch_array(mysql_query($query));

echo $row['name'];
echo '<br>';
echo '<a href="checkout.php?id='. $row['id'] .'">buy</a>';

checkout.php

$dealid = (int)$_GET["id"];

$query = "SELECT * FROM products WHERE id = $dealid LIMIT 1";
$row = mysql_fetch_array(mysql_query($query));

echo $row['name'];

我想学的是,如果我发布的是一个很好的方法。我猜不会。我的目标是通过链接或图像按钮将一些数据从交易传递到结账,我不想传递网址中的标题。

我想到的是http://www.groupon.com/st-johns/,当您点击购买图片时,您将进入下一步,其中包含要求购买交易的信息。

谢谢。

2 个答案:

答案 0 :(得分:1)

将信息存储在$_SESSION变量中。

session_start();
$_SESSION['zipCode'] = "01879";

//zipCode now available on all pages that call session_start()

这允许您存储用户会话生命周期的信息。当会话被销毁(用户导航,关闭浏览器等)时,信息不再存在。或者,您可以使用cookies长期存储此信息。

<强>加成

这些方法比在页面上存储信息更安全,因为用户可以使用DOM检查器修改页面上的DOM元素,而大多数浏览器现在都使用DOM检查器。最安全的方法是使用会话,因为cookie信息也可以更改,但如果您首先验证信息,则相对安全。

答案 1 :(得分:0)

有四种方法可以通过简单的php将数据传递到页面中(假设您没有使用任何PHP框架):

  • POST
  • GET
  • SESSION
  • 缓存

对于你的答案,尝试使用Sessions以我想到的最佳方式。