没有数据库选择PHP登录

时间:2018-03-18 11:16:55

标签: php mysql sql login

我正在尝试创建一个Login,但每次我输入我的凭据并点击Login,我都会得到"没有选择数据库" 这是我的PHP代码

def

错误在哪里?

亲切的问候 新手

3 个答案:

答案 0 :(得分:1)

您忘记将变量$ con作为链接参数传递。

mysql_select_db('database', $con) or die(mysql_error());

答案 1 :(得分:0)

使用pdo来防止sql注入。

你弄错了

mysql_select_db('database', $con) or die(mysql_error());

Mysql在php7中不可用。您可以使用mysqli或pdo。

$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully"; 
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }

答案 2 :(得分:0)

我真的建议你使用类,方法,最重要的是 PDO

使用" unescaped"由于SQL注入,mysqli非常不安全和易受攻击。

此外,在将密码存储到数据库中时,使用PHP函数password_hash($password, PASSWORD_DEFAULT)对它们进行哈希处理;这将生成一个可以存储在数据库中的哈希字符串。

使用PDO和password_hash()以及password_verify() 验证密码的SignIn将如下所示:

类数据库(DB)(db.php)

class DB {
    private $error;
    private $db;
    function Conn()
    {
        try {
            $this->db = new PDO('mysql:host=localhost;dbname=phplogin;', 'adminuser', 'adminuser'); //second adminuser is password
            return $this->db; //Returns PDO object
        }
        catch(PDOException $ex){
            return $ex->getMessage();
        }
    }
}

您的login.php (login.php)

require_once('db.php');
$db = new DB(); //Create instance of DB class
$conn = $db->Conn(); //Call Conn() method of DB class

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

$statement = $conn->prepare("SELECT * FROM phplogin where userName = :user");
$statement->execute(array(":user"=>$username)); //For :user in SQL query it enters the username you entered in the login form (bind param)
$row = $statement->fetch(); //Returns the row from DB

//password_verify() checks if the password you've enteres matches the hash in the DB
//$row["pass"] is the hash you get returned from the SQL query aboth
if(password_verify($password, $row["pass"])){
   return true; //Or echo "success"
}
else{
   return false; //Or echo "Wrong username/password"
}

我希望我能帮助你:)。