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
$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 :
Bienvenue <?php echo $_SESSION['login']; ?>
cela m'affiche
et dans le cookies :
Voilà la fonction de connexion actuelle :
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 ![:(](https://www.developpez.net/forums/images/smilies/icon_sad.gif)
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
setcookie('lesferias',$_GET['id'], time() + 365*25*3600, '/', null, false, true);
$_GET['id'] est la chaîne créé dans la fonction ($this->Cookies)
Partager