【发布时间】:2017-04-17 20:31:56
【问题描述】:
上下文:
我有一个用 React 渲染的 api。当我登录并进入管理页面时,我只想看到我自己的内容,由我创建,并且只有我自己。为此,我必须检查我的 $_SESSION['user_id'] 是否与数据库中的 publisher_id 匹配。该 api 允许登录用户创建/删除/编辑他的帖子。 api的结构是:
- post.php,我们在其中创建了一个名为 Post 的类,其中包含多种方法(创建、编辑等)。
- create.php 、 edit.php 、 read.php 等,我们在其中创建一个 Post 对象并调用我们需要的函数来执行所需的操作。
后者然后在 React 中称为 Create.js 的组件之一中调用,然后将在封装在其他组件中后呈现。
$_SESSION['user_id'] 在 React 完成渲染我们所有的帖子之前是不存在的。
当我在 content.php 页面上的 React 容器之前调用 echo $_SESSION['user_id'] 时,user_id 将正确显示。 (我在页面顶部使用session.start())
<?php
echo $_SESSION['user_id']; // works
//Container for our React component.When calling the api inside the
//component, $_SESSION['user_id'] is empty
echo "div id='app'></div>";
echo $_SESSION['user_id']; //works again, $_SESSION['user_id'] is the same as before
问题:
当 React 从我的数据库中呈现内容时,如果在我的 SQL 查询中我写“... WHERE p.publisher_id=" . $_SESSION['user_id'] .”...“这意味着 $_SESSION['user_id'] 不再存在,则不会显示任何内容。
关于如何修复它的任何建议?
【问题讨论】:
标签: javascript php session reactjs