使用下面的代码打印正在框中插入的值。但是,在我输入值并单击提交后,没有任何内容正在打印出来。
<html>
<body>
<form action="<?php $_SERVER['PHP_SELF']?>" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
<?php
if(isset($_POST["submit"])) {
$name = filter_input(INPUT_POST, 'name');
$email = $_POST['email'];
echo $name;
echo $email;
}
?>
</body>
</html>
关于下面我尝试了两种情况,因为在简单的一个$ _POST ['email']我收到了警告:
$name = filter_input(INPUT_POST, 'name');
$email = $_POST['email'];
警告:
不要直接访问Superglobal $ _POST数组
我正在使用Netbeans IDE 8.2。
答案 0 :(得分:1)
永远不会设置:
if (isset($_POST["submit"])) {
而是将其更改为:
if (count($_POST) > 0) {
您没有符合name="submit"
的任何元素。此外,我们很多人都使用isset($_POST["submit"])
这是一个不好的做法,不会为其命名。
如果您想检查特定的设置,例如您的情况,则需要执行以下操作:
if (count($_POST) > 0 && isset($_POST["name"]) && isset($_POST['email'])) {
如果您仍希望使用上述设置使代码正常工作,请在此处添加name
和value
:
<input type="submit" name="submit" value="Submit" />
答案 1 :(得分:0)
没有属性名称为'submit'的HTML元素。
将<input type="submit">
替换为<input type="submit" name="submit">
。
不要使用isset($_POST['submit'])
因为它被认为是一种不好的做法。
相反,您可以使用!empty($_POST)
。这样做是被认为是安全的。