特別なコンセプト。 '、
'uid' => 1、
「ニックネーム」 => 「ポテトマン」、
'サイト' => ",
'サイトタイプ' => 1、
'開始時刻' => 1191074174、
'前回' => 1191629784、
'totleviews' => 14、
'totleblogs' => 3
);
プログラムは、magic_quotes_gpc を自動的に決定し、すべての POST および GET データ (addslashes の下) を自動的にエスケープするため、データベースに保存される前に、上記の配列内の $message['sitename'] がネイティブ トライブになります。 mysql データベースでは、保存されたコンテンツは依然として「Turen' 部族」です (「mysql データベースに入る方法は次のとおりです」とは聞かないでください。これは mysql のエスケープ機能であり、ほとんどのデータベースもエスケープするために に依存しています。 )、現時点では問題ありません。
問題は、このフィールドがデータベースから取得されてからシリアル化解除されるときに発生します。ネイティブ トライブの値はデータベースからエスケープされないため、シリアル化解除中に失敗します。
私はいくつかの解決策を考えました。
まず、配列が 1 つのフィールドに存在しなくなり、各キーがフィールド内に独立して存在します。これは、システムがすでに実行されており、変更するのが面倒であるため、除外されます。
次に、mysql にデータを保存する前にシリアル化された配列を追加します。この時点で、mysql に保存されているデータは Turen' トライブですが、データベースはシリアル化解除後のデータが依然として Turen' トライブであることを認識するため、これを行う必要があります。この配列はスラッシュを 1 つずつ取り除きます。
第三に、ユーザーエクスペリエンスを放棄します:)。「/」が表示されると、自動的に置き換えられます。