循环通过$ POST使$ SESSION等效

DMS*_*Jax 1 php foreach post session-variables

这是循环API发送的$ POST数据并从中创建等效$ SESSION名称/值对的正确方法吗?

foreach($_POST as $key=>$value)
{ $_SESSION['$key']=$value; }
Run Code Online (Sandbox Code Playgroud)

更新: 首先,感谢坚实的回应 - 我想我需要解释我正在努力克服的问题以及为什么要考虑这个功能.$ _POST响应来自支付处理器网关 - 问题是,由于付款表单/处理不在我们的域中,付款结果(已批准/已拒绝等)正通过$ POST传递给我们的服务器 - 当我们的PHP代码尝试处理响应数据时,它会在那里找到各种PHP结构(比如php包含'file.php')而不是我们的错误 - 我需要将$ POST数据移动到会话中然后将此人移回我们的域,以便文件/目录/资源树正确.我遇到了什么才有意义?

Jas*_*ary 5

不要使用单引号:

foreach ($_POST as $key => $value) {
  $_SESSION[$key] = $value;
}
Run Code Online (Sandbox Code Playgroud)

我鼓励你阅读PHP中的字符串.

注意:由于多种原因,这可能是不安全的 - 主要是通过键碰撞注入.考虑我是否发布了登录的用户ID.

这可以通过封装来减轻:

$_SESSION['posted_data'] = $_POST;
Run Code Online (Sandbox Code Playgroud)

  • 对于安全问题+1,您应该始终清理/仔细检查来自外部源的数据. (3认同)