Почему я не могу сделать правильный вход - PullRequest
0 голосов
/ 30 декабря 2018

Я уже сделал регистрационную форму, и все идет хорошо.Теперь я пытаюсь войти в систему, но у меня ничего не получается.

log1.html

    <!DOCTYPE html>
<html>
<head>
<title>RegPage</title>
</head>
<body>

<form action ="log2.php" method="post">
email: <input type="text" name ="email">
<br/>
password: <input type="password" name="password">

<input type = "submit" value = "insert">

</form>

</body>
</html>

log2.php

    <?php
$servername = "localhost";
$username = "root";  
$password = "";  
$databasename = "pilot"; 

$conn = new mysqli($servername, $username, $password,$databasename);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";

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

$comparepass="SELECT password FROM dbinvestor where email=@email";

if ($comparepass==$password)
{
  echo 'logged in !';
}
else
{
    echo '      oops';
}

header ("refresh:10;url=log1.html");

?>

БД: Изображение БД

независимо от того, что я ввожу в текстовое поле, вывод всегда:

успешно подключился, упс

Почему он всегда "идет"в противном случае также, если пароль и адрес электронной почты верны?

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

Вы можете попробовать это:

$comparepass="SELECT * FROM dbinvestor where email='$email' and password='$password'";
$compare_exe=$this->conn()->query($comparepass);  //use your db link
$num_rows=$compare_exe->num_rows;  //get row counter, if exist will return 1 else 0
if($num_rows>0){
echo 'logged in !';
}else{
echo 'opps';

}
0 голосов
/ 30 декабря 2018

Вы определяете запрос SQL, но фактически не запускаете его для своей базы данных ...

$comparepass="SELECT password FROM dbinvestor where email=@email";

if ($comparepass==$password)
{
    echo 'logged in !';
}

Вам необходимо выполнить запрос и получить результат, чтобы сравнить его с опубликованным значением.Вот фрагмент кода, который демонстрирует, как действовать, используя параметры связывания (заявление об отказе: кажется, что вы храните чистый пароль в базе данных ... просто нет).

$sql="SELECT 1 FROM dbinvestor where email=? and password=?";

$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $email, $password);
$stmt->execute();
$result = $stmt->get_result();
if (!$result) {
    echo 'error: ' . $conn->errno . ' - ' . $conn->error)
} else {
    if ($result->num_rows == 1) {
        echo 'logged in !';
    } else {
        echo '      oops';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...