2017-07-19 69 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很高兴帮助你:) :) –