2017-09-24 79 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

可將鍵值存儲設置爲永久存儲。所以,是的,它們適用於多個頁面。沒有任何內容會自動更新,您必須對其進行編碼以存儲和更新值。每個存儲持久值的其他方法也是如此。 –

相關問題