这与我的问题here有关,这与在多个php文件中使用变量有关。 Ian Hildebrand和Transcendental都提供了有用的建议。
我想让用户从表单中选择比如早上6点,并在两个视图View_A和View_B中查看与该小时相关的数据。如果用户想要从上午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;
这两个文件在打开php标记后立即以session_start();
开头。
如何修改表单文件,以便当用户选择新的小时时,当前会话结束并开始新会话?
答案 0 :(得分:0)
你永远不会去代码的if(isset())部分。 作为动作,表单将直接将用户引导至Vieuw_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;
我希望这能解决你的问题