php - 如何将 PHP 对象从一个页面传递到下一个页面两次?

标签 php mysql post get

$ID= $_GET['id'];

<form method="post" action="updateorder.php?id=?"<?php echo htmlspecialchars($ID);?>">

我正在使用 PHP,我可以将 ID 从 index.php 传递到此页面 (openorders)。我想从这个 (openorders.php) 转到另一个页面来更新我的订单 - updateorder.php。我已经找到了如何通过它一次,但之后就再也没有了。你会怎么做?谢谢。

最佳答案

如前所述,使用 session 和作为示例。

旁注:请引用我在下面关于?id=?"“编辑”

  • 将 session 数组分配给 GET 数组,然后为后续页面使用相同的 session 数组。

变量名并不重要,重要的是 session 数组。

首先从您将检索 GET 数组的页面开始:

session_start();

if(!empty($_GET['id'])){
   $ID = $_GET['id'];
}

$_SESSION['id'] = $_GET['id'];

$var_page1 = $_SESSION['id'];
   echo "ID #: " . $var_page1;

然后在下一页:

session_start();

if(isset($_SESSION['id'])){

   $var_page2 = $_SESSION['id'];
   echo "ID #: " . $var_page2;

}

以及随后的页面:

session_start();

if(isset($_SESSION['id'])){

   $var_page3 = $_SESSION['id'];
   echo "ID #: " . $var_page3;

}

引用资料:


旁注:如果您的 GET 数组始终是整数,您可以将 (int) 传递给它以获得更多保护。

$ID = (int)$_GET['id'];

引用:


编辑:(我在测试时注意到的)- 我以 123 为例,是:

$_GET['id'] = 123;
$ID = (int)$_GET['id'];

由于 ?id=?",您的表单需要调整。(额外的 ? 和引号)。

<form method="post" action="updateorder.php?id=?"<?php echo htmlspecialchars($ID);?>">
                                               ^^ extra question mark and quote - delete it

因为这将转换为以下内容(以及 HTML 源代码),即 ? 并添加一个额外的引号,这是您不想要的并且会让您失望。

<form method="post" action="updateorder.php?id=?"123">

需要更改为以下内容:

<form method="post" action="updateorder.php?id=<?php echo htmlspecialchars($ID);?>">

这将在 HTML 源代码中生成以下内容:

<form method="post" action="updateorder.php?id=123">

关于php - 如何将 PHP 对象从一个页面传递到下一个页面两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34624382/

相关文章:

php - 如何使用php更新mysql中相同的项目名称数量

mysql - 使用乘法查询的结果不一样?

php - 如何将 Mysql 插入连接查询更改为 Codeigniter Active Record

Node.js v8.11.1 尝试使用 https 模块 POST 时出现 EPROTO 错误

php - CSV 文件生成错误

php - 突破 if 和 foreach

mysql - 如何在列表中显示当前月份的项目,其中当前月份的日期在新年的 A 和 B 之间

http - 从 Arduino 发送适当的 Post 请求

rest - XPOST 和 XPUT 的区别

php - xpath查询中如何使用多个条件?