Так работает. Но есть замечания по коду, но это после.
<div id="tmenu" class="ui_tmenu">hi</div>
<form id="test" name="login" method="post">
<div class="label"> Логин </div>
<div class="i_a_i">
<input name="name" type="text" class="inp_auth">
</div>
<div class="label"> Пароль </div>
<div class="">
<input name="pass" type="text" class="inp_auth">
</div>
</form>
<button class="btn_auth">Войти</button>
<button class="btn_auth b_a_i">Регистрация</button>
js я использовал больше jquery.
$('.btn_auth').click(function(){
document.getElementById("tmenu").innerHTML='ok';
var msg = $('#test').serialize();
$.ajax({
url: "logina.php",
method: "post",
data: msg,
dataType:"json",
success: function(data) {
$('#tmenu').text(data.status);
},
error: function() { document.getElementById("tmenu").innerHTML='err';
}
});
});
php:
require_once 'dy_functions.php';
if (isset($_POST['name'])){
$login = sanitizeString($_POST['name']);
$pass = sanitizeString($_POST['pass']);
if ($login == "" || $pass == ""){
$error = "Данные введены не во все поля";
}else{
$result = queryMysql("SELECT login,pass FROM customer WHERE login='$login' AND pass='$pass'");
if($result->num_rows == 0){
$error = "Ошибка при вводе пары имя пользователя - пароль";
}else{
$_SESSION['name'] = $login;
$_SESSION['pass'] = $pass;
$error = "все прошло успешно";
}
}
$data = array("status" => $error);
echo json_encode($data);
}
А теперь замечания. Ставьте фигурные скобки на той же строчке пожалуйста, не нужно их выносить в отдельную строку и вам скажут спасибо. Второе, не используйте стандартный драйвер для работы с базой, используйте PDO. И третье, выносите кнопки за пределы формы, если работаете с ajax.