De laatste tijd maak ik veel gebruik van JPSPan (http://jpspan.sourceforge.net, maar deze site is al een tijdje down) om structuur te geven aan mijn POST-string die ik via een submit POST naar een PHP pagina.
JPSpan serializeert de POST-string en ik kan hem dan netjes als een structuur aanleveren aan PHP, waarmee ik via unserialize() de boel weer kan on-serializeren.
Alleen loop ik nu tegen twee problemen aan:
1: Karakters boven ASCII getal 127 worden weggegooid door JPSpan, dat komt door deze regeltjes in de JPSpan library:
2: JPSpan + FireFox + Enters (\r\n) gaat mis, want FireFox telt een ENTER als 1 karakter, terwijl dit in Internet Explorer goed gaat, die telt namelijk 2 karakters voor een enter. Dus de string-length is dan eigenlijk te kort en dan krijg je deze errors in FireFox:
Dit gaat zowel op windows als op linux fout trouwens.
Mijn 2 vragen:
1: Kan ik die ASCII check gewoon eruit slopen en ervan uit gaan dat alle moderne browsers momenteel hun POST-waardes automatisch in UTF8 sturen naar de server? Of is dit te manipuleren??
2: Is het probleem met die enters gewoon een ordinaire bug in FireFox, of hebben meer mensen dit probleem gehad??
Extra info:
Download JPSpan:
http://prdownloads.sourceforge.net/jpspan
Alvast bedankt.
JPSpan serializeert de POST-string en ik kan hem dan netjes als een structuur aanleveren aan PHP, waarmee ik via unserialize() de boel weer kan on-serializeren.
Alleen loop ik nu tegen twee problemen aan:
1: Karakters boven ASCII getal 127 worden weggegooid door JPSpan, dat komt door deze regeltjes in de JPSpan library:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
| encodeString: function(v) { var s = '' for(var n=0; n<v.length; n++) { var c=v.charCodeAt(n); Ignore everything but ASCII if (c<128) { s += String.fromCharCode(c); } } return 's:'+s.length+':"'+s+'";'; }, |
2: JPSpan + FireFox + Enters (\r\n) gaat mis, want FireFox telt een ENTER als 1 karakter, terwijl dit in Internet Explorer goed gaat, die telt namelijk 2 karakters voor een enter. Dus de string-length is dan eigenlijk te kort en dan krijg je deze errors in FireFox:
code:
1
2
3
4
| a:1:{s:9:"textfield";s:1:"
";}
Notice: unserialize(): Error at offset 27 of 31 bytes in c:\htdocs\temp\serialize_bleeding_edge.php on line 15 |
Dit gaat zowel op windows als op linux fout trouwens.
Mijn 2 vragen:
1: Kan ik die ASCII check gewoon eruit slopen en ervan uit gaan dat alle moderne browsers momenteel hun POST-waardes automatisch in UTF8 sturen naar de server? Of is dit te manipuleren??
2: Is het probleem met die enters gewoon een ordinaire bug in FireFox, of hebben meer mensen dit probleem gehad??
Extra info:
Download JPSpan:
http://prdownloads.sourceforge.net/jpspan
Alvast bedankt.