Получение данных из PHP-скрипта

#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»