Parse.com PHP不';t在注册或登录后让用户保持会话状态

Parse.com PHP不';t在注册或登录后让用户保持会话状态,php,parse-platform,Php,Parse Platform,因此,我将Parse.com与PHP一起用于我的用户系统,但它没有按预期工作。当我调用signUp()方法时,新用户成功地保存在Parse DB中并登录,但是如果我导航到另一个页面ParseUser::getCurrentUser()似乎无法获取当前用户。同样的情况也发生在ParseUser::logIn()方法中。以下是我的部分代码: <?php require 'vendor/autoload.php'; use Parse\Par

因此,我将Parse.com与PHP一起用于我的用户系统,但它没有按预期工作。当我调用
signUp()
方法时,新用户成功地保存在Parse DB中并登录,但是如果我导航到另一个页面
ParseUser::getCurrentUser()
似乎无法获取当前用户。同样的情况也发生在
ParseUser::logIn()方法中。以下是我的部分代码:

<?php

            require 'vendor/autoload.php'; 

            use Parse\ParseClient;

            ParseClient::initialize('*, *, *');

            use Parse\ParseUser;
            use Parse\ParseException;
            use Parse\ParseSessionStorage;

            function showForm() {
                echo "
                <form action='user.php' method='POST'>
                    Όνομα (χωρίς #)<br />
                    <input type='text' name='name' required><br /><br />
                    Κωδικός πρόσβασης<br />
                    <input type='password' name='password' required><br /><br />
                    <input type='submit' name='login' value='Σύνδεση'> <input type='submit' name='register' value='Εγγραφή'>
                </form>
                ";
            }
            if ($_SERVER['REQUEST_METHOD'] == "POST") {
                if (isset($_POST['login'])) {
                    try {
                        $user = ParseUser::logIn($_POST['name'], $_POST['password']);
                        echo "<a href='add.php'>Continue</a>";
                        $currentUser = ParseUser::getCurrentUser();
                        echo $currentUser->getUsername();
                    } catch (ParseException $error) {
                        echo "Error: " . $ex->getCode() . " " . $ex->getMessage();
                        showForm();
                    }
                } else if (isset($_POST['register'])) {
                    $user = new ParseUser();
                    $user->set("username", $_POST['name']);
                    $user->set("password", $_POST['password']);

                    try {
                        $user->signUp();
                        echo "Εγγραφήκατε επιτυχώς!";
                        $currentUser = ParseUser::getCurrentUser();
                        echo $currentUser->getUsername();
                    } catch (ParseException $ex) {
                        echo "Error: " . $ex->getCode() . " " . $ex->getMessage();
                        showForm();
                    }
                }
            } else {
                showForm();
            }
        ?>

问题是我忘了放
会话启动()之后
要求“vendor/autoload.php”
在我需要会话的每个页面中。

当你说“似乎无法获取当前用户”时,它是否获取了任何内容?请注意,这可能不相关,但您确实应该终止输入字段,例如
。它当前不是有效的HTML。如何检查?脚本在该点终止。在这种情况下,在
catch(ParseException$error)
之后添加一个常规的
catch
,然后查看出了什么问题。恐怕它什么都没有捕获。我告诉过你,注册/登录成功,但问题是会话。下面是一个更详细的解释