Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

rub
2008-01-05 15:16:14

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.

frantz
2008-01-05 15:05:53

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.

Pompon
2007-09-26 00:23:56

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 !
@+

Pompon
2006-08-21 17:40:43

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.
@+

Pompon
2006-01-13 15:45:45

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 !

OlivierV
2006-01-04 09:50:28

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.

Pompon
2005-11-20 01:15:27

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 ?

Pompon
2005-11-20 00:53:20

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.'\'
plg
2005-11-20 00:38:39

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

Pompon
2005-11-20 00:32:14

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 !

plg
2005-11-20 00:25:29

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à.

plg
2005-11-20 00:23:33

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)

Pompon
2005-11-20 00:08:46

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 ?

Pied de page des forums

Propulsé par FluxBB

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