Я пытаюсь настроить и настроить простой вход в аккаунт; Тем не менее, при запуске моей функции входа в систему, я, кажется, продолжаю нажимать «Неудачный вход в систему».
Я использовал функцию var_dump, пытаясь найти проблему, и увидел, что var_dump($row['username']); die;
возвращал NULL. Я чувствую, что проблема может быть связана с моим mysql_query
или же mysql_fetch_array
,
Любая помощь с благодарностью.
<?php
$host = 'localhost';
$database = 'database_name';
$username = 'username';
$password = 'password';
// Create connection
$conn = mysql_connect($host, $username, $password);
// Check connection
if ($conn->connect_error) {
die('Connection failed: ' . $conn->connect_error);
}
echo 'Connected successfully. ';
mysql_select_db($database) or die('Unable to select database. ');
$signIn = $_POST['signIn'];
function signIn() {
// Start session
session_start();
// Variables
$ID = $_POST['username'];
$Password = $_POST['password'];
if (!empty($ID)) {
$query = mysql_query('SELECT * FROM `signin` WHERE username = "$ID" AND password = "$Password"');
$row = mysql_fetch_array($query, MYSQL_ASSOC);
// Troubleshooting
var_dump($row['username']); die;
if (!empty($row['username']) AND !empty($row['password'])) {
$_SESSION['username'] = $row['password'];
echo "Successful login. ";
} else {
echo "Unsuccessful login. ";
}
}
}
if(isset($signIn)) {
signIn();
}
?>
Ниже приведен скриншот текущей структуры таблицы базы данных.
Проблема в переменной интерполяции:
mysql_query('SELECT * FROM `signin` WHERE username = "$ID" AND password = "$Password"');
одинарные кавычки не будут расширять $ ID и $ Password до их значений в запросе, вам нужно использовать двойные кавычки:
mysql_query("SELECT * FROM `signin` WHERE username = '$ID' AND password = '$Password'");
Других решений пока нет …