Gister ontdekte ik dat de session.use_trans_sid niet helemaal werkt zoals het moet werken. Op mijn site gebruik ik sessies en dat wou ik graag zo houden. Alleen wanneer ik de session.use_trans_sid gebruik omdat men cookies uit heeft staan, wordt de phpsessidniet altijd even goed in de url geplaatst. Bijvoorbeeld:
In het geval van de bovenstaande url wordt de phpsessid geplaatst op de plek waar een ( moet staan, maar PHP plaatst de phpsessid direct achter de & van de (. Het maakt opzich niet uit welk teken er staat, wanneer het een in html opgegeven character is, wordt de & daarvan gepakt als voorganger van de &phpsessid. In het bovenstaande voorbeeld wordt de phpsessid voorafgegaan aan een &, maar of dit nu de & of & is, maakt geen verschil. Hiervoor gebruik ik, voor de nieuwsgierigen, ini_set('arg_separator.output', '&').
Deze website meldt al over deze bug, maar ondanks dat vraag ik mij af of er ook een oplossing voor is terwijl de session.use_trans_id aanstaat? Deze oplossing kan misschien ook gelden voor output_add_rewrite_var(), want die heeft er ook last van.
Overigens heb ik het zelf al opgelost door het volgende te doen:
Disclaimer:
In de bovenstaande post heb ik expres de ; achter de in html opgegeven characters weggelaten, anders worden ze niet goed weergeven.
code:
1
| index.php?page=test&type=file&file=een_bestand_in_dit_geval_een_mp3&&PHPSESSID=Vq48IfkalRYAONJHxaOnwAVXd9jfBqGE#40;160cbr).mp3 |
In het geval van de bovenstaande url wordt de phpsessid geplaatst op de plek waar een ( moet staan, maar PHP plaatst de phpsessid direct achter de & van de (. Het maakt opzich niet uit welk teken er staat, wanneer het een in html opgegeven character is, wordt de & daarvan gepakt als voorganger van de &phpsessid. In het bovenstaande voorbeeld wordt de phpsessid voorafgegaan aan een &, maar of dit nu de & of & is, maakt geen verschil. Hiervoor gebruik ik, voor de nieuwsgierigen, ini_set('arg_separator.output', '&').
Deze website meldt al over deze bug, maar ondanks dat vraag ik mij af of er ook een oplossing voor is terwijl de session.use_trans_id aanstaat? Deze oplossing kan misschien ook gelden voor output_add_rewrite_var(), want die heeft er ook last van.
Overigens heb ik het zelf al opgelost door het volgende te doen:
PHP:
1
2
3
4
| ini_set("session.use_trans_sid", 1); //dit plaats ik achter elke url die naar de website zelf verwijst (!isset($_COOKIE[session_name()]) && $sessionManager->returnUseSession() ? "&" . session_name() . "=" . session_id() : "") |
Disclaimer:
In de bovenstaande post heb ik expres de ; achter de in html opgegeven characters weggelaten, anders worden ze niet goed weergeven.