Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/12/2006, 22h29   #1
Invité régulier
 
Inscription : février 2005
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 39
Points : 7
Points : 7
Par défaut Valeur dans une session automatiquement mise en addslash

Salut tout le monde,
Voila je stocke dans une session la valeur d'un champs que saisi l'utilisateur (une phrase saisie par input) mais lorsque je reinitialise l'input en y sockant la valeur de la session j'obtiens une chaine traitée par addslash on dirait (les / apparraissent ) ...

J'ai essayé de mettre addslash(...) lorsque je le stocke dans la var de session et a l'affichage de mettre stripslash .. mais sans succés ..

si vous aviez des idees
merciii
kvndevils est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 22h41   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Il est probable que dans php.ini magic_quote_gpc soit à ON. Php échappe donc automatiquement certains caractères dangereux.
Comment faire :
1) Teste si magic_quote_gpc est à ON avec la fonction get_magic_quote_gpc().
2) Si c'est le cas, donne un coup de stripslash(), puis un coup de htmlentities() (pour éviter les attaques XSS).
3) Stocke en session.
4) Utilise la donnée de session telle quelle pour affichage.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 22h48   #3
Invité régulier
 
Inscription : février 2005
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 39
Points : 7
Points : 7
Ok ... merci pour ta réponse si rapide .. je vais tester tout ca alors
kvndevils est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 22h56   #4
Invité régulier
 
Inscription : février 2005
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 39
Points : 7
Points : 7
Tu avais raison magic_quote_gpc est bien a ON par contre en faisant la manip que tu m'as conseillé l'affichage est correcte mais coupé...
Exemple si je mets " gdsg ' fsqfsq" alors j'obtiens dans le input "gdsg "
PAr contre aucun probleme dans le textarea ...
Je continue de chercher ..

La page ou la session est initialisée :
Code :
1
2
$_SESSION['formPartage_sujet'] = htmlentities(stripslashes($sujet));	
$_SESSION['formPartage_description'] = htmlentities(stripslashes($description));
Le formulaire :
Code :
1
2
3
<textarea cols="57" rows="4" name="description"><?php if (isset($_SESSION['formPartage_description'])) echo $_SESSION['formPartage_description']; ?></textarea>
 
<input name='sujet' type='text' value='<?php if (isset($_SESSION['formPartage_sujet'])) echo $_SESSION['formPartage_sujet']; ?>' size='60' maxlength='100' />
kvndevils est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 00h21   #5
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
1) Tu dois utiliser des doubles quotes pour les attributs dans ton html (c'est une obligation dans le XHTML) => cela résoudra ton problème avec les apostrophes.
2) Pour gérer les simple quotes et les doubles quotes dans ton input, utilise la constante ENT_QUOTES dans htmlentities.

Propositions de correction :
Code :
1
2
$_SESSION['formPartage_sujet'] = htmlentities(stripslashes($sujet), ENT_QUOTES);	
$_SESSION['formPartage_description'] = htmlentities(stripslashes($description), ENT_QUOTES);
Code :
<input name="sujet" type="text" value="<?php if (isset($_SESSION['formPartage_sujet'])) echo $_SESSION['formPartage_sujet']; ?>" size="60" maxlength="100" />
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 09h49   #6
Invité régulier
 
Inscription : février 2005
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 39
Points : 7
Points : 7
C'est bon ca marche ..
je te remercie pour ton aide ..
kvndevils est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 10h25   #7
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
N'oublie pas le tag
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h47.


 
 
 
 
Partenaires

Hébergement Web