| 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: 8 let
|
|||
0