0
私はSET/Get関数とcookieをチェックしています。クッキーに(;)を含めてコンテンツを保存する方法は?
getCookie関数は、( ';')を使用してクッキーを分割します。クッキーによって内部に( ';')あるテキストを保存しない限り正常に動作します。
split関数は、( ';')に基づいてコンテンツを誤って分割します。
これを( '&')のようなものに変更すると、まったく保存されません。
誰でもアイデアを教えてもらえますか?
function setCookie(content, player) {
var d = new Date();
d.setTime(d.getTime() + (365 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = player + "=" + content + "; " + expires;
}
//check if the coockie with current player name exists
function checkCookie(player_name) {
var pnote = getCookie(player_name);
\t \t \t alert(pnote);
var delete_cookie = function (player_name) {
document.cookie = player_name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};
if (pnote != "") {
$('#tab' + player_name + ' .nicEdit-main').html(pnote);
} else {
if (player_name != "" && player_name != null) {
$('#tab' + player_name + ' .nicEdit-main').prepend("no note");
}
}
}
//Gets the cookie content
function getCookie(player_name) {
var name = player_name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ')
c = c.substring(1);
if (c.indexOf(name) == 0)
return c.substring(name.length, c.length);
}
return "";
}
は 'base64_encode'または類似の機能を使用してテキストをエンコード「安全な」文字のみを使用します。 – Mjh
@MjhこれはJSではなくPHPです。 JSの実装のためにこれを読んでください:http://stackoverflow.com/questions/246801/how-can-you-encode-a-string-to-base64-in-javascript –
また、ここでJSONを使用することを検討するかもしれません独自のシリアライゼーションスキームを使用します。 'JSON.stringify'に続いてbase64エンコーディングが動作するはずです。 –