Javascript $\调用使用React呈现的api时,会话为空

Javascript $\调用使用React呈现的api时,会话为空,javascript,php,session,reactjs,Javascript,Php,Session,Reactjs,上下文: 我有一个用React呈现的api。当我登录并进入管理页面时,我只想看到我自己的内容,由我创建的,只有我自己。为此,我必须检查我的$\u会话['user\u id']是否与数据库中的发布者id匹配。api允许登录用户创建/删除/编辑其帖子。api的结构是: php,其中我们使用多个方法(创建、编辑等)创建了一个名为post的类 create.php、edit.php、read.php等,其中我们创建一个Post对象,并调用所需的函数来执行所需的操作 后者随后在React中的一个组件中被调

上下文: 我有一个用React呈现的api。当我登录并进入管理页面时,我只想看到我自己的内容,由我创建的,只有我自己。为此,我必须检查我的
$\u会话['user\u id']
是否与数据库中的发布者id匹配。api允许登录用户创建/删除/编辑其帖子。api的结构是:

  • php,其中我们使用多个方法(创建、编辑等)创建了一个名为post的类
  • create.php、edit.php、read.php等,其中我们创建一个Post对象,并调用所需的函数来执行所需的操作
  • 后者随后在React中的一个组件中被调用,该组件名为Create.js等,在封装到其他组件中后将被呈现

    $\u会话['user\u id']
    将缺席,直到React完成所有帖子的呈现

    当我在content.php页面上的React容器前面调用echo$\u SESSION['user\u id']时,用户id将正确显示。(我使用页面顶部的
    session.start()


    尝试添加会话_start();在该div内,或者如果不起作用,请定义(“\u SESSION”、$\u SESSION)

    尝试添加会话_start();在该div内,或者如果不起作用,请定义(“\u SESSION”、$\u SESSION)

    我已经找到了问题的原因和解决方案。这是:

    原因:会话变量在api调用中不可用。在那里打开一个会话也不会有帮助。原因可能是api.php文件从未用于显示任何html

    解决方案:创建一个名为User的新类,并为其提供函数get_User_id,该函数将返回以下内容:return json_encode($variableinwhichyousavedsession); 然后转到必须执行4个CRUD函数中任何一个的react类,在componentDidMount中使用$.get(“filename.php”,function{…)。确保使用json.parse获取会话id并将其保存到状态。这样您就可以使用会话id进行操作

    我遇到的一个问题是,当您发送一些输入或按下按钮时,您只能使用$.post。我需要做的是在加载页面时调用它。如果我找到该选项或答案,我将编辑此选项

    编辑:在我的api中处理$\u会话时,似乎我做错了什么。我已经纠正了它,并做了以下操作:

    $product->publisher_id = $_SESSION['user_id'];
    

    这几乎解决了所有问题。

    我找到了问题的原因和解决方案。它们是:

    原因:会话变量在api调用中不可用。在那里打开会话也没有帮助。原因可能是api.php文件从未用于显示任何html

    解决方案:创建一个名为User的新类,并为其提供函数get_User_id,该函数将返回以下内容:return json_encode($variableinwhichyousavedsession); 然后转到必须执行4个CRUD函数中任何一个的react类,在componentDidMount中使用$.get(“filename.php”,function{…)。确保使用json.parse获取会话id并将其保存到状态。这样您就可以使用会话id进行操作

    我遇到的一个问题是,当您发送一些输入或按下按钮时,您只能使用$.post。我需要做的是在加载页面时调用它。如果我找到该选项或答案,我将编辑此选项

    编辑:在我的api中处理$\u会话时,似乎我做错了什么。我已经纠正了它,并做了以下操作:

    $product->publisher_id = $_SESSION['user_id'];
    

    这几乎解决了所有问题。

    我尝试了你的建议,但没有效果。问题是,我已经在页面顶部调用了session_start(),因此它将在整个页面中自动可用。我尝试了你的建议,但没有效果。问题是,我已经调用session_start()位于我的页面顶部,因此它将在整个页面中自动可用。