我用PHP创建了一个小形式验证器并且遇到了一些问题。 我的观看文件在这里:
<form action="" method="post">
<?php if( isset($status) ) : ?>
<p class="notice"><?php echo $status; ?> </p>
<?php endif; ?>
<ul>
<li>
<label for="name">Your Name : </label>
<input type="text" name="name">
</li>
<li>
<label for="email">Your Email : </label>
<input type="text" name="email">
</li>
<li>
<input type="submit" value="Sign Up">
</li>
</ul>
</form>
这是我的小控制器:
<?php
require 'index.tmpl.php';
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$name = trim($_POST['name']);
$email = trim($_POST['email']);
if (empty($name) || empty($email)) {
$status = "Please provide a name and a valid email address";
}
echo $name;
}
?>
现在发生的事情是,当我打开页面并将表单字段留空并提交时,它只是重新加载,不会回显任何内容。
答案 0 :(得分:1)
<form action=""
指向将提交表单的位置。如果为空白,则将表单提交回自身。
<form action="yourLittleController.php" method="POST">
使用更多信息进行编辑:
在php中,帖子不是POST。示例:https://eval.in/89002
确保你有
method="POST">
而不是
method="POST">
答案 1 :(得分:1)
你想要回复$ status,而不是$ name。
答案 2 :(得分:1)
如何将require
行移至if
以下?
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$name = trim($_POST['name']);
$email = trim($_POST['email']);
if (empty($name) || empty($email)) {
$status = "Please provide a name and a valid email address";
}
echo $name;
}
require 'index.tmpl.php';
?>
答案 3 :(得分:0)
你应该在你的视图文件的表单的action属性中提到你的第二个文件名,比如action =“controller.php”