Передача переменной со страницы PHP на страницу Javascript через jQuery.ajax () - PullRequest
0 голосов
/ 03 апреля 2011

По сути, я вызываю страницу (login.php), которая проверяет, проверен ли пользователь и совпадает ли пароль в моем javascript (init.js). Если это так, я отображаю «все хорошо» на странице PHP, которая передается обратно в init.js, где он проверяет, не отображается ли «все хорошо».

Очевидно, что это довольно небезопасно, поэтому я подумывал сделать что-то вроде $ verify_string = md5 (uniqid ($ username)); в файле login.php, но у меня возникают проблемы с выяснением, как передать эту переменную обратно в init.js.

У кого-нибудь есть предложения? Вот что я делаю сейчас:

init.js

    $.ajax({  
        type: "POST",
        url: "login.php",  // Send the login info to this page
        data: str,  
        success: function(msg){  

        $(".status").ajaxComplete(function(event, request, settings){  

         // show 'submit' button
        $('.submit').show();

        // hide ajax loading gif
        $('.ajax-loading').hide(); 

            if(msg == "all-good") {  // login ok?
             var login_response = '<div id="logged-in">' +
                                    '<img src="img/load-bar.gif">' +
                                    '<br><span style="padding-top: 5px; font-size: .9em;">Logging in...</span>'
                                     '</div>';  

            $('a.modalCloseImg').hide();
            // resize container after processing 
            $('#simplemodal-container').css("width","auto");
            $('#simplemodal-container').css("height","auto");

             $(this).html(login_response); // refers to 'status'

            // redirect after 2 seconds
            setTimeout('go_to_private_page()', 2000); 
             }  
             else {  // error?
             var login_response = msg;
             $('.login-response').html(login_response);
             } 
        });   
    }  
    });

login.php

        // checks the entered pw with the hashed pw in the db
    while($row = $stmt->fetch()) {  
        if (crypt($password, $row['hashed_pw']) == $row['hashed_pw']) {

            $_SESSION['username'] = $username;
            $_SESSION['user_id'] = $row['user_id'];
            $_SESSION['redirect'] = $redirect;
            setcookie('username', $username, time()+3600, '/', '', 0, 0);
            setcookie('user_id', $row['user_id'], time()+3600, '/', '', 0, 0);

            // this is what I want to send back:
            $verify_string = md5(uniqid($username));
            echo $verify_string;

                            // this is what is currently being sent back for verification
                            echo "all-good";

            exit();
        } else {
            $errors[] = "Bad username/password combination. Try again.";
        }
    }

1 Ответ

0 голосов
/ 03 апреля 2011

Вы можете использовать массив и затем кодировать в json с помощью следующей функции php:

json_encode

$arr = Array(md5(uniqid("username")), "all-good");
echo json_encode($arr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...