首页 > 解决方案 > 将浏览器发送的值存储到 $_SESSION 的正确方法是什么?

问题描述

所以我想检索存储在<input type='text'>标签中的数据,然后将其存储$_SESSION在我服务器上的数组中。

我正在使用一种通过 ajax 发送 GET 请求的方法,然后将值分配到$_GETto $_SESSION,以便以后可以使用会话值。

AJAX 获取请求:

var xhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
console.log('Sending email address to system')
xhttp.open('GET','database.php?email='+email_address, false)
xhttp.send()

然后在database.php

 if(isset($_GET['email'])){
    $_SESSION['email'] = $_GET['email'];
  }

有没有更简单的方法来做到这一点?某种http请求,只是将数据$_SESSION直接存储到而不是$_GET?在中间使用?

标签: phphtmlsessionisset

解决方案


你可能会:

  • 开始会话
  • 做你的会话保存/更新/更改
  • 如有必要,销毁会话,或者您可以设置/取消设置变量

例子

// Maybe, start of index.php
session_start();

if(isset($_GET['email'])){
    $_SESSION['email'] = $_GET['email'];
}


// after everything is over, you may want to destroy it: 
session_destroy();

这篇文章还有一些额外的信息。


推荐阅读