Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Po stronie przeglądarki _ Polskie znaki z ciasteczcka

Napisany przez: rad11 13.11.2015, 19:19:03

Mam problem ustawiam sobie w PHP ciastka(z polskimi znakami):

  1. $langs = Langs::getAllTranslations();
  2.  
  3. foreach($langs as $index => $value){
  4. http://www.php.net/setcookie($index, $value);
  5. }


I pozniej probuje pobrac je w JS:

  1.  
  2. console.log(getCookie('t_hello'));
  3. function getCookie(cname) {
  4. var name = cname + "=";
  5. var ca = document.cookie.http://www.php.net/split(';');
  6. for (var i = 0; i < ca.length; i++) {
  7. var c = ca[i];
  8. while (c.charAt(0) == ' ')
  9. c = c.substring(1);
  10. if (c.indexOf(name) == 0)
  11. return c.substring(name.length, c.length);
  12. }
  13. return "";
  14. }


I tak np wyraz Cześć wygląda taK : Cze%25C5%259B%25C4%2587

W czym problem nagłówki są w UTF-8 i kodowanie plików też. Jakieś pomysły?

Niby decodeURI(getCookie()) działa.

Napisany przez: trueblue 13.11.2015, 19:44:42

setcookie automatycznie urlencode'uje przy zapisie i urldecode'uje przy odczycie.
setrawcookie tego nie robi.

Napisany przez: Comandeer 13.11.2015, 21:52:35

Osobiście po prostu dodałbym dekodowanie do getCookie i tyle.

Napisany przez: rad11 16.11.2015, 12:33:28

Wystąpił kolejny problem z którym zastanawiam się jak go rozwiązać mianowicie.
Jest tyle tlumaczeń ze brakuje w przeglądarce miejsca na cookie`sy(tak mi sie wydaje) i mam komunikat

Kod
400 Bad Request
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.
Cookie


jakies pomysly?

Napisany przez: nospor 16.11.2015, 12:39:44

Yyyyy..... ty tlumaczenia aplikacji wrzucasz do ciastek? A po grzyba?

Napisany przez: rad11 16.11.2015, 12:40:46

Chce zrobić tak aby używać tłumaczeń i w js i w php tych samych

Napisany przez: nospor 16.11.2015, 12:41:55

No a kto ci broni wrzucac tlumaczenia do kodu js bezposrednio? No nikt smile.gif Ciacha nie sluza do trzymania tlumaczen

Napisany przez: rad11 16.11.2015, 12:42:53

w *.js nie bardzo jest jak wrzucic tlumaczenia z php

Napisany przez: nospor 16.11.2015, 12:44:49

alez jest

<?php echo 'var tl = "jakies tlumaczenie";'; ?>

Napisany przez: redeemer 16.11.2015, 12:45:01

Zrób sobie "sztuczny" plik locale.js generowany dynamicznie (podczas requestu) przez PHP na podstawie aktualnego słownika.
Np:

Kod
var locale = new Array();
locale['msg1']='Costam 1';
locale['msg2']='Costam 2';
...

Napisany przez: rad11 16.11.2015, 13:21:23

Tak zrobiłem i działa na chwilę obecną super. Dzięki.

Napisany przez: Comandeer 16.11.2015, 16:52:18

Hm… nie lepiej trzymać to w JSON-ie? I PHP i JS rozumieją ten format i nie trza robić osobnego pliku.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)