PHP表单语法问题

时间:2011-11-05 22:54:43

标签: php forms

我目前正在尝试提高我的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>

2 个答案:

答案 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点就在这里。