Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我不能显示错误消息?_Php_Html_Validation - Fatal编程技术网

Php 为什么我不能显示错误消息?

Php 为什么我不能显示错误消息?,php,html,validation,Php,Html,Validation,当username==来自数据库的username和date==来自数据库的date时,它应该会回显一条错误消息,但会显示成功。我尝试使用“=”,但即使假设数据是正确的,结果也会不断回显错误消息。请帮忙 这是我的密码: if(!empty($_POST['username'])){ $username=$_POST['username']; } else { $username=null;

当username==来自数据库的username和date==来自数据库的date时,它应该会回显一条错误消息,但会显示成功。我尝试使用“=”,但即使假设数据是正确的,结果也会不断回显错误消息。请帮忙

这是我的密码:

    if(!empty($_POST['username'])){

        $username=$_POST['username'];
        }
        else
        {
        $username=null;
        $usererr = "";
        }

     if(!empty($_POST['datepicker'])){
       $date = date('y-m-d', strtotime($_POST['datepicker']));
       }
        else
        {
        $date=null;
        $dateerr = "";
        }

        $mysqli = new mysqli("", "", "", "");

            $stmt = $mysqli->prepare("SELECT username, date FROM booking WHERE username='$username' and date ='$date'");

            $stmt->bind_param("ss", $username, $date); 

            $stmt->execute();

            $stmt->bind_result($cusername, $cdate);
            $stmt->fetch();

        if($cusername == $username && $cdate == $date){
            echo"You have already book this day. Please select another day";
        }
        else{
            echo"Success";
            $chdate = $date;
        }
         if($username && $date && $chdate){

        session_start();

        $mysqli = new mysqli("", "", "", "");

        stmt = $mysqli->prepare("INSERT INTO booking (, , , , )
                            VALUES ('',''");

        $result = $stmt->execute();

        }
        $stmt->close();
        $mysqli->close();
检查这个

$date = date('y-m-d', strtotime($_POST['datepicker'])); 
2017年,这一年将以“17”的形式回归,试试这样

 $date = date('Y-m-d', strtotime($_POST['datepicker'])); 

您应该在查询中使用占位符,而不是变量名
WHERE username=?
您实际上是在尝试引用那里的变量。您尝试过echo date和cdate吗?它们是否完全相等?提示:不要使用“else”来“重置”变量。首先用“空”值定义它们。更干净的代码,不再需要else语句。就我个人而言,我会把一个条件放在一个条件中。没有什么比嵌套条件更混乱的了:)@prozcay做一个小测试。在if条件之前,回显所有变量“$cusername、$username、$cdate、$date”,在比较之前,您将知道这些变量携带的数据是什么,$cdate和$data是否相同?$cname和$name文本是相同的?@prozcay“选择用户名,预订日期,其中用户名=“$username”和日期=“$date”我已经重新编辑了我的代码,它可以工作,但为什么当我选择日期(例如2017-02-02)时,它不能插入数据库?