-1

使用 url,我的想法是任何用户都可以发布数据。例如通过

http://myweb.com/index.php?name=Peter&surname=Brown

使用此处提供的“jedwards”答案,我可以创建一个 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 从头开始​​。

4

3 回答 3

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);
于 2012-07-04T15:13:29.553 回答
0

首先,不要使用GET请求来改变服务器的状态。GET只应该从服务器读取(或.. um.. GET)数据。

要更改数据,请使用POST. 它更合适,更安全,并且在传输大量数据时非常有用。

现在,针对手头的问题。对于更持久的解决方案,最好的选择是强制用户注册,并将所需数据保存在数据库中,并参考用户 ID。

于 2012-07-04T15:02:51.013 回答
0

是的,因为会话,顾名思义,只是临时的(并且本地的)。当浏览器关闭时,它就消失了。根据您的需求,您必须在服务器上使用数据库或文本文件之间进行选择。

不会为此类数据制作 Cookie 或会话。

于 2012-07-04T15:04:20.007 回答