使用网址,我的想法是任何用户都可以发布数据。例如通过
http://myweb.com/index.php?name=Peter&surname=Brown
使用“jedwards”答案,显示here,我可以创建一个json并将其保存到文件中。
<?
/* This needs to be at the top of your file, without ANYTHING above it */
session_start();
/* ... */
if(!array_key_exists('entries', $_SESSION))
{
$_SESSION['entries'] = array();
}
$_SESSION['entries'][] = array("name" => $_GET["name"], "surname" => $_GET["surname"]);
$json_string = json_encode($_SESSION['entries']);
我的问题是,这在不同的会话或用户中不是永久性的。它仅适用于同一会话。在不同的会话中,json从一开始就建立了。
答案 0 :(得分:0)
首先,不要使用GET
请求来更改服务器的状态。 GET
只能从服务器读取(或嗯.. GET )数据。
要更改数据,请使用POST
。它更合适,更安全,并且在传输大量数据时非常棒。
现在,针对手头的问题。对于更永久的解决方案,最好的选择是强制用户注册,并在数据库中保存所需的数据,并引用用户的ID。
答案 1 :(得分:0)
是的,因为会话,顾名思义,只是暂时的(排序本地)。当浏览器关闭时它就消失了。根据您的需求,您必须在服务器上使用数据库或文本文件之间进行选择。
不会对此类数据进行Cookie或会话。
答案 2 :(得分:0)
如果您正在寻找一个基本的解决方案,请参阅下文。如果没有,请按照其他答案中的建议使用数据库。
<?
/* This needs to be at the top of your file, without ANYTHING above it */
session_start();
/* ... */
$file = sys_get_temp_dir() . '/entries.json';
$data = file_get_contents($file);
$entries = (!empty($data)) ? json_decode($data) : array();
$entries[] = array("name" => $_GET["name"], "surname" => $_GET["surname"]);
file_put_contents($file,json_encode($entries),FILE_APPEND);