if (isset($_POST[“Name”]==null $_POST[“电子邮件”]==null, $_POST[“密码”]==null, $_POST[“电话”]==null)) 这在 php 中有什么问题

if (isset($_POST["Name"]==null $_POST["Email"]==null, $_POST["Password"]==null, $_POST["Phone"]==null)) what is wrong with this in php

提问人:Rezwan safi 提问时间:3/23/2023 最后编辑:Bas HRezwan safi 更新时间:3/29/2023 访问量:120

问:

我有一个数据库,想在元素传递到数据库之前检查元素是否已设置,因为我不想为提到的实体传递 null 值,但在使用此语句时,我发现值在没有检查可用性的情况下传递。

我试图将这些元素传递给数据库,但首先检查了空值,但没有检查它们是否为空值,有时也会出现此错误:

致命错误:无法对表达式的结果使用 isset() (您 可以在 C:\xampp\htdocs 中使用“null !== expression”代替)。在线 3

PHP 数据库 身份验证 null isset

评论

1赞 Professor Abronsius 3/23/2023
isset将接受多个参数,如果任何值返回 false / 空类型值,则返回 false。即:等if( isset($_POST['name'], $_POST['email'], $_POST['phone'] ) ){}

答:

0赞 DarkShade 3/23/2023 #1

isset 函数的工作方式不同,您需要在其中放置一个变量,而不是条件。

例如:

$arr = [
  'a' => 'Hello',
];

$bool = isset($arr['a']) // return true
$bool = isset($arr['b']) // return false

本页详细


让我们尝试编写以下内容来修复代码中的错误。

if (
  !isset($_POST["Name"]) ||
  !isset($_POST["Email"]) ||
  !isset($_POST["Password"]) ||
  !isset($_POST["Phone"])
) {
  // some fields is null, not valid.
}

if (!isset($_POST["Name"], $_POST["Email"], $_POST["Password"], $_POST["Phone"])) {
  // some fields is null, not valid.
}

评论

0赞 DarkShade 3/23/2023
@Rezwansafi 如果答案令人满意,您可以确认并接受。:)
0赞 Sahetmyrat Kakajanov 3/23/2023 #2

如果要防止将值插入到数据库中:null

CREATE TABLE User(
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL
);

此外,在 HTML 文档中使用 required 属性:

<form action="/action_page.php"> 
    <input type="text" id="username" required>  
</form>