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.
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.
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 :
'username' => $admin_name,
Par :
'username' => strtolower($admin_name),
La suite se passe désormais dans le fichier include/functions_user.inc.php :
Remplacer :
if (get_userid($login))
Par :
if (get_userid( strtolower($login)))
Remplacer :
$conf['user_fields']['username'] => mysql_escape_string($login),
Par :
$conf['user_fields']['username'] => mysql_escape_string(strtolower($login)),
Remplacer à deux endroits dans le fichier:
WHERE '.$conf['user_fields']['username'].' = \''.$username.'\'
Par :
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 !
@+
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 :
(1,\''.$admin_name.'\',\''.md5($admin_pass1).'\',\''.$admin_mail.'\')
Par :
(1,\''.( strtolower($admin_name)).'\',\''.md5($admin_pass1).'\',\''.$admin_mail.'\')
Dans le fichier identification.php :
Remplacer :
WHERE '.$conf['user_fields']['username'].' = \''.$username.'\'
Par :
WHERE '.$conf['user_fields']['username'].' = \''.( strtolower($username)).'\'
Dans le fichier include/functions_user.inc.php :
Remplacer :
if (get_userid($login))
Par :
if (get_userid( strtolower($login)))
Remplacer également :
$conf['user_fields']['username'] => mysql_escape_string($login),
Par :
$conf['user_fields']['username'] => mysql_escape_string(strtolower($login)),
Remplacer aussi :
WHERE '.$conf['user_fields']['username'].' = \''.$username.'\'
Par :
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
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.
@+
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 !
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.
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 :
WHERE '.$conf['user_fields']['username'].' = \''.( strtolower( $username ) ). '\'
Est-ce mieux ?
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 :
WHERE username = \''.$login.'\'
Par :
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
WHERE '.$conf['user_fields']['username'].' = \''.$username.'\'
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
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 !
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à.
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)
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 :
WHERE username = \''.$_POST['username'].'\'
Par :
WHERE username = \''.( strtolower( $_POST['username'] ) ).'\'
- Pour la version 1.5 :
Remplacer :
WHERE '.$conf['user_fields']['username'].' = \''.$username.'\'
Par :
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 ?