【发布时间】:2021-12-23 00:50:36
【问题描述】:
表单被传递给同一域上的 php 脚本,php 创建一个会话并声明会话值。
我想响应读取 PHP 脚本创建的会话数据
【问题讨论】:
-
React 无法自行直接读取 PHP 会话。您需要向 PHP 脚本发出 HTTP 请求,该脚本会返回您感兴趣的数据。
-
我该怎么做
表单被传递给同一域上的 php 脚本,php 创建一个会话并声明会话值。
我想响应读取 PHP 脚本创建的会话数据
【问题讨论】:
如果安全不是问题,我建议使用 cookie,或者尝试以下方法:
session.php
<?php session_start(); echo json_encode($_SESSION); ?>
code.js
fetch('session.php', {credentials: "same-origin"})
.then(response => response.json())
.then(data => console.log(data));
【讨论】:
只需将 PHP 所需的信息嵌入 HTML 中即可。
<script>
const sessionData = {
"country": <?= json_encode($intlContext->getCountryCode()); ?>,
"someSessionValue": <?= json_encode($_SESSION['someValue']); ?>
};
<script>
如果您无法在 react 中立即从脚本中读取数据,您可以从元字段中选择它们:
<meta name="country" content="<?= htmlentities($intlContext->getCountryCode()); ?>">
<meta name="someSessionValue" content="<?= htmlentities($_SESSION['someValue']); ?>">
无需传递 PHP 会话 ID 即可做出反应。您无法在 react 中验证也无法从 PHP 访问会话后端。
【讨论】: