Я создаю небольшую веб-страницу, и я хочу извлечь идентификатор пользователя, чтобы проверить, существует ли учетная запись или нет. Я делаю это, подключаясь к базе данных MySQL и проверяя, существует ли учетная запись. Я очень новичок во всем этом, и знаю только абсолютные основы PHP & MySQL. Вот мой login.php:Получение идентификатора пользователя для входа в систему
login.php
<?php
$server = "fooServer";
$user = "foo";
$pass = "foo";
$db = "newsContent";
$conn = new mysqli($server, $user, $pass, $db);
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
?>
<?php
$email = $_POST['email']; //Taken from my index.php
$password = $_POST['password']; //Taken from my index.php
/*I used this so as to extract the id. I then wanted to
proceed with the procedure if the id existed, and alert the user if it didn't*/
$sql = "SELECT id FROM fooTable WHERE username='$email' && password='$password'";
if ($conn->query($sql) === TRUE) {
echo "
<script>
alert('Login Successful');
window.location.href='news.php';
</script>";
} else {
<script>
alert('Login unuccessful. User account does not exist');
window.location.href='news.php';
</script>";
}
?>
Этот код может выглядеть ужасающе для опытных программистов, которые я понимаю, но, пожалуйста, погоревшей прочь с предложениями.
В чем проблема с этим кодом? –
(1) вы открыты для ввода sql, поскольку используете свои пользовательские данные, не дезинфицируя/используя подготовленные операторы. (2) являются вашими паролями открытого текста? не хорошая идея. (3) вы только проверяете, был ли запрос выполнен успешно, но не проверяйте, вернула ли он строку. – Sean
Попробуйте с именем пользователя ''или 1 = 1 -' –