2017-07-19 150 views
0

我對「test.php」有以下表單。在php中重置會話變量

<?php 
session_start(); 
if(isset($_POST['ph'])) 
    if(isset($_POST['submit'])) 
     $_SESSION['ph'] = $_POST['ph']; 
?> 
<!doctype html> 
<html lang="en"> 
    <body> 
    <form method="POST" action="order.php" id="custphoneform"> 
     <label for="PhoneNumber">Enter Phone Number:</label> 
     <input type="number" name="ph" required> 
     <input type="submit" value="Submit" name="submit"> 
    </form> 
    </body> 
</html> 

的「order.php」看起來是這樣的:

<?php 
require 'connection.php'; 
session_start(); 
if(isset($_SESSION['ph'])) 
    echo ($_SESSION['ph']); 
?> 

我第一次加載"test.php"和輸入電話號碼它完美的作品,給我上"order.php"正確的輸出,但第二次,"order.php"給了我第一次輸入的值,即使我輸入了不同的值。我刷新了頁面,結果相同。

我關閉了文件並重新加載了它,仍然是相同的值。爲什麼它會這樣做,如何糾正?我希望會話在每次輸入新號碼時都會更改值,這種情況不會發生。

+1

你發佈到'order.php'但在'test.php'中設置會話變量。 –

+1

'test.php'上的php片段不可能做任何事情,除非你回到'test.php'的其他地方 - 表單動作指向'order.php',因此所有會話設置都應該在該頁面上 – RamRaider

回答

1

更改新值SESSION在你的order.php頁面如下圖所示: -

<?php 
require 'connection.php'; 
session_start(); 
if(!empty($_POST['ph'])){ 
    $_SESSION['ph'] = $_POST['ph']; //change value of phonenumber inside SESSION 
} 
if(!empty($_SESSION['ph'])){ 
    echo ($_SESSION['ph']); 
} 
?> 

而且改變這樣test.php代碼: -

<?php 
session_start(); // no need to do other stuff 
?> 
<!doctype html> 
<html lang="en"> 
    <body> 
    <form method="POST" action="order.php" id="custphoneform"> 
     <label for="PhoneNumber">Enter Phone Number:</label> 
     <input type="number" name="ph" required> 
     <input type="submit" value="Submit" name="submit"> 
    </form> 
    </body> 
</html> 
+0

Karan Gupta很高興幫助你:) :) –