0

ここでのベストプラクティスに興味があります...

ユーザーが入力する複数ページのフォームがあります..現時点では、フォームデータをセッション変数に保存しています。

ユーザーが新しいタブを開いて同じフォームにわずかに異なる詳細を入力すると、2 つのタブが競合します。

私の考えでは、フォームに記入するための新しいリクエストでおそらくuniqueidを生成し、?id=uniqueidこれをURLの変数に保持して、どのフォームに記入したかを追跡できるようにすることでした。

次に、PHPで、セッションデータを追加/編集/変更し$_SESSION[uniqueid]['formdata']ます...

他の誰かがこれに対する他の解決策を持っているかどうか疑問に思っていますか?

4

1 に答える 1

0

おそらく、フォーム ステージに基づいて ID を割り当て、ユーザーが誤って URL を改ざんするのを防ぎます。

$_SESSION['form1'] = $_POST;

ユーザーが新しいタブを開くか、後でフォームに戻った場合、設定されているセッション キーに基づいてフォームの正しいステージに移動できます。または、多次元配列を使用する場合:

$_SESSION['form']['form1'] = ...;
...
$_SESSION['form']['form2'] = ...;

セッションフォーム配列を数えて、彼らが記入した最新のステージを取得できます。

if (isset($_SESSION['form']))
{
    $currentFormId = 'form' . count($_SESSION['form']);
}

フォームの目的によっては、最終段階が送信されたときにセッション フォーム キーの設定を解除したい場合があります。

于 2013-04-15T01:27:15.827 に答える