首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP登录系统在我点击登录后不显示任何内容

PHP登录系统在我点击登录后不显示任何内容
EN

Stack Overflow用户
提问于 2016-10-07 17:54:07
回答 3查看 275关注 0票数 1

PHP代码如下:

代码语言:javascript
复制
<html>

<?php


$username = $_POST['user'];
$password = $_POST['pass'];


$username = stripcslashes($username);
$password = stripcslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);


mysql_connect("localhost", "root", "");
mysql_select_db("login");

$result = mysql_query("select * from users where username = '$username' and password = '$password'")
 or die ("Failed to query database ".mysql_error());

$row = mysql_fetch_array($result);

$dbusername = $row['username'];
$dbpassword = $row['password'];

if ($username == $dbusername); {
    echo "login succesfull";
}
else
    {
    echo "failed to login"; 
}



?>


</html>

登录页面代码为:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title>Login Page</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<img src="WCCS Logo.png" id="schoollogo">
<div id="frm">
    <form action="process.php" method="POST">
        <p>
            <label>Username: </label>
            <input type="text" id="user" name="user"/>


        </p>

        <p>
            <label>Password: </label>
            <input type="password" id="pass" name="pass" />
        </p>

        <p>

            <input type="submit" id="btn" value="login" />
        </p>
    </form>
</div>

</body>

数据库名为login,表名为users,其中包含id、用户名、密码、名字和姓氏等列,其中包含输入的信息。

由于某些未知的原因,当我点击提交按钮时,它会弹出一个空白页面,尽管url会更改为页面,并且当我添加某种类型的文本时,比如html段落,它会显示出来。

所以它会转到页面,如果需要的话,还有一个css文件,几天前它还在工作,但现在不工作了。我不明白它有什么问题。

这就像PHP甚至没有运行,它只是被忽略了

EN

回答 3

Stack Overflow用户

发布于 2016-10-07 18:03:57

我想澄清几点:

  1. Mysql已被弃用,所以现在使用mysqli和PDO是一个很好的做法。
  2. 根据您的代码,您似乎没有在数据库中存储加密密码。出于安全考虑,您必须对密码进行加密。
  3. 如果您在查询中比较用户名和密码,为什么还要在PHP代码中再次进行比较。

请尝试以下代码:

代码语言:javascript
复制
<?php
    $con=mysqli_connect("localhost","root","","login");

    $username = $_POST['user'];
    $password = $_POST['pass'];
    $username = stripcslashes($username);
    $password = stripcslashes($password);
    $username =  mysqli_real_escape_string($con, $username);
    $password =  mysqli_real_escape_string($con, $password);

    $result = mysqli_query($con, "select * from users where username = '".$username."' and password = '".$password."'") or die ("Failed to query database ".mysqli_error());

    $row = mysqli_fetch_array($result);

    if (!empty($row)) {
        echo "login succesfull";
    }
    else{ echo "failed to login"; }
?>
票数 3
EN

Stack Overflow用户

发布于 2016-10-07 17:58:52

代码语言:javascript
复制
$dbusername = $row['username']
$dbpassword = $row['password']

这些也应该改变

代码语言:javascript
复制
$dbusername = $row['username'];
$dbpassword = $row['password'];     

白色页面(打开了错误)很好地表明您遗漏了其中之一:()[]{};。

这一行有一个额外的';‘。因此,请更改以下内容:

代码语言:javascript
复制
 $result = mysql_query("select * from users where username = '$username' and password = '$password'");
 or die ("Failed to query database ".mysql_error());       

要这样做:

代码语言:javascript
复制
  $result = mysql_query("select * from users where username = '$username' and password = '$password'")
 or die ("Failed to query database ".mysql_error());          

文化坑是password = '$password'"); or die

票数 2
EN

Stack Overflow用户

发布于 2016-10-07 18:11:40

几个问题/糟糕的做法...

1:不要在数据库中以明文形式保存密码。使用像hash+md5这样的加密技术。

2:不要使用mysql。请改用mysqli或PDO。-> http://php.net/manual/de/book.mysqli.php -> http://php.net/manual/de/book.pdo.php

3:一些逻辑:看看您的SQL查询。您正在从用户名和密码与用户输入的值相对应的用户中进行选择。那么,这意味着什么呢?如果查询找到一个条目,数据将自动正确,因为如果输入了错误的密码,语句将不会返回任何数据,因此If语句是不必要的。通过这样做:

代码语言:javascript
复制
$dbusername = $row['username']
$dbpassword = $row['password']

(顺便说一句,;在这两行末尾缺少)您只是将从数据库返回的数据赋值给变量。但这只是逻辑,$dbusername将始终对应于$username,因为正如我所说的,您只是以这种方式处理SQL语句。

我认为您是编程新手,或者至少是PHP新手。我真的建议你看看mysqli和谷歌的一些登录系统,看看这些例子,然后重写你的代码。

顺便说一句,我不知道你对会话有什么了解,但我很确定你登录时会启动一个会话,所以这也是你可以谷歌搜索的另一个关键字。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39914414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档