8796 sujets

Développement web côté serveur, CMS

Bonjour
j'ai vu cette astuce pour remplacer automatiquement & par & à l'aide de l'instruction php
<?php
// à placer avant session_start();
ini_set('arg_separator.output', '&amp;');
?>

J'ai collé ce code au tout début de ma balise body, mais lors de la validation W3C le code n'est pas reconnu valide les & posent toujours problème.
Je pense que je ne sais pas appliquer cette instruction.
Auriez-vous une piste SVP ?
Exemple : // à placer avant session_start(); je ne sais pas ce que ça signifie, merci.
Modifié par Sam Soul (24 Oct 2009 - 06:48)
De ce que j'ai déjà pu voir, cette instruction n'est appliquée automatiquement que dans le cas où les sessions sont actives et les cookies ne sont pas actifs. Donc c'est plutôt rare, pour ne pas dire jamais si ton site est bien fait.
Salut,

QuentinC a écrit :
De ce que j'ai déjà pu voir, cette instruction n'est appliquée automatiquement que dans le cas où les sessions sont actives et les cookies ne sont pas actifs.

+1

En fonction de certaines directives PHP (cf. cet article) on peut paramétrer le passage de l'identifiant de session (par défaut c'est la variable PHPSESSID) par l'url si le visiteur a désactivé les cookies. Ton ini_set est alors intéressant puisqu'il indique dans ce cas précis d'utiliser &amp; au lieu de &. Par contre pour tous les autres liens de ton document il faut effectuer ce remplacement toi-même directement dans le code. Smiley cligne
A noter que passer l'identifiant de session par URL peut s'avèrer extrêmement dangereux pour la sécurité.

Perso, j'ai désactivé cette §option (session_trans_sid=0) dans tous les cas. Tant pis pour ceux qui n'acceptent pas les cookies de session, de toute façon ils sont très très rares (même les meilleurs pare-feux acceptent les cookies qui expirent à la fermeture du navigateur)