長い研究の後、私の最初の質問をStackoverflowに投稿します。フォーム入力を保存してJSONをクッキーに保存しますが、パスワードを除外します
私はフォームを持っており、入力をクッキーのJSON文字列に格納したいと考えています。 これまでのスクリプトでうまくいきます。しかし、セキュリティ上の理由から私はパスワードを除外したいと思います。
これを達成する方法を知っている専門家はいますか?
<script src="js.cookie.js"></script> //source: https://github.com/js-cookie/js-cookie
<script>
(function ($) {
$.fn.serializeJSON = function() {
var json = {};
jQuery.map($(this).serializeArray(), function (n, _) {
json[n['name']] = n['value'];
});
return json;
};
})(jQuery);
ensureNumber = function (n) {
n = parseInt(n, 10);
if (isNaN(n) || n <= 0) {
n = 0;
}
return n;
};
saveFormToCookie = function (form) {
var name = $(form).attr('id');
var data = $(form).serializeJSON();
Cookies.set(name, data, {expires: 1});
};
loadFormFromCookie = function (form) {
var name = $(form).attr('id');
var data = Cookies.get(name);
if (typeof data === 'undefined') {
return;
}
JSON.parse(data, function (key, value) {
if (typeof (value) !== 'object') {
var el = $(form).find('*[name="' + key + '"]');
if (el.is('input')) {
if (false) {
// code formatting stub
} else if (el.attr('type') === 'number') {
el.val(ensureNumber(value));
} else if (el.attr('type') === 'checkbox') {
if (el.val() === value) $(el).prop('checked', true);
} else if (el.attr('type') === 'radio') {
$.each(el, function (_, elc) {
if (elc.value === value) $(elc).prop('checked', true);
});
} else {
el.val(value);
}
} else if (el.is('select')) {
el.val(value);
} else if (el.is('textarea')) {
el.val(value);
}
}
});
};
</script> //source: https://gist.github.com/themactep/2714798
EDIT:
これに加えて、私は1つが、むしろ、ユーザーの入力データを格納するためにPHPのセッションを使用する必要がある理由を説明感謝しています。
$ _SESSION []は、サーバー側になります(クライアントメモリではなくサーバーメモリに格納されるため)、クライアントコンピュータにデータが格納されません。しかし、その欠点は、ユーザーがサイトを終了すると$ _SESSION []データが失われることです。データベースとそれに類するものを経由する方法もありますが。 –