我目前正在尝试提高我的PHP技能,我在下面有一个示例,我正在尝试使用它。第一个网页(此处未显示)是一个包含一个字段Name:的表单,然后将其提交到处理表单的另一个页面(如下所示)。
出于某种原因,PHP代码似乎已经过验证,但在运行测试时它没有输出任何内容。第一页上字段的输入名称是“name”,然后将信息发送到下面显示的PHP文件。然后该文件应该比较一天中的时间,然后根据收集的日期信息输出一条消息。它不起作用。
(另外,我知道不推荐使用bgcolor属性,我在网上找到了这个例子)
任何帮助将不胜感激。谢谢,Rob
<!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>
答案 0 :(得分:1)
这是一个工作示例的link。我用文字字符串替换了$_POST['name']
。我还在我本地方框的index.html
中测试了输出,它运行正常。但是,您的示例无法使用您提供的链接。
如果它仍然不适合你,可能会有一个php配置问题在你身上。
更新
我再次访问了您的链接,现在似乎正在运行。
更新
我更新了我的链接以指向一个解决了逻辑错误的解决方案,例如$current>=12
而不是$current==12
。
答案 1 :(得分:1)
正如您所说,您没有看到任何输出,错误很可能位于$current
附近。否则你应该至少看到输出字符串的静态部分。我只看到第二个条件中的一个错误。 $current==12
应为$current>=12
。根据您的时区,这可以解决问题,因为代码不能输出13到18点钟之间的任何内容。
如果这不能解决问题,请尝试使用弯曲的parantheses,以避免在错误使用分号的情况下监控错误。也许你想在if条件之外打印$current
的值并稍微调试一下代码。
编辑:哦,你不应该使用数字作为字符串(例如"19"
)。如果您想要类型安全,可以写$current = (int) date('H');
编辑#2:我刚刚认出了几十条评论并找到了链接。当我输入test
并提交表单时,我会Good evening, test!
。请注意,该脚本使用服务器的时区。我实际上应该看到一个友好的早晨&#34;因为凌晨2点就在这里。