这与我的问题有关,这与在多个php文件中使用变量有关。Ian Hildebrand和Transcendental都提供了有用的建议。
我想让用户在两个视图View_A和View_B中的一个或两个视图中选择,比如说,从表单中选择早上6点,并查看与该小时有关的数据。如果用户想要查看早上7点的数据,那么他/她只需重新加载表单并选择该时间点并提交。
现在发生的是变量$hour停留在上午6点。因此,用户可以选择他/她想要的任何时间,但仍然可以获得早上6点的数据。
所以我想要的是,当用户选择新的小时时,该动作结束第一个会话并开始一个新的会话。
下面是表单文件中适用的代码: <form action='view_A.php' method='post'>
<label for 'date'><strong>Select an hour for <?php echo $date; ?></strong>
</label>
<input type="text" name='hour' data-role="datebox" data-options='{"mode":"timeflipbox","minuteStep":60, "overrideTimeFormat": "%H", "overrideTimeOutput": "%H"}' placeholder='click icon to select hour'>
<input type='submit' name='submit' value='submit'>
</form>
</div>
<?php
if(isset($_POST[ 'submit'])) {
$_SESSION[ 'hour']=$ _POST[ 'hour'];
$hour=$ _SESSION[ 'hour']; }
?>
…以及view_A.php
文件中的适用代码session_start();
error_reporting(E_ALL);
include ("db_connect.php");
date_default_timezone_set('America/Toronto');
$date = date('Y-m-d');
$hour = $_SESSION['hour'];
$blink = $_SESSION['hour'];
$date_hour = $date.' '.$hour;
这两个文件都以session_start();
开头,紧跟在php开始标记之后。
我如何修改表单文件,以便当用户选择一个新的小时,当前会话结束,一个新的开始?
代码中没有if(isset())部分。作为动作,表单将直接将用户引导到view_a .php
必须放在View_A.php
session_start();
error_reporting(E_ALL);
include ("db_connect.php");
date_default_timezone_set('America/Toronto');
$_SESSION['hour'] = $_POST['hour'];
$date = date('Y-m-d');
$hour = $_SESSION['hour'];
$blink = $_SESSION['hour'];
$date_hour = $date.' '.$hour;
尽管你可以直接跳过会话
session_start();
error_reporting(E_ALL);
include ("db_connect.php");
date_default_timezone_set('America/Toronto');
$date = date('Y-m-d');
$hour = $_POST['hour'];
$blink = $_POST['hour'];
$date_hour = $date.' '.$hour;
我希望这解决了你的问题