首页 > 解决方案 > “登录”脚本混乱情况下的 SQL 查询问题

问题描述

我在使用 WampServer 时遇到了 PHP 问题。我一生中第一次这样想,我真的很困惑,因为我发现的每个示例都根本不起作用,或者我没有得到任何输出。能否请你帮忙?

enter code<?php
require_once "connect.php";

$connection = @new mysqli($host, $db_user, $db_password, $db_name);

//if($connection->connect_error)
//{
//  echo "Nie można połączyć się z bazą danych";
////} else
//{
    $mail = isset('$_POST[mail]');
    $haslo = isset('$_POST[haslo]');

    sql = "SELECT * FROM users WHERE mail='$mail' AND haslo='$haslo'";
    if ($result = @$connection->query($sql))
    {
        $user = $result->num_rows;
        if($user>0)
        {
            $row = $result->fetch_assoc();
            $user =  $row['mail'];

            header('Location:user.php');
            $result->close();
        } else {
            echo"Podałeś złe dane";
        }
    }
    $connection->close();
//  }
?> 

标签: phpsqllogin

解决方案


欢迎来到 SO。

请在代码中找到以下更正:

<?php
require_once "connect.php";

$connection = @new mysqli($host, $db_user, $db_password, $db_name);

//if($connection->connect_error)
//{
//  echo "Nie można połączyć się z bazą danych";
////} else
//{
    $mail = isset($_POST['mail']) ? $_POST['mail'] : ''; // Added ternary operatr and properly placed single quotes.
    $haslo = isset($_POST['haslo']) ? $_POST['haslo'] : ''; // Same as above

    $sql = "SELECT * FROM users WHERE mail='$mail' AND haslo='$haslo'"; // Replaced sql by $sql as pointed out in comments.
    if ($result = $connection->query($sql)) // Removed @ (Error supressor, no need for it.)
    {
        $user = $result->num_rows;
        if($user>0)
        {
            $row = $result->fetch_assoc();
            $user =  $row['mail'];

            header('Location:user.php');
            $result->close();
        } else {
            echo"Podałeś złe dane";
        }
    }
    $connection->close();
//  }
?> 

推荐阅读