Проблема с синтаксисом формы PHP - PullRequest
0 голосов
/ 06 ноября 2011

Я сейчас пытаюсь улучшить свои навыки PHP, и у меня есть пример ниже, с которым я пытаюсь работать.Первая веб-страница (здесь не показана) - это форма, содержащая одно поле Name:, которое затем отправляется на другую страницу (показанную ниже), где форма обрабатывается.

По какой-то причине код PHP выглядит проверенным, но при запуске теста ничего не выводится.Имя ввода для поля на первой странице - «имя», затем информация отправляется в файл PHP, показанный ниже.Затем файл должен сравнивать время суток, а затем выводить сообщение на основе собранной информации о дате.Это не работает, хотя.

(Кроме того, я знаю, что атрибут bgcolor устарел, и я нашел пример в Интернете)

Любая помощь будет оценена.Спасибо, Роб

<!DOCTYPE html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Databases and Webprogramming: Assignment 4.1</title>
</head>
<body bgcolor="#f9f9f9">
<?php

//import form information 
$name = $_POST['name'];

$current = date('H');

if ($current < 12)
echo "Good morning, $name!<br />";

elseif ($current==12 && $current<=18) 
echo "Good afternoon, $name!<br />";

elseif ($current >= "19" && $current <= "24") 
echo "Good evening, $name!<br />";
?>
</body>
</html>

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

Поскольку вы говорите, что не видите никаких выходных данных, ошибка, скорее всего, расположена вокруг $current. В противном случае вы должны хотя бы увидеть статическую часть выходных строк. Я вижу только одну ошибку во втором условии. $current==12 должно быть $current>=12. В зависимости от вашего часового пояса это может решить проблему, поскольку код не может выводить что-либо между 13 и 18 часами.

Если это не помогает, попробуйте использовать изогнутые паратезы, чтобы избежать ошибок, возникающих при неправильной расстановке точек с запятой. Возможно, вы хотите вывести значение $current вне условий if и немного отладить код.

Изменить: Да, и вы не должны использовать числа в качестве строки (например, "19"). Если вы хотите быть в безопасности, вы можете написать $current = (int) date('H');

Редактировать # 2: Я только что узнал эти десятки комментариев и нашел ссылку. Когда я набираю test и отправляю форму, я получаю Good evening, test!. Обратите внимание, что скрипт использует часовой пояс сервера. Я действительно должен увидеть дружеское «доброе утро», так как сейчас 2 часа ночи.

1 голос
/ 06 ноября 2011

Вот ссылка на рабочий пример. Я заменил $_POST['name'] на буквальную строку. Я также проверил вывод в index.html на моем локальном компьютере, и он отлично работает. Но ваш пример не работает по указанной вами ссылке.

Если он все еще не работает для вас, возможно, у вас проблема с настройкой php.

UPDATE

Я снова перешел на вашу ссылку, и теперь она работает.

UPDATE

Я обновил свою ссылку, указав на решение с удаленными логическими ошибками, например, $current>=12 вместо $current==12.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...