У меня есть простая таблица базы данных «учетные записи» с 3 записями: «пользователь», «пропуск» и «идентификатор». Идентификатор является целым числом.mysqli_fetch_array() ничего не получает
Я пытаюсь получить идентификатор из таблицы и сохранить его в $ _SESSION ['id'], но мне не повезло.
Вот код:
session_start();
// Checks to see if the input account is valid
$result = mysqli_query($con,"SELECT * FROM accounts
WHERE user='$_POST[user]'
AND pass='$_POST[pass]'");
//Check to see if account exists
if(!mysqli_fetch_array($result))
{
$_SESSION['loggedin'] = false;
}
else
{
$_SESSION['loggedin'] = true;
$_SESSION['user'] = $_POST['user'];
$id = mysqli_fetch_array($result);
$_SESSION['id'] = $id['ID'];
echo $_SESSION['id'];
}
//header('Location: index1.php/');
?>
Ничто не выходит из эхо $ _SESSION [ 'ID']. Я попытался выполнить echo $ id ['ID'], и он тоже не работает.
На моей странице index1.php мне удается получить информацию с одним и тем же битом кода, за исключением того, что $ result не использует предложения WHERE и AND для оператора select.
Что вы получаете, когда считаете возвращенные строки? mysqli_num_rows ($ result) – dgig
Прежде чем делать что-либо еще, прочитайте [SQL injection bugs] (http://bobby-tables.com/) и воспользуйтесь функцией mysqli [SQL placeholders] (http://bobby-tables.com/php). То, что вы делаете здесь, демонстрирует безрассудно вредные привычки и вызовет у вас серьезные проблемы. Вы ** не можете ** помещать данные '$ _POST' в запрос без экранирования. – tadman
Мне известно о возможных пробелах в моем кодировании, и я прочитаю предоставленную ссылку, но по состоянию на данный момент я пытаюсь понять концепцию, прежде чем погрузиться слишком глубоко в проблемы защиты. Я ценю помощь. –