【问题标题】:Fatal error: Cannot use isset, use null expression instead [duplicate]致命错误:无法使用 isset,请改用空表达式 [重复]
【发布时间】:2020-12-29 11:25:52
【问题描述】:

我在尝试提交此表单时收到此错误。

致命错误:不能对表达式的结果使用 isset()(您可以使用“null !== expression”代替) C:\Users\USER\XAMPP\htdocs\contactform\webform.php 上线 3

这是第 3 行:

if(isset($userEmail = $_POST["email"]) && $userEmail = $_POST["email"] != "")

这是整个代码部分:

<?php
    $message_sent = false;
    if(isset($userEmail = $_POST["email"]) && $userEmail = $_POST["email"] != ""){
        if(filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)){
            $userName = $_POST["name"];
            $userEmail = $_POST["email"];
            $messageSubject = $_POST["subject"];
            $message = $_POST["message"];
            $to = "smartvishwa132@gmail.com";
            $body = "";
            $body .= "From: ".$userName. "\r\n";
            $body .= "Email: ".$userEmail. "\r\n";
            $body .= "Message: ".$message. "\r\n";
            mail($to,$messageSubject,$body);
            $message_sent = true;
        }
    }
?>

我该如何解决这个问题?

【问题讨论】:

    标签: php


    【解决方案1】:
    if(isset($userEmail = $_POST["email"]) && $userEmail = $_POST["email"] != ""){
    

    在这里,您将其分配给一个变量,然后在一次调用中检查isset。将其拆分为单独的调用:

    • 检查是否设置
    • 检查是否不是空字符串
    • 根据内置电子邮件验证器对其进行验证
    • 将其分配给变量

    应该是

    if(isset($_POST["email"]) && $_POST["email"] != "") {
        if(filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) {   
            ...
            $userEmail = $_POST["email"];
            ...
    

    【讨论】:

    • 谢谢,它有效,我可以让联系表正常工作。
    猜你喜欢
    • 2016-01-09
    • 2016-12-26
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多