2017-09-24 78 views
0

我想在给定的场景中访问变量$i,因为它是递增的变量,它会在订单后更改值。那么我怎么能在任何其他页面重复使用它。更多的告诉我,如何在没有会话的多个页面上使用任何“变量/变量最后的值”。当会话更新时,会话更新变量值,如果是,比如何?有很多方法可以做到这一点?如何在不断更改其值的情况下访问多个PHP页面上的变量或变量值

<?php include ('header.php'); 

    if(isset($_POST['order'])) 
    { 
     $user_id = $_SESSION['id']; 
     $date  = date('Y-m-d H:i:s'); 
     $username =$_SESSION['username']; 
     mysql_query("INSERT INTO tborder(user_id,`date`,username) VALUES('$user_id','$date','$username')") or die(mysql_error()); 
     $i = mysql_insert_id(); 
     if($i >0) 
      for($l=0;$l<count($_POST['product_id']);$l++) 
      { 
       $product_id = $_POST['product_id'][$l]; 
       $quantity = $_POST['quantity'][$l]; 
       $price  = $_POST['price'][$l]; 
       $discount = $_POST['discount'][$l]; 
       $amount  = $_POST['amount'][$l]; 
       $username = $_SESSION['username']; 
       $user_id = $_SESSION['id']; 


     mysql_query("INSERT INTO tborderdetail(order_id,product_id,quantity,price,discount,amount,username,user_id) VALUES('$i','$product_id','$quantity','$price','$discount','$amount','$username','$user_id')")or die(mysql_error()); 
       header('location:order.php'); 
      } 
    } 

    ?> 
+0

你将不得不使用一些持久性存储,如文件系统或数据库。 – Calimero

+0

@Calimero有没有解决方案直接访问该值? – Student

回答

0

Cookies!

通过在每次更改值时将变量值存储在cookie中,可以在整个域中的多个页面上使用该变量。

尽管cookie过期时间需要考虑,但如果该值将存在整个会话中,那么将其存储在会话cookie中(直到浏览器关闭)将会很有用。

希望它有帮助!

+0

有没有其他方法可以直接访问多个页面上的变量或变量存储值? – Student

+0

我担心没有。您将需要某种存储空间,您可以从中保存数据并访问它。 –

+0

你会再给我一个好感吗? – Student

0

如何在没有会话的多个页面上使用任何“变量/变量上次值”。

PHP变量在页面请求之间“丢失”,除非您将它们存储在会话中。如果你不想使用会话来存储数据有很多的选择:GET或POST变量页面之间

  • 传递值。任何错误和价值都会“丢失”,因为它不会永久存储。用户可以自己查看和更改该值。
  • 存放在饼干。用户再次可以看到并自己更改该值。
  • 关系数据库,例如, MySQL,PostgreSQL。创建一个表来存储和查询跨页面所需的值。
  • 键值存储,例如, Redis,memcache。定义一个密钥并根据需要读取/写入该值。

,并会会议更新时,其变化

只有当你把它存储在会话,并更新变量值。每当您在$_SESSION阵列中设置新值时,只要会话处于活动状态,它就会在页面中保持不变。

+0

键值适用于多个页面?并会自动更新?而饼干是一个不平衡的方式? – Student

+0

可将键值存储设置为永久存储。所以,是的,它们适用于多个页面。没有任何内容会自动更新,您必须对其进行编码以存储和更新值。每个存储持久值的其他方法也是如此。 –

相关问题