【问题标题】:PHP: trouble passing objects through session [duplicate]PHP:通过会话传递对象时遇到问题[重复]
【发布时间】:2020-04-24 20:08:22
【问题描述】:

我正在构建一个程序,让用户在购物车中输入三件商品,将他们带到一个页面,该页面显示这些商品已添加到购物车中,并有一个指向购物车的链接,其中列出了用户之前输入的商品。这是我的代码: 表格:

<h3>Add Products To Cart</h3>

<form action="add_to_cart.php" method="post">
    Item 1: <input type="text" name="item1"><br /> 
    Item 2: <input type="text" name="item2"><br />
    Item 3: <input type="text" name="item3"><br />
    <input type="submit">
</form>

确认添加成功的页面:

<?php

session_start();
$username = "Hubert";
$item1 = "cookies";
$item2 = "cream";
$item3 = "water";

if( ( strcasecmp($_POST["item1"], $item1 ) == 0 && strcasecmp($_POST["item2"], $item2) ) == 0 )
{
    $_SESSION["logged"] = true;
    $_SESSION["ID"] = $username;

    echo "Items added to the cart". "<br />";
    echo "<a href=\"list_items_in_cart.php\">Show items in the cart</a> ";
}
else
{
    echo "<a href=\"login.php\">Try again</a>";
}

?>

列出购物车中商品的页面:

<?php

session_start();



if( isset($_SESSION["logged"]) && $_SESSION["logged"] ){

  echo "Item 1: ".$_POST["item1"]."<br />";
  echo "Item 2: ".$_POST["item2"]."<br />";
  echo "Item 3: ".$_POST["item3"]."<br />";
}

?>

前两个脚本工作正常,但是在第三个脚本中我有一个错误:“未定义的索引:项目 1,2,3”。有人可以提供解决方案吗?

【问题讨论】:

  • 您希望如何将 POST 数组传递到列表页面?
  • 恕我直言,您有太多未解决的问题。

标签: php object authentication session


【解决方案1】:

这是因为您的$_POST 数组在您提交表单后仅填充了值。因此,您可以在 add_to_card.php 页面上获得您的值,而不是在您链接到的下一页上,这是不可能的。
您需要在这里做的是将您的项目存储在数据库中,或者(可能您想要这个)将它们存储在会话本身中。然后,在您的第三页(即“购物车中有什么”)上使用 $_SESSION,而不是 $_POST superglobal。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    相关资源
    最近更新 更多