首页 > 解决方案 > 在此 if 语句 (PHP) 中,此代码中仅 echo 有效

问题描述

$con = mysqli_connect('localhost', 'login', '*mypass*', 'login');

$check = "SELECT * FROM users";

$rs = mysqli_query($con, $check);

if(isset($_POST['submit'])) {

            $username = strtolower($_POST['username']);

            $password = hash('sha512', $_POST['password']);

            if($username && $password){
                while($data = mysqli_fetch_array($rs)){
                    if($username == $data[1]){
                        if($password == $data[2]){
                            session_start();
                            $_SESSION['loggedin'] = true;
                            $_SESSION['username'] = $username;

                            $exp = time() + (60*60*24*365);
                            setcookie('user', $username, $exp);
                            echo "test";
                            header("location: dash.php");
                            exit();
                        } else {
                            error("Incorrect Password");
                        }
                    }
                }
            } else {
                error("Please insert your username and password");
            }
        }

在这段代码中,if 语句 ( if($password == $data[2]) ) 的内容没有正确运行:只有 echo 函数有效,其他都无效!

这个问题有解决方案吗?

我使用 PHP 7.0

邮政:

标签: phpif-statement

解决方案


这不是答案,而是尝试检查会话是否有效。

将以下代码放在它自己的文件中:

<?php
session_start();
if(isset($_SESSION['test_counter'])) {
    $_SESSION['test_counter']++;
} else {
    $_SESSION['test_counter'] = 1;
}    

echo $_SESSION['test_counter'];

它应该首先显示 1,然后在刷新时递增整数。


推荐阅读