ユーザーがマッピング用の列を選択している間、テーブルに保存せずにデータを保持する方法がわかりません。私は何をしますか?配列全体を非表示フィールドに入れますか? 提案してください。
それらをセッション変数に保存すると、そこに保存したものはすべてユーザーごとに個別に保持され、そのユーザーがログアウトするか、コードの一部が明示的に削除されるまで保持されます。(たとえば、データベース上のデータを破棄または永続化した後)。
うまくいけば、あなたはすでにセッションを使用しています。php.net でセッション変数を見てください。
注: 私は codeigniter を使用したことがありませんが、簡単な検索でセッションを管理するためのクラスが含まれていることがわかります。FlashData の下を見てください。
編集:
Codeigniter セッション変数には 4KB の制限があり、それで十分かもしれませんし、そうでないかもしれません。そうでない場合は、常に次のいずれかの代替手段を使用します。
データベースを使用してデータを保存し、セッション変数にアイテム ID とユーザー ID を保存して、データを取得できるようにします。
ファイルを使用すると、ランダムな名前を生成してセッション変数に保存し、必要な内容をファイルに保存できます。
セッションの終了を処理できない場合は、有効期限をデータベースに保存し、プログラムされたタスク (cron を使用できますか?) を使用して、期限切れのアイテムを一時テーブル (またはファイル) から削除することができます。
ただし、注意してください!codeigniter のセキュリティについてはわかりませんが、いくつかのリスクがあります。データベーステーブル内のユーザーに関連付けられたランダムな一意の値と、セッションの存続期間に一致する有効期限を持つ非表示の「トークン」フィールドを追加することができます。フォームを送信するたびに新しいトークンを作成し、それを受信したら、送信されたフォームのトークンがデータベース内のユーザー (セッションによって識別される) の有効なトークンと一致するかどうかを確認し、一致する場合はトークンを削除して、フォームの残りの処理に進みます。トークンが一致しないか有効でなくなった場合は、セッションが期限切れになったか、誰かが Cookie をいじっていたか、攻撃を生き延びた (誰かが古いトークンで投稿を再作成した場合)。
繰り返しますが、コーディングライターのセキュリティについては知りません。しかし、私がそのフレームワークの作成者であれば、既にトークンが実装されているはずです... したがって、このセキュリティ リスクは既にカバーされている可能性があります。
クロスサイト リクエスト フォージェリの詳細については、OWASP を参照してください。