我如何在 React 中使用 PHP 会话?
Posted
技术标签:
【中文标题】我如何在 React 中使用 PHP 会话?【英文标题】:How i can use PHP Session in React? 【发布时间】:2020-08-14 11:06:29 【问题描述】:我对 React 中的会话 php 有疑问。我必须在 React 和 PHP 中创建一个在线商店。我目前正在编写一个购物车。为此,我必须使用 PHP Session。我不能使用 JWT,所以我的问题是:
如果我不能在 index.html 中包含 PHP 代码(react-create-app,MVC,我不能在页面开头包含 start_session()),如何启动会话) 如何从 Session 中检索数据(可以通过 ajax 实现吗?) 我从未使用过 PHP 和 React。到目前为止,我只使用了 restful API。请帮忙。
【问题讨论】:
假设您正在使用 cli 工具创建 react 应用程序,则无需在任何静态资产中启动会话。只需在处理您的 api 请求的 php 代码中启动它(为简单起见,可能是前端控制器)。 【参考方案1】:是的,我认为你可以。检查这个问题和投票最多的答案:
答案是肯定的: 会话在服务器端维护。就服务器而言,AJAX 请求和常规页面请求没有区别。它们都是 HTTP 请求,并且它们都以相同的方式在标头中包含 cookie 信息。 从客户端,无论是常规请求还是 AJAX 请求,始终将相同的 cookie 发送到服务器。 javascript 代码不需要做任何特殊的事情,甚至不需要意识到这种情况的发生,它的工作方式与常规请求相同。
Do AJAX requests retain PHP Session info?
【讨论】:
【参考方案2】:您可以做的是用您的 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。你也可以使用 subroutine/webservice/ajax 调用来做同样的事情;但是,就其设置而言,这有点复杂。
【讨论】:
以上是关于我如何在 React 中使用 PHP 会话?的主要内容,如果未能解决你的问题,请参考以下文章