IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Quotes, cookies, et sessions [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut Quotes, cookies, et sessions
    Bonjour,

    Désolé pour le titre pas très explicite.

    En fait je viens de mettre en ligne mon site avec un espace membre.

    J'avais pas vraiment prévu le cas où les membres mettraient des quotes ( ' ) dans leurs pseudos.

    Biensûr, le premier membre qui s'inscrit met des quotes dans son pseudo.

    J'ai modifié le code de mon inscription et de connexion avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Pseudo = $this->connexion->real_escape_string($Pseudo);
    L'inscription et la connexion fonctionnent bien. Dans ma base je vois bien par exemple user : bob\'63 par exemple

    Sur ma page d'accueil, lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bienvenue <?php echo $_SESSION['login']; ?>
    cela m'affiche
    et dans le cookies :
    Voilà la fonction de connexion actuelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    function CreateP($Pseudo,$Pass)
    		{
    			$Pseudo = $this->connexion->real_escape_string($Pseudo);
     
    			$sql = "SELECT Prenom_P,Id_P,VIP FROM personne WHERE Prenom_P = '".$Pseudo."' AND Pass_P = '".md5($Pass)."'";
     
    			$req = $this->connexion->query($sql) or die('Erreur SQL !');
    			$res = mysqli_num_rows($req);
     
    			if($res == 0)
    			{
    				echo"<center><font color=\"red\">/!\ Aucun utilisateur n'a été trouvé. Vérifiez votre login/password. /!\</font></center>";
    				echo"<br/>";
    			}
    			if($res == 1)
    			{
    				while ($row=mysqli_fetch_row($req))
    				{		
    					$this->Prenom = $row[0];
    					$this->ID = $row[1];
    					$this->VIP = $row[2];
    				}
    				$_SESSION['login'] = $this->Prenom;
    				$_SESSION['id'] = $this->ID;
    				$_SESSION['vip'] = $this->VIP;
    				$this->Cookies = $this->ID."_".$this->Prenom."_".$this->VIP;
    				return $this->Cookies;
    			}
    		}
    Là c'est la fonction de base sans modification. J'ai essayé de rajouté du htmlentities(stripslashes()) sur le $row[0]; pour supprimer le / mais cela ne fait rien du tout.

    Si je fais cela directement sur la session Bienvenue ... ca m'enlève le double slashes devant mais il m'en reste un (celui présent dans la BDD).

    Comment fonctionne le cookies ? Est-ce un 'langage' spécifique pour qu'il mette %... dans le cookies ?

    Comment puis-je régler mon soucis ? Autant au niveau du cookies et pourquoi il me rajoute \\ sur l'accueil ? Un pour la quote et un pour le slashe qui est censer échappé ?

    J'ai tenté d'autres fonctions comme utf8_decode(),... rien

    Je n'arrive pas à trouver de réponse sur google (peut-être que je cherche aux mauvais mots clés ?).

    Merci d'avance !

    edit :
    J'avais oublié cette ligne qui permet de créer le cookie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setcookie('lesferias',$_GET['id'], time() + 365*25*3600, '/', null, false, true);
    $_GET['id'] est la chaîne créé dans la fonction ($this->Cookies)

  2. #2
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Les cotes et doubles cottes ont tendance a etre casse tete dans ces cas la.

    En cas de bloquage je suis partisant de contraindre les user a la creation de leur pseudo.

    Tu n'autorise que les caractertes que tu veux et tu efface les caractertes non desiré deja dans la base (en envoyant un msg par exemple aux users concernés)

    Pour la contrainte tu peux le faire en javascript tres facilement (sorry pas le bon forum la mais comme on mélange presque toujours php et javascript dans les pages.)

    comme sa par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /*Fonction qui ne permettra que la saisie de chiffres et lettres dans un input*/
    function chiffreslettres(objInput){
       var reg = /^[0-9a-zA-Z]*$/;
    ici seuls les chiffres et lettres sont autorisé.

    Sur ton input du pseudo tu appel cette fonction avec onkeydown ou avec onchange.

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut
    Je comprend, au début je voulais faire cela, lors de l'inscription vérifier que les quotes, doubles quotes, caractères du type <, > ... soit pas tolérés.

    Mais au final ca restreint pas mal l'utilisateur ... puis le soucis dans les cookies arriveront avec les spaces aussi car biensûr j'ai un membre qui a pris : Basqu'au Landais comme pseudo ... donc j'imagine pas la tête du cookies :s

    Ou alors je revoie ma conception et stocke pas le pseudo dans le cookie, pour éviter ce problème :s

    Mais j'aimerais comprendre pourquoi la création d'un cookie génère ces caractères ? Un peu comme les espaces %20 j'ai l'impression :s

  4. #4
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Mais concrètement pourquoi ton cookie?
    Une variable de session ne ferait elle pas l'affaire?

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Si tu as des problème de quotes ', d'échappement de quotes \', alors faudrait voir du coté de Php, de la directive du php.ini : magic_quotes_gpc qui serait activée (à On).
    Si c'est le cas il faudrait la désactiver.

    Fait un phpinfo(), repère où elle se trouve pour connaitre sa valeur (post le au besoin).

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut
    Oui mais si je supprime, tout mon site va foirer après non ? Vu que j'utilise stripslashes() partout sur le site (dès qu'il y a de l'info venant de la BDD) .. et que du coup dans la BDD toutes les quotes sont précédées de \

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 33
    Dernier message: 16/06/2006, 23h08
  2. [Cookies] Cookies et sessions
    Par TNorth dans le forum Langage
    Réponses: 6
    Dernier message: 19/05/2006, 00h22
  3. Réponses: 3
    Dernier message: 01/05/2006, 14h09
  4. [Cookies] PB sessions php et navigation sous imode
    Par hardkmel dans le forum Langage
    Réponses: 8
    Dernier message: 23/12/2005, 12h22
  5. [Cookies] Récupération de cookie de session...
    Par Tizard dans le forum Langage
    Réponses: 1
    Dernier message: 07/12/2005, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo