网页不会等待我的代码完全运行

时间:2017-12-07 08:32:03

标签: javascript php ajax cookies

我需要运行这些命令:

  1. 通过 mypage.php
  2. 中的JS Cookie插件从浏览器中获取Cookie
  3. 通过Ajax和我的PHP代码在 myapi.php
  4. 中检查其值
  5. myapi.php
  6. 中分配一些会话
  7. 现在在许多php vars 中使用这些SESSION值 在 mypage.php
  8. 的页面底部

    但那些许多php vars 由默认值定义,需要更多时间刷新。我可以直接使用PHP的cookie吗?怎么样?

    这是mypage.php中的代码:

    $(window).on('load', function() {
                if (typeof Cookies.get( 'isuser' ) != 'undefined') {
                    $.ajax({
                        url: apiaddress,
                        data: {action: 'verify_user', verifycode: Cookies.get( 'isuser' )},
                        type: 'POST',
                        dataType: 'JSON',
                        async: false,
                        success: function (result) {
                            if (result['status'] == 'OK') {
                                //some code like welcome
                            }
                        }
                    });
                }
            });
    

    这是myapi.php中的代码:

    if (isset($_POST['action']) && $_POST['action'] == 'verify_user') {
            $usercookie = !empty($_POST['verifycode']) ? mysqli_real_escape_string($db,$_POST['verifycode']) : '';
            $usercookie_a = explode('*', $usercookie);
            $username = $usercookie_a[0];
            $uservcode = $usercookie_a[1];
            $query = "SELECT * FROM users WHERE username = '$username' AND vcode = '$uservcode'";
            if ($result = mysqli_query($db,$query)) {
                $row = mysqli_fetch_array($result);
                $counts = mysqli_num_rows($result);
                if ($counts == 1) {
                    $output = [];
                    $output['status'] = 'OK';
                    $output['username'] = $row['username'];
                    $_SESSION['isuseru'] = $row['username'];
                    $_SESSION['isuserp'] = $row['password'];
                    echo json_encode($output);
                    unset($_POST);
                }
            } else {
                echo 'MySQL Connection Error: ' . mysqli_error($db);
            }
        }
    

    现在我想在mypage.php中使用$ _SESSION ['isuseru']和其他人,但是第一次没有这些并且需要刷新。

1 个答案:

答案 0 :(得分:0)

或许您可以通过在mypage.php中附上ajax调用来使用setTimeout,这样您就可以获得这些会话值。

或在jquery ajax中使用超时,如 documentation