简单的PHP / MySQL登录脚本 - 总是失败

时间:2015-12-23 09:29:24

标签: php mysqli login passwords

我最近做了一个项目 - 一个在线测验,所以我决定建立一个注册/登录系统。我遇到了登录部分的一些问题,所以我决定从头开始做所有事情,但问题仍然存在。

注册工作正常,我设法注册10个用户没有问题,但当我尝试登录时总是显示 - 错误的登录或密码!虽然一切都输入正确,但我的数据库中没有重复的记录。

以下是与数据库的连接:

<?php
$hostname = "localhost";
$username = "user";
$pass = "pass";
$db = "testdb";

$connect = mysqli_connect($hostname, $username, $pass) or die("Something went wrong!");

mysqli_select_db($connect, $db) or die("Couldn`t connect to database!");
?>`

的login.php

<html>
<head>
<?php
require ('db.php');

if(isset($_POST['login']))
{
    $login = mysqli_real_escape_string($connect, $_POST['login']);
    $password = mysqli_real_escape_string($connect, $_POST['password']);

    if($login == NULL || $password == NULL)
    {
        echo "All fields must be completed!";
        exit();
    }

    else
    {
        $sql = "SELECT * FROM `users` WHERE `login` = '".$login."' AND `password` = '".$password."'";
        $result = mysqli_query($connect, $sql);

        if($sql->num_rows > 0)
        {
            echo "Successfully logged in!";
        }

        else
        {
            echo "Wrong login or password!";
        }
    }
}
?>
</head>

<body>
<div align="center">
<h1>Login</h1>
</div>

<form action="login.php" method="post" align="center">
<input name="login" type="text" placeholder="Login"><br><br>
<input name="password" type="password" placeholder="Password"><br><br>

<input name="login" type="submit" value="Login">
</form>

</body>
</html>

我非常绝望,我一直在寻找解决方案!我真的不知道为什么会这样。我将不胜感激任何帮助!

2 个答案:

答案 0 :(得分:1)

$sql是字符串,您需要对resultSet执行检查

更改

 if($sql->num_rows > 0)

 if($result->num_rows > 0)

答案 1 :(得分:1)

您的提交按钮与您的用户名字段具有相同的名称。

                 NReco.PdfGenerator.HtmlToPdfConverter nPdf = new NReco.PdfGenerator.HtmlToPdfConverter();

nPdf.Size = PageSize.Letter;

PageMargins mar = new PageMargins();
mar.Bottom = -5;
mar.Left = -5;
mar.Top = -5;
mar.Right = -5;
nPdf.Margins = mar;

nPdf.Orientation = PageOrientation.Landscape;
var pdffilename = "D:\Documents"+"filename" + ".pdf";

var htmltext="this testing pdf"
var pdfBytes = nPdf.GeneratePdf(htmltext);
File.WriteAllBytes(pdffilename, pdfBytes);

将其更改为其他内容。

例如:

<input name="login" type="submit" value="Login">

并且还要改变

<input name="loginBtn" type="submit" value="Login">

if($sql->num_rows > 0)