Когда я убираю dataType: 'json'
, то success:
работает, а иначе нет. Так как
$("#log-form").serialize()
тоже работает, но в самом файле login.php
ничего не происходит.
Как мне возвратить json-строку
. Я планировал сделать так: если значение этой json-строки
равно "false-pass"
, то сделать определенный кусок js-кода
В общем, две проблемы:
как сделать json-запрос
? (я слышал что-то о $.getJson
);
и почему не отправляются данные в файл login.php
?
$('#log-form').submit(function(e) {
e.preventDefault();
$.ajax({
url: 'login.php',
type: 'POST',
dataType: 'json',
data: $("#log-form").serialize(),
success: function(){
console.log($("#log-form").serialize());
}
})
.done(function() {
console.log("success");
});
});
login.php:
<?
session_start();
if ($_SESSION['logged-in']) {
echo 'Доступ заборонено!';
exit;
}
else {
require_once 'database.php';
$connect = mysqli_connect($host, $user, $pass, $db);
if (isset($_POST['log-submit-n']) && !$_SESSION['logged-in']) {
$login = $_POST['log-login-n'];
$pass = $_POST['log-pass-n'];
$sql = "SELECT * FROM `users` WHERE `login` = '$login'";
$res = mysqli_query($connect, $sql);
$row = mysqli_fetch_array($res);
$row_count = mysqli_num_rows($res);
$id = $row['id'];
if ($row_count == 1) {
$db_pass = $row['password'];
$db_login = $row['login'];
if ($login == $db_login && $pass == $db_pass) {
$_SESSION['logged-in'] = true;
$_SESSION['login'] = $login;
$_SESSION['id'] = $id;
}
else if ($login == $db_login && $pass!=$db_pass) {
$error = "false-pass";
json_encode($error);
}
}
else {
$error = "none-acc";
json_encode($error);
}
}
mysqli_close($connect);
}
?>
Так как Вы посылаете содержимое формы вручную (ajax-ом), то value
кнопки с name="log-submit-n"
в посылаемые данные не включается. Ваш серверный скрипт обернут в условие, проверяющее наличие в запросе $_POST['log-submit-n']
. Этого ключа в запросе нет - ответ пустой, потому что Вы ничего в ответ не пишите.
Спрашивающему на заметку:
Удачно, что у меня сегодня хорошо работают телепатические способности. В такие вопросы следует включать html.
Update
В случае неудачной авторизации:
echo json_encode(array('result' => 'error', 'message' => 'explain what was wrong', data => NULL));
В случае удачной авторизации:
echo json_encode(array('result' => 'success', 'message' => 'All is good.', data => your_data));
В js:
success: function(data) {
console.log(data);
if (data.result != "success") {
// show error information to the user
alert(data.message);
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как на PHP сделать замену текста **bold** на <b>bold</b>, __underline__ на <u>underline</u> и --str-- на <strike>str</strike>
здравствуйте, есть ли смысл использовать opcache для php, если при этом в конфиге не указывать полное кэширование php файлов?
здравствуйте, есть сайт, и поддомен, поддомен используется для тестирования обновлений, которые затем дописываются в каталог основного сайта