如何在React中使用PHP Session?

3

我有一个关于React中的PHP会话的问题。 我需要使用React和PHP创建一个在线商店,目前正在编写购物车。 为此,我必须使用PHP会话。 由于无法使用JWT,因此我的问题如下:

  • 如果我无法在index.html中包含PHP代码(react-create-app,MVC,我无法在页面开头包含start_session()),该如何启动会话?
  • 如何从会话中检索数据(是否可以通过ajax实现?)。迄今为止,我从未使用过PHP和React。我只使用过restful API。

请帮忙解答。


假设您正在使用CLI工具创建React应用程序,则无需在任何静态资产中启动会话。只需在处理API请求的PHP代码中启动它(可能是一个前置控制器,为了简单起见)。 - Yoshi
2个回答

2

我认为你可以。查看这个问题和最受欢迎的答案:

答案是肯定的: 会话是在服务器端维护的。就服务器而言,AJAX请求和常规页面请求没有区别。它们都是HTTP请求,并且它们在头部以相同的方式包含cookie信息。 从客户端来看,相同的cookie将始终被发送到服务器,无论是正常请求还是AJAX请求。Javascript代码不需要做任何特殊处理,甚至不需要知道这种情况发生了,它与普通请求一样工作。

AJAX请求是否保留PHP会话信息?


-4
你可以用PHP变量初始化JavaScript变量。这是可能的,因为PHP是一种服务器端语言,在Javascript之前执行页面,所以它几乎像在JS行的右侧输入纯文本一样。
例如,在您的index.html文件中,可以这样做:
index.php(您必须将index.html文件重命名为index.php,以便计算机知道其中有一些PHP)。还必须确保在托管此文件的本地环境中安装了PHP。类似于npm install PHP、brew install PHP或yum install PHP这样的东西就可以了。
<script>
// Note here: we must ensure name is set,
// otherwise it would look something like 
// let name = ;
// this would cause an error
// that is why I check the value is present with isset()
let name = <? echo isset($name) ? $name : "Air"; ?>;

</script>

因此,我认为您只需要确保您的环境支持PHP。您也可以使用子程序/网络服务/AJAX调用来完成相同的任务;但是,就设置而言,这会稍微复杂一些。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接