Autor | Zpráva | ||
---|---|---|---|
JardaB Profil |
#1 · Zasláno: 9. 10. 2018, 14:49:47
Zdravím,
mám následující problém.. Javascriptem zapisuji cookies, které poté v případě potřeby čtu v PHP a ukládám do MySQL. Problém nastane, když vezmu data z dtb a v PHP z nich opět vytvořím cookies. V javascriptu pak následně přečíst lze, ale již tam jsou problémy u mezer, které jsou nahrazeny +. //js function setCookie(key, value, days) { var path = "/"; value = encodeURIComponent(value); value+='; path='+path; var date = new Date(); date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); value+='; expires=' + date.toGMTString(); document.cookie = key + '=' + value; } function getCookie(name) { var cookies = document.cookie.split(/;\s*/); for (var i = 0; i < cookies.length; ++i) { var cookie = cookies[i].split('='); if (cookie[0] === name) return cookie[1]; } var text = decodeURIComponent(getCookie("text")); //php $text = $_COOKIE["text"]; // v php přečtu takto a uložím do mysql, kde se jeví data OK |
||
Kajman Profil |
#2 · Zasláno: 9. 10. 2018, 15:27:09
Nejjednodušší bude nahradit plusko za mezeru nebo za '%20' před dekódováním.
|
||
JardaB Profil |
#3 · Zasláno: 10. 10. 2018, 08:57:39
Kajman:
„Nejjednodušší bude nahradit plusko za mezeru nebo za '%20' před dekódováním.“ Perfektní, funguje.. netuším, kde tam vzniká problém, ale tímto je to vyřešené.. return decodeURIComponent(cookie[1].replace(/\+/g, "%20")); Díky.. |
||
Kajman Profil |
#4 · Zasláno: 10. 10. 2018, 10:11:20
V php to + nechali z historických důvodů
php.net/manual/en/function.urlencode.php#refsect1-function.urlencode-returnvalues Když by bylo potřeba z php ukládat cookie bez bezer jako +, lze použít k jejich nastavení setrawcookie('cookie_name', rawurlencode('cookie value')); Ale v javascriptu bych stejně raději to plusko takto akceptoval. |
||
Časová prodleva: 6 dní
|
|||
JardaB Profil |
#5 · Zasláno: 16. 10. 2018, 10:03:17
Kajman:
> V php to + nechali z historických důvodů > php.net/manual/en/function.urlencode.php#refsect1-function.urlencode-returnvalues Děkuji za vysvětlení |
||
Časová prodleva: 5 let
|
0