登录表单上没有输出

时间:2015-03-10 10:08:36

标签: php mysql

这是登录php脚本,我没有得到任何错误或回声,所以我不知道发生了什么。 “*”是我审查这些信息。如果您希望看到实时页面here

<?php
printf("Client library version: %s\n", mysqli_get_client_info());

session_start();

$username = $_POST['username'];
$password = $_POST['password'];
var_dump('test');
if (!empty($username) && !empty($password)){
    echo $username
    echo $password

$connect = mysql_connect("localhost", "atsbusin_atsbusin", "Andrew85") or die ("Failed to connect to DB");
mysql_select_db("atsbusin_users") or die ("failed to select DB");

$query = mysql_query("SELECT * FROM users WHERE username='$username'");
$numrows = mysql_num_rows($query);
    if ($numrows != 0)
        {
            while ($row = mysql_fetch_assoc($query))
            {
                $dbusername = $row['username'];
                $dbpassword = $row['password'];
            }

                if ($username == $dbusername && $password == $dbpassword)
                {
                    echo "Login Success!";
                    $_SESSION['username'] == $dbusername;
                } else {
                    echo "Incorrect password!";
                }

        } else {
            die("invalid username, check the spelling or register that name");
        }

}
    echo 'something'
?>

这是最终的工作代码,感谢所有帮助过的人!现在让我切换到mysqli并做出建议的安全措施(有一种感觉我会回来☺)

<?php

session_start();

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

$connect = mysql_connect("localhost", "atsbusin_atsbusi", "Andrew85") or die ("Failed to connect to DB");
mysql_select_db("atsbusin_users") or die ("failed to select DB");

$query = mysql_query("SELECT * FROM users WHERE username='$username'");
$numrows = mysql_num_rows($query);
            while ($row = mysql_fetch_assoc($query))
            {
                $dbusername = $row['username'];
                $dbpassword = $row['password'];

            }

            if ($username == $dbusername && $password == $dbpassword)
            {
                echo "Login Success!";
                $_SESSION['username'] = $dbusername;
            } else {
                echo "Incorrect password!";
            }
?>

3 个答案:

答案 0 :(得分:1)

您的脚本中存在一些php语法错误。

您错过了以下行的分号,更新了代码并设置了显示错误,以查看是否还有其他错误

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

答案 1 :(得分:1)

这不会回应任何事情并且不会给你一个错误的唯一方法是如果用户名存在且密码不匹配那么它将通过:

if($numrows != 0){

}

尝试将var_dump('test');放入IF语句中,看看它是否显示了什么。

之后你也没有;
$username = $_POST['username']
$password = $_POST['password'] 

将其更改为:

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

一些额外的说明:

  1. 你可能想要一个else左右:die("Do not leave username and/or password field blank");
  2. 不要使用mysql,自PHP 5.5.0起,它将被弃用,并将在以后删除。
  3. 您对MYSQL注入非常开放
  4. 修改

    如果您填写用户名和密码并且两者都不匹配,它也不会显示错误或回显

答案 2 :(得分:1)

您的代码有一些语法和逻辑错误。

1)您在变量分配时错过;

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

2)您未在&&声明中使用if(),但有两个$

if ($username == $dbusername && $password == $dbpassword) {

3)您在==而非作业($_SESSION)上使用了比较(=)。

$_SESSION['username'] = $dbusername;
笔记
  • 检查密码是否与查询本身的数据库中的密码匹配(加密后)
    • 根据您当前的逻辑,它建议您以纯文本格式存储密码。这是 BIG NO-NO
  • 您对SQL注入非常开放