|
freud 113
| |
developpeur 24581
| Posté : 06-05-2012 10:58
filtrage dans user.php je dirais |  Profil E-mail www
|
|
freud 113
| Posté : 06-05-2012 11:14
Re,
J'ai une parade mais à prendre avec précaution, en clair ne pas l'appliquer n'ayant pas encore jaugé les incidences possibles sur certaines fonctions.
L'idée consiste à remplacer avant encodage les caractères spéciaux acceptés par le caractère non accentué correspondant, exemple avec le "e" :
function docookie($setuid, $setuname, $setpass, $setstory num, $setublockon) {
$caract = array('é', 'è', 'ê', 'ë');
$setuname = str_replace($caract, "e", $setuname);
$info = base_64_encode("$setuid:$setuname:".md5($setpass).":$setsto rynum:$setublockon");
...
Ainsi le cookie comporte le login sans accent, et la connexion fonctionne qu'on le saisisse avec ou sans accent.
Ceci étant, le login enregistré dans la BDD et celui du cookie peuvent donc différer, auquel cas si certaines fonctions d'NPDS comparent ces derniers pour une raison ou pour une autre ils ne seront évidemment pas reconnus comme étant identiques. Dès lors ça va coincer.
Il convient donc de localiser les éventuelles fonctions concernées (modération ou que sais-je encore).
Puisque lors de l'inscription la recherche parmi les pseudos existants est insensible à la casse et aux accents ça ne pause pas de problème de sécurité, ainsi on ne pourra avoir un utilisateur qui se nomme "héhé" et un autre "hehe" ou encore "HeHe". |  Profil www
|
|
freud 113
| Posté : 07-05-2012 14:50
Je vais devoir abandonner cette idée, ou tout au moins l'ajourner, devant l'ampleur de la tâche mais qui est propre à mon site.
Je pense que dans une version native de NPDS c'est largement faisable.
J'ai opté pour l'url rewriting et le pseudos sont inclus dans les urls des profils, et de fait je dois supprimer les accents dans ces urls. Ca se fait assez bien en passant par une fonction.
Mais j'ai aussi et surtout une toute nouvelle messagerie privée, très orientée ajax avec jquery. Le pseudo est passé comme argument dans différentes fonctions et ces accents me posent pas mal de problèmes. J'aurai tout mon programme de messagerie (php et !javascript!) à éplucher de fond en comble et il est assez conséquent, pour ne pas dire que c'est une vraie usine à gaz...
Sinon comme je le disais sous une version standard de NPDS j'y suis parvenu assez facilement.
Créer une fonction dans mainfile.php pour supprimer les éventuels accents des pseudos, puis appeler cette fonction chaque fois que nécessaire, c'est à dire pas souvent. A priori seulement :
-dans la fonction docookie() de user.php
-dans la fonction get_moderator() de function.php
Pour autoriser les accents lors de l'inscription ça se passe dans la fonction userCheck() de user.php, en ajoutant dans le preg_match les caractères autorisés
//Avant
if ((!$uname) || ($uname=="") || (preg_match('#[^a-zA-Z0-9_-]#',$uname))) ...
//Après
if ((!$uname) || ($uname=="") || (preg_match('#[^a-zA-Z0-9_-éèêëà]#',$uname)) ) ...
Je n'en ai mis que quelques uns pour l'exemple, à vous de voir.
Message édité par : freud / 07-05-2012 14:53 |  Profil www
|
|
developpeur 24581
| |