HTML — IE8 не отображает эхо php

Я использую следующий код для отображения текущего системного времени в текстовом поле, когда нажата кнопка запуска. Этот код отлично работает в 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>

2

Решение

  • Прочитайте мой ответ полностью, включая «Сноски».

Помимо другого ответа о пропущенном закрывающем символе для ввода; не зная, был ли сеанс запущен или нет, я отправляю следующий ответ.

Во-первых, вы сказали в комментариях, что он не выдает никаких ошибок / уведомлений.

«@ 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-источник; это такой же хороший инструмент, как и любой другой, когда дело доходит до отладки.
3

Другие решения

Ваш HTML-код недействителен. Вы забыли > на ваше <input

<input name="start" type="text" class="textfield" value="<?php echo $_SESSION['start']; ?>">
3

По вопросам рекламы [email protected]