Система входа в PHP не будет работать правильно - PullRequest
0 голосов
/ 30 апреля 2018

по какой-то причине мой скрипт входа в php продолжает возвращать недопустимые результаты, я использую PHPMYADMIN для обработки базы данных и mysqli для подключения, однако всякий раз, когда я отправляю данные, хотя в HTML-форме значения всегда возвращают false, даже если правильное имя пользователя и комбинированный пароль работает.

<?php
$username = $_POST["username"];
$password = $_POST["password"];
$con = mysql_connect("localhost","cnathanielwcol","","login");
if(! $con){die('Connection Failed'.mysql_error());}

$result = mysqli_query("SELECT * FROM login");
$row = mysql_fetch_array($result);
var_dump($row);


if ($row["username"]==$username) {
  echo "Correct Username<br>";
} else {
  echo "Wrong Username<br>";
}


if ($row["password"]==$password) {
  echo "Correct Password<br>";
} else {
  echo "Wrong Password<br>";
}

echo "<br><br>Username Submited Via HTML: <b>" . $username . "</b>";
echo "<br>Password Submited Via HTML: <b>" . $password . "</b>";
?>

Ответы [ 4 ]

0 голосов
/ 30 апреля 2018

Не могли бы вы использовать mysqli_ *, пожалуйста? У вас могут быть проблемы с вашей HTML-формой, может быть

0 голосов
/ 30 апреля 2018

Во-первых, , вам нужно выбрать одну строку, а не все строки в вашей таблице, это можно сделать, указав предложение WHERE, в настоящее время вы пытаетесь сравнить массив значения в строку, которая должна выдавать ошибку, если включено сообщение об ошибке.

Во-вторых , вы смешиваете разные API, mysql_* не mysqli_*.

В-третьих , не похоже, что вы хешируете ваши пароли, пожалуйста, сделайте это.

В-четвертых , используйте подготовленные операторы , кажется, что вы все еще учитесь, поэтому было бы лучше начать использовать их сейчас.

Материал для чтения

Шпаргалка для хранения паролей OWASP

Шпаргал OWASP по безопасности PHP

0 голосов
/ 30 апреля 2018

MySQL устарела из-за использования новой версии PHP

$con = mysqli_connect("localhost","cnathanielwcol","FKxIHHoWWtd4Q","login");
0 голосов
/ 30 апреля 2018

Изменение

$con = mysql_connect("localhost","cnathanielwcol","FKxIHHoWWtd4Q","login");

С

$con = mysqli_connect("localhost","cnathanielwcol","FKxIHHoWWtd4Q","login");

Вы пытаетесь получить данные с помощью mysqli, и ваше соединение с базой данных установлено mysql

Ваш полный код:

$username = $_POST["username"];
$password = $_POST["password"];
$con = mysqli_connect("localhost","cnathanielwcol","","login") or die('connection is not establised'.mysqli_error($con));

$result = mysqli_query($con,"SELECT * FROM login WHERE username='$username' AND password='$password'");
$rowCheck=mysqli_num_rows($result);
if ($rowCheck>0) {
    // fetch all data
    //start session
    echo "you are logged in ";
}
else{
    echo 'username or password did not match';
}

Используйте хэш-пароль. Ваш код не является безопасным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...