我正在使用以下代码在按下开始按钮时在文本字段中显示当前系统时间。此代码在FireFox和Chrome中运行良好,但IE 8未显示启动按钮被点击时的时间和日期。如果我点击提交按钮,它会起作用。
请告诉我这里做错了什么:
<form name="form1" action='' method='post'>
<table>
<tr>
<th>
<p>Vendor was contacted at:</p>
<button name="time" >Start</button><br>
<?php
if (isset($_POST['start']))
{
$date_start = date('m-d-Y H:i:s');;
$_SESSION['start'] = $date_start;
}
?>
<br>
<input name="start" type="text" class="textfield" value="<?php echo $_SESSION['start']; ?>"
<br>
</th>
</tr>
<tr>
<th>
<br><input type='submit' name='submit' value='Submit'><br>
</th>
</tr>
</table>
</form>
答案 0 :(得分:3)
您的HTML无效。您已忘记>
<input
<input name="start" type="text" class="textfield" value="<?php echo $_SESSION['start']; ?>">
答案 1 :(得分:3)
除了给出关于输入缺少关闭字符的其他答案之外;不知道会议是否已经开始,我提交以下答案。
首先,你在评论中说它不会抛出任何错误/通知。
&#34; @ Fred-ii-,您建议的代码不会显示任何错误。 - adminhaq 25分钟前&#34;
如果您没有开始会话,那么您没有正确设置错误报告或未配置为&#34;显示&#34;通知。
session_start();
需要驻留在使用会话的所有文件中。如果您尝试将数据传递到另一个页面,那么这也不清楚。
输入本身应该包含类似于:
的内容<b>Notice</b>: Undefined variable: _SESSION in <b>/var/usr/httdocs/folder/file.php</b> on line <b>(line number)</b>
value="<?php echo $_SESSION['start']; ?>"
,所以最好使用三元运算符。
即:value="<?php echo !empty($_SESSION['start']) ? $_SESSION['start'] : ""; ?>"
经过全面测试的代码:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
session_start();
?>
<form name="form1" action='' method='post'>
<table>
<tr>
<th>
<p>Vendor was contacted at:</p>
<button name="time" >Start</button><br>
<?php
if (isset($_POST['start']))
{
$date_start = date('m-d-Y H:i:s');
$_SESSION['start'] = $date_start;
}
?>
<br>
<input name="start" type="text" class="textfield" value="<?php echo !empty($_SESSION['start']) ? $_SESSION['start'] : ""; ?>">
<br>
</th>
</tr>
<tr>
<th>
<br><input type='submit' name='submit' value='Submit'><br>
</th>
</tr>
</table>
</form>
旁注:表单不包含name属性,因此您可以安全地从声明中删除它。
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。
脚注:
session_destroy()
。您可能还需要更改按钮:
<button name="time" >Start</button>
到
<button name="time" type="submit">Start</button>
这是最有可能发生的问题,因为我记得曾经用IE 8我也遇到过同样的问题。
旁注:IE是一个非常挑剔的浏览器。它甚至可能不喜欢<button name="time" >
中的空格,添加type="submit"
是最有可能的解决方案。