Я использую следующий код для отображения текущего системного времени в текстовом поле, когда нажата кнопка запуска. Этот код отлично работает в 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>
Помимо другого ответа о пропущенном закрывающем символе для ввода; не зная, был ли сеанс запущен или нет, я отправляю следующий ответ.
Во-первых, вы сказали в комментариях, что он не выдает никаких ошибок / уведомлений.
«@ Fred-ii-, код, который вы предложили, не отображает никаких ошибок. — adminhaq 25 минут назад»
Если вы не запустили сеанс, значит, вы не правильно настроили создание отчетов об ошибках или не настроены на «отображение» уведомлений.
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>
Sidenote: формы не содержат атрибута name, поэтому вы можете безопасно удалить его из своего объявления.
добавлять Отчет об ошибках в начало вашего файла (ов), который поможет найти ошибки.
<?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.
Sidenote: IE очень требовательный браузер. Это может даже не понравиться пространство в <button name="time" >
пока добавляю type="submit"
это наиболее вероятное решение.
Ваш HTML-код недействителен. Вы забыли >
на ваше <input
<input name="start" type="text" class="textfield" value="<?php echo $_SESSION['start']; ?>">