-1

URL を使用すると、どのユーザーもデータを投稿できるというのが私の考えです。たとえば、

http://myweb.com/index.php?name=ピーター&姓=ブラウン

ここにある「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

まずGET、サーバーの状態を変更するためにリクエストを使用しないでください。GETサーバーからデータを読み取る(または..ええと..GET)ことだけを想定しています。

データを変更するには、を使用しますPOST。よりフィットし、わずかに安全で、大量のデータを転送する場合に最適です。

さて、目前の問題について。より永続的なソリューションの場合、最良のオプションは、ユーザー登録を強制し、ユーザーのIDを参照して必要なデータをデータベースに保存することです。

于 2012-07-04T15:02:51.013 に答える
0

はい、名前が示すように、セッションは一時的なもの (そして一種のローカル) にすぎないためです。ブラウザを閉じると消えます。要求に応じて、サーバー上でデータベースを使用するかテキストファイルを使用するかを選択する必要があります。

Cookie やセッションは、この種のデータに対しては作成されません。

于 2012-07-04T15:04:20.007 に答える
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 に答える