#javascript #php #jquery #ajax
#javascript #php #jquery #ajax
Вопрос:
Итак, после проверки формы с помощью Jquery я хотел бы знать, действительны ли имя пользователя и пароль. Если это так, он должен перенаправить на другую страницу, иначе я хочу найти способ показать ее пользователю. На данный момент я действительно в замешательстве. Вот код jquery:
$(document).ready(function(e) {
$('.error').hide();
$('#staffLogin').submit(function(e) {
e.preventDefault();
$('.error').hide();
uName = $('#staff_username').val();
pWord = $('#staff_password').val();
if(uName == ''){
$('#u_error').fadeIn();
$('#staff_username').focus();
return false;
}
if(pWord == ''){
$('#p_error').fadeIn();
$('#staff_password').focus();
return false;
}
$.ajax({
type : 'POST', url : 'staff_access.php', data : 'uName=' uName 'amp;pWord=' pWord,
success: function(html){
if(html == 'true'){
window.location = 'staff_page.php';
}
else{
$('#val_error').fadeIn();
}
}
})
});
});
PHP:
<?php
include('admin/config.php');
$username = $_POST['uName'];
$password = $_POST['pWord'];
$conn = mysqli_connect(DB_DSN,DB_USERNAME,DB_PASSWORD,dbname);
if ($conn) {
$qry = "SELECT lastname, firstname, FROM staff_user WHERE username='".$username."' AND pass='".$password."";
$res = mysqli_query($qry);
$num_row = mysqli_num_rows($res);
$row=mysql_fetch_assoc($res);
if ($num_row == 1) {
session_start();
$_SESSION['login'] = true;
$_SESSION['lastname'] = $row['lastname'];
$_SESSION['firstname'] = $row['firstname'];
$_SESSION['username'] = $row['username'];
echo "true";
}
else{
echo "false";
}
}
else{
$conn_err = "Could not connect.".mysql_error();
}
mysqli_close($conn);
?>
ФОРМА:
<form name="staff_login" method="post" action="" id="staffLogin">
<fieldset>
<legend>Staff Login</legend>
<span class="fa fa-user fa-5x"></span>
<br><br>
<input type="text" name="staff_username" id="staff_username" placeholder="Username">
<br><span class="error" id="u_error">Username Required</span><br>
<input type="password" name="staff_password" id="staff_password" placeholder="Password">
<br><span class="error" id="p_error">Password Required</span><br>
<span class="error" id="val_error">Incorrect Username and Password combination</span>
<input type="submit" name="staff_login" value="Login">
</fieldset>
</form>
Комментарии:
1.
showing it
Что показывает?2. с какой проблемой вы столкнулись?
3. отображение сообщения об ошибке пользователю
4. Спасибо всем. Наконец-то это заработало. Хотя мне было интересно, как я мог бы перенести данные из вышеупомянутого php-скрипта на перенаправленную страницу php, например, данные $ _SESSION[ ].
Ответ №1:
Ваши данные ajax отправляются в неправильном формате. Данные POST должны быть отправлены как объект.
$.ajax({
type : 'POST',
url : 'staff_access.php',
data : {
uName: uName,
pWord: pWord
},
dataType: 'text',
success: function(html){
if(html == 'true'){
window.location = 'staff_page.php';
}
else{
$('#val_error').fadeIn();
}
}
});
Также избегайте использования текстов типа «html». Из-за этого вы можете получить ненужные ошибки.
Используйте более подходящие слова, такие как «успех: функция (ответ)»
Ответ №2:
Попробуйте определить тип данных в вашей конфигурации ajax — Тип данных: «html»