Annonce

  •  » Utilisation
  •  » Forcer la casse du nom de l'utilisateur

#1 2005-11-20 00:08:46

Pompon
Membre
Paris (FR)
2005-11-19
49

Forcer la casse du nom de l'utilisateur

Bonjour,

J'ai découvert phpwebgallery depuis plusieurs semaines déjà et j'ai pu mettre les "mains dans le cambouis" afin de personnaliser encore plus l'interface (installation de MODS, modification de templates...). Etant novice j'ai pu trouver toutes les informations sur ce forum.

Seulement je voudrais modifier un paramètre qui me pose régulièrement problème : la casse du nom de l'utilisateur. En effet les personnes n'arrivent pas à s'identifier car elles omettent de mettre une majuscule et vice-versa.
J'ai donc fait une recherche sur le forum où j'ai pu trouver comment ignorer la casse du mot de passe : Gestion des mots de passe, mais pas celui pour l'utilisateur (juste une discussion sans la solution Remarques sur la béta 1.1)...

Après une petite heure de bidouillage intensif j'ai enfin réussi.
Cependant je voudrais savoir si la solution que j'ai trouvé est la bonne (et si oui la partager avec d'autres personnes qui pourraient être intéressées).

Dans le fichier identification.php

- Pour la version 1.4.1 :
Remplacer :

Code:

  WHERE username = \''.$_POST['username'].'\'

Par :

Code:

  WHERE username = \''.( strtolower( $_POST['username'] ) ).'\'

- Pour la version 1.5 :
Remplacer :

Code:

  WHERE '.$conf['user_fields']['username'].' = \''.$username.'\'

Par :

Code:

  WHERE '.( strtolower( $conf['user_fields']['username'] ) ).' = \''.$username. '\'

Merci de me signaler si les modifications sont correctes.
Bonne continuation !
@+


EDIT :
Je viens de m'apercevoir que j'ai un petit souci de conflit si un utilisateur s'inscrit avec le même nom et la casse différente.
Comment faire une vérification au niveau de la base de données pour ne pas avoir de doublons ?

Dernière modification par Pompon (2005-11-20 00:20:24)


Environnement mac et hébergement chez free.

Hors ligne

#2 2005-11-20 00:23:33

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12648

Re: Forcer la casse du nom de l'utilisateur

hop hop hop, erreur pour la modification en branche 1.5. Tu fais ton strtolower() sur le nom du champ et pas sur sa valeur.

Cette modification n'est pas très sécurisée car elle ne concerne que l'identification et pas l'enregistrement. Comment vas tu gérer si "Robert" et "robert" s'enregistrent sur ta galerie ? (avec des mots de passe différents, évidemment)


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#3 2005-11-20 00:25:29

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12648

Re: Forcer la casse du nom de l'utilisateur

Pompon a écrit:

EDIT :
Je viens de m'apercevoir que j'ai un petit souci de conflit si un utilisateur s'inscrit avec le même nom et la casse différente.
Comment faire une vérification au niveau de la base de données pour ne pas avoir de doublons ?

Ton EDIT est arrivé après ma réponse...

Donc, il faut que tu insères le username en strtolower dans include/functions_user.inc.php, mais bien sûr en faisant la vérification en strtolower que le username n'existe pas déjà.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#4 2005-11-20 00:32:14

Pompon
Membre
Paris (FR)
2005-11-19
49

Re: Forcer la casse du nom de l'utilisateur

Désolé pour l'édit mais j'ai mis du temps à envoyer ma phrase (bizarre au niveau de l'heure de mon edit j'ai 00:20:24) et pour toi 00:23:33)... Passons !

Je suis en train de voir au niveau de la page register.php mais je vais suivre tes conseils et aller voir le fichier dans include/functions_user.inc.php

Merci !


Environnement mac et hébergement chez free.

Hors ligne

#5 2005-11-20 00:38:39

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12648

Re: Forcer la casse du nom de l'utilisateur

Pompon a écrit:

(bizarre au niveau de l'heure de mon edit j'ai 00:20:24) et pour toi 00:23:33)... Passons !

Disons qu'entre le moment où j'ai commencé à lire ton message et le moment où j'ai posté le mien, il s'est passé 3 minutes environ...

Pompon a écrit:

Je suis en train de voir au niveau de la page register.php mais je vais suivre tes conseils et aller voir le fichier dans include/functions_user.inc.php

la fonction register_user appelé dans register.php est définie dans include/functions_user.inc.php


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#6 2005-11-20 00:53:20

Pompon
Membre
Paris (FR)
2005-11-19
49

Re: Forcer la casse du nom de l'utilisateur

Promis j'arrête d'écrire des romans ;-)

Je viens d'aller jeter un coup d'oeil dans include/functions_user.inc.php :

Pour la 1.4.1 :
Remplacer :

Code:

  WHERE username = \''.$login.'\'

Par :

Code:

  WHERE username = \''.( strtolower( $login ) ).'\'

Ca marche bien mais j'espère que je l'ai mis au bon endroit.

Pour mon "strtolower" sur le mauvais champ je comprends le problème mais je n'arrive pas à le changer. Un petit coup de main ne serait pas de refus svp !

EDIT : si j'ai bon pour la 1.4.1 et que je trouve l'erreur pour la 1.5 je pense qu'il faudra modifier la ligne suivante pour la 1.5

Code:

  WHERE '.$conf['user_fields']['username'].' = \''.$username.'\'

Dernière modification par Pompon (2005-11-20 01:00:17)


Environnement mac et hébergement chez free.

Hors ligne

#7 2005-11-20 01:15:27

Pompon
Membre
Paris (FR)
2005-11-19
49

Re: Forcer la casse du nom de l'utilisateur

z0rglub a écrit:

hop hop hop, erreur pour la modification en branche 1.5. Tu fais ton strtolower() sur le nom du champ et pas sur sa valeur.

Nouvel essai :

Code:

  WHERE '.$conf['user_fields']['username'].' = \''.( strtolower( $username ) ). '\'

Est-ce mieux ?


Environnement mac et hébergement chez free.

Hors ligne

#8 2006-01-04 09:50:28

OlivierV
Membre
Lyon Croix-Rousse
2005-12-29
3

Re: Forcer la casse du nom de l'utilisateur

Bonjour Pompon

D'abord Bonne Année : Plein de scripts PhP, du CSS en pagaille, de la bande passante, et tout plein de bonnes choses.

Je voulais savoir si finalement tes modifs marchent. Je suis en 1.5.2 et je suis intéressé pour les implémenter sur ma galerie : qu'un mot de passe soit sensible à la casse, je le comprends, par contre pour le nom d'utilisateur, ça me dérange... enfin surtout mes utilisateurs qui couinent...

Comme le thread a quelques posts, peut-être pourrais-tu faire un résumé explicite pour les néophytes comme moi.

Merci d'avance.


Olivier
Newbie en PWG, php, HTML, CSS et en bien d'autres choses encore...

Hors ligne

#9 2006-01-13 15:45:45

Pompon
Membre
Paris (FR)
2005-11-19
49

Re: Forcer la casse du nom de l'utilisateur

Salut OlivierV,

Désolé pour le retard.

Les modifs afin d'ignorer la casse du nom d'utilisateur ne marchent pas parfaitement :-(
Il doit y avoir quelquechose de faux ou une manipulation de plus à effectuer.
J'ai réussi sur une version 1.4.1 (mais pas sur toutes les bases de données 1.4.1 que j'ai installé sur différents comptes pour la famille !).

Malheureusement free n'arrête pas de me déconnecter du ftp des pages perso, pas pratique pour faire des tests sur la 1.5.2 !

Edit :
J'ai compris pourquoi cela ne marchait pas parfaitement sur la version 1.4.1. J'avais déjà des utilisateurs enregistrés avec des majuscules dans leur nom d'utilisateur avant d'appliquer le changement pour forcer la casse en minuscule.

Par contre impossible de trouver la bonne ligne à modifier dans le fichier include/functions_user.inc.php pour la 1.5.2. Tout marche parfaitement sauf si un nouvel utilisateur veut s'enregistrer avec un nom qui contient des majuscules :-(

Si quelqu'un est intéressé et a envie de se pencher sur la question qu'il n'hésite pas !

Dernière modification par Pompon (2006-01-13 17:43:30)


Environnement mac et hébergement chez free.

Hors ligne

#10 2006-08-21 17:40:43

Pompon
Membre
Paris (FR)
2005-11-19
49

Re: Forcer la casse du nom de l'utilisateur

Me revoilà avec cette histoire de casse pour le nom de l'utilisateur,

Je récapitule pour les retardataires ;-)
Je souhaite ignorer la casse du nom de l'utilisateur pour éviter aux visiteurs d'avoir à se souvenir que leur nom d'utilisateur est en majuscule ou en minuscule. Je souhaite également ne pas avoir deux utilisateurs dont le nom serait TEST et test

Après quelques mois de sommeil sur ce "projet", je suis reparti sur la piste de z0rglub et j'ai enfin réussi sur la version 1.5.2 (cela devrait également fonctionner sur la 1.6.1).

Voici les modifs (si vous partez sur une version déjà installée de PhpWebGallery, n'oubliez pas de mettre en minuscule dans votre base SQL le nom des utilisateurs déjà enregistrés dans la table USERS->username) :

Dans le fichier install.php :
Remplacer :

Code:

(1,\''.$admin_name.'\',\''.md5($admin_pass1).'\',\''.$admin_mail.'\')

Par :

Code:

(1,\''.( strtolower($admin_name)).'\',\''.md5($admin_pass1).'\',\''.$admin_mail.'\')

Dans le fichier identification.php :
Remplacer :

Code:

WHERE '.$conf['user_fields']['username'].' = \''.$username.'\'

Par :

Code:

WHERE '.$conf['user_fields']['username'].' = \''.( strtolower($username)).'\'

Dans le fichier include/functions_user.inc.php :
Remplacer :

Code:

if (get_userid($login))

Par :

Code:

  if (get_userid( strtolower($login)))

Remplacer également :

Code:

$conf['user_fields']['username'] => mysql_escape_string($login),

Par :

Code:

$conf['user_fields']['username'] => mysql_escape_string(strtolower($login)),

Remplacer aussi :

Code:

WHERE '.$conf['user_fields']['username'].' = \''.$username.'\'

Par :

Code:

WHERE '.$conf['user_fields']['username'].' = \''.( strtolower($username)).'\'

Vous pouvez ajouter ucfirst() à strtolower() si vous voulez mettre le tout premier caractère en majuscule. Plus d'informations à cette adresse Manuel PHP - ucfirst

Cela donnera par exemple pour le fichier identification.php

Code:

  WHERE '.$conf['user_fields']['username'].' = \''.(ucfirst( strtolower($username))).'\'

J'ai fait des tests en local et sur une page perso free, il n'y a pas eu de souci (L'utilisateur test peut s'identifier en tapant TEST ou TeSt...). Cela devrait marcher chez les autres hébergeurs.
J'espère ne pas avoir écrit trop de bêtises, car je n'y connais pas grand-chose en php.
@+


Environnement mac et hébergement chez free.

Hors ligne

#11 2007-09-26 00:23:56

Pompon
Membre
Paris (FR)
2005-11-19
49

Re: Forcer la casse du nom de l'utilisateur

Hello,

Je reposte la solution pour forcer la casse du nom de l'utilisateur pour la version 1.7 cette fois-ci, car certaines portions de codes ont déménagées depuis la 1.6 ;-)

Comme d'habitude si vous avez déjà installé PhpWebGallery, n'oubliez pas de mettre en minuscule dans votre base SQL le nom des utilisateurs déjà enregistrés dans la table USERS->username).

Dans le fichier install.php (utile si vous allez commencer une installation de PhpWebGallery, sinon vous pouvez passer à l'étape suivante) :
Remplacer :

Code:

'username'     => $admin_name,

Par :

Code:

'username'     => strtolower($admin_name),

La suite se passe désormais dans le fichier include/functions_user.inc.php :
Remplacer :

Code:

if (get_userid($login))

Par :

Code:

if (get_userid( strtolower($login)))

Remplacer :

Code:

$conf['user_fields']['username'] => mysql_escape_string($login),

Par :

Code:

$conf['user_fields']['username'] => mysql_escape_string(strtolower($login)),

Remplacer à deux endroits dans le fichier:

Code:

WHERE '.$conf['user_fields']['username'].' = \''.$username.'\'

Par :

Code:

WHERE '.$conf['user_fields']['username'].' = \''.( strtolower($username)).'\'

Voilà, mes tests en local marchent à vous de me dire si vous rencontrez un problème ou si je me suis trompé quelque part !
@+


Environnement mac et hébergement chez free.

Hors ligne

#12 2008-01-05 15:05:53

frantz
Membre
Saint Julien de Concelles
2006-10-11
57

Re: Forcer la casse du nom de l'utilisateur

Pompon a écrit:

Hello,

Je reposte la solution pour forcer la casse du nom de l'utilisateur pour la version 1.7 cette fois-ci, car certaines portions de codes ont déménagées depuis la 1.6 ;-)

Bonjour,

Ce que j'aimerais, c'est avoir la première lettre du nom d'utilisateur en majuscule
pour les courriers de notification. Je trouve ça plus sympa ;-)
Je m'étais débrouillé avec la 1.6, mais là, j'avoue que je suis un peu perdu.

Merci d'avance.

Cordialement.

Hors ligne

#13 2008-01-05 15:16:14

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: Forcer la casse du nom de l'utilisateur

Dans le fichier include/functions_mail.inc.php, fonction format_email, tu devrais pouvoir faire ce que tu veux!
Par contre, ce n'est pas possible en plugin.

En 1.7.1, ca sera possible par plugin mais un peu complexe.

Hors ligne

  •  » Utilisation
  •  » Forcer la casse du nom de l'utilisateur

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact