Что должно быть:
1. Js отправляет на php сервер информацию из переменной $login
2. Php подключает базу данных и получает значение пароля для этого логина из таблицы accounts
3. Если значение не найдено - php сервер отправляет true, если найден - false
4. Срабатывает определенный код в js, в зависимости от ответа сервера
Помогите найти ошибку
Js:
$.post('check.php', {'login':login},
function(data) {
if(data == "true"){
var div = document.querySelector("#login");
div.className = "true";
div.innerHTML = "Логин свободен!";
alogin = null;
alogin = true;
}else if(data == "false"){
var div = document.querySelector("#login");
div.className = "false";
div.innerHTML = "Логин занят!";
alogin = null;
alogin = false;
}
});
Check.php
<?php
$login = $_POST['login'];
include ("db.php");
$result = mysql_query("SELECT password FROM accounts WHERE login='$login'",$db);
if(empty($result)){
echo("true");
}else{
echo("false");
}
?>
Во-первых надо экранировать переменные в "" то есть login='{$login}', во-вторых этот код - потенциальная mysql injection, в-третьих mysql_query is deprecated since PHP 5.5, поэтому используйтн mysqli_query (http://php.net/manual/en/mysqli.query.php), в четвертых используйте явное сравнение результата:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$result = $mysqli->query("SELECT * FROM FROM accounts WHERE login='{$login}'");
if($result !== FALSE) {
echo 1;
die;
}
echo 2;
Но конечно правильнее всего было бы использовать PDO:
/* Connect to a MySQL database using driver invocation */ $dsn = 'mysql:dbname=testdb;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password); } catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage(); }
$sth = $dbh->prepare('SELECT *
FROM accounts
WHERE login = ?');
$sth->execute(array($login));
$accounts = $sth->fetchAll();
if(!empty($accounts)) {
echo 1;
die;
}
echo 0;
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости