【发布时间】:2013-11-09 22:03:45
【问题描述】:
我正在编写代码练习 PHP if 和 else 语句 和 表单验证。
基本思想是这样的: 输入姓名、DOB、email 并点击提交按钮后,根据他们输入的 DOB 按钮将他们引导至:
-一个页面告诉他们他们太年轻了,不能喝酒(notwelcome.php)
或
-告诉他们可以点饮料的页面(welcome.php)
(notwelcome.php & welcome.php) 2 个页面是从名为 action.php 的单独文件中提取的,保存如下:
<?php
include('welcome.php');
include('notwelcome.php');
?>
这是我一直在尝试的..但它不起作用。什么都没有发生.. 就好像 if else 代码甚至不存在:(
<?php
if ($_POST['submit']) {
$dob = $_POST['dob'];
if (isset ($_POST['dob'] )> 12/31/1992) {
header("Location: notwelcome.php");
} else {
header("Location: welcome.php");}
}
?>
帮助。我是初学者,我在代码中遇到了一个小问题。
附加信息:
HTML 代码是这样的:
<div style="text-align: center;">
<h2>FORM & PHP</h2>
<h3>WHINE & DINE</h3>
<form action="action.php" method="post">
Full Name: <input type="text" name="name"><br>
Date of Birth: <input type="date" name="dob"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" data-inline="true" value="Submit">
</form>
</div>
</div>
</form>
【问题讨论】:
-
12/31/1992是 12 除以 31 除以 1992...建议您阅读一下 PHP 中的日期 -
您想根据条件包含(异或)PHP 文档吗?如果是这样,尝试在 if 主体中替换包含,但更好的是只执行这些文件中的功能,而不是基于对 if 的评估来包含它们。
-
而且
isset ($_POST['dob'] )> 12/31/1992也不会(严格来说)工作。isset()返回一个布尔值,因此您的比较没有意义。另外我目前想知道你在哪里定义了你的if/else块......在action.php? -
如果 10 个人都在同一天/月/年出生怎么办? (我对这个数字持保守态度)如果这只是一个练习,那没关系,但是如果你要在现实世界中使用它,那么我建议你检查重复的电子邮件地址。跨度>
标签: php html validation if-statement