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
L'inscription et la connexion fonctionnent bien. Dans ma base je vois bien par exemple user : bob\'63 par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part $Pseudo = $this->connexion->real_escape_string($Pseudo);
Sur ma page d'accueil, lorsque je fais :
cela m'affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part Bienvenue <?php echo $_SESSION['login']; ?>
et dans le cookies :
Code : Sélectionner tout - Visualiser dans une fenêtre à part bob\\\'63
Voilà la fonction de connexion actuelle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 11_bob%5C%2763_non
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.
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; } }
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
$_GET['id'] est la chaîne créé dans la fonction ($this->Cookies)
Code : Sélectionner tout - Visualiser dans une fenêtre à part setcookie('lesferias',$_GET['id'], time() + 365*25*3600, '/', null, false, true);
Partager