Что должно быть:
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;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть рандом который видает цифры 0 или 1Нужно между 0 и 1 добавлять блок Angle_Left, а между 1 и 0 Angle_Top как сделать?
В общем суть заключается в создании небольшого приложения, которое подключается к сайту посредством кук и отправляет запросыПо мимо этого...
Проблема такая: после изменения размера формы и добавления пары элементов при запуске программы форма отображается меньше, чем нужноСвойство...
При создании нескольких классов не могу использовать переменные