Bonjour, j'utilise 2 scripts PHP pour mon site perso, phpBB 2.0.20 et phpWG 1.5.2.
J'aimerai qu'un utilisateur qui se créé un compte sous phpBB ait également automatiquement un compte créé sous phpWG. j'ai donc pensé (arrétez moi si je me trompe) que phpWG pourrait utilisater la table "users" de phpBB qui contient les mêmes infos (et même plus). Mais comment spécifier sous phpWG quelle table utiliser lors de l'authentification ? De plus, les champs entre phpBB et phpWG ne portent pas les même noms, donc comment s'assurer du bon mappage ?
A la fin, l'idée est donc de pouvoir supprimer la possibilité d'inscription sous phpWG et de ne laisser que le formulaire d'authentification quand on veut naviguer dans les galeries de photos.
Merci d'avance.
Dernière modification par silkzombie (2006-06-06 13:32:53)
Hors ligne
Tu es mûr pour lire la section "Authentication" du fichier include/config_default.inc.php :-) (n'oublies pas de créer include/config_local.inc.php si tu veux modifier la configuration)
Hors ligne
Effectivement tout y est.
Je doit donc copier la partie Authentification dans le fichier config_local.inc.php puis la modifier.
Ce qui nous donnerai :
// +-----------------------------------------------------------------------+
// | authentification |
// +-----------------------------------------------------------------------+
// apache_authentication : utiliser l'authentification HTTP d'Apache comme
// référence au lieu de la table des utilisateurs ?
$conf['apache_authentication'] = false;
// users_table : quelle table est la table de référence pour les
// utilisateurs ? Peut être une table externe à PhpWebGallery.
//
// Si vous décidez d'utiliser une table externe, vous devez préparer votre
// base de données en supprimant certains données :
//
// delete from phpwebgallery_user_access;
// delete from phpwebgallery_user_cache;
// delete from phpwebgallery_user_feed;
// delete from phpwebgallery_user_group;
// delete from phpwebgallery_user_infos;
// delete from phpwebgallery_sessions;
// delete from phpwebgallery_rate;
// update phpwebgallery_images set average_rate = NULL;
// delete from phpwebgallery_caddie;
// delete from phpwebgallery_favorites;
// Toutes les informations contenues dans ces tables sont relatives au
// contenu de la table des utilisateurs.
$conf['users_table'] = $phpbb_users';
// user_fields : correspondance entre un nom générique de champ et le nom
// spécifique dans la table. Par exemple, dans PhpWebGallery, l'adresse
// email est "mail_address" et dans PunBB, son nom est "email".
$conf['user_fields'] = array(
'id' => 'user_id', // champ phpBB
'username' => 'username', // champ phpBB
'password' => 'user_password', // champ phpBB
'email' => 'user_email' // champ phpBB
);
// pass_convert : fonction pour chiffrer ou hasher le mot de passe afin de
// le stocker en base de donnée.
// $conf['pass_convert'] = create_function('$s', 'return md5($s);');
// guest_id : identifiant de l'invité
$conf['guest_id'] = -1; // ID du guest sous phpBB
// webmaster_id : identifiant du webmaster
$conf['webmaster_id'] = 3; // ID de l'administrateur sous phpBB
// +-----------------------------------------------------------------------+
// | end authentification |
// +-----------------------------------------------------------------------+
Par contre, une petite précision, dois-je mettre en commentaire la ligne concernant le cryptage du mot de passe ? => $conf['pass_convert'] = create_function('$s', 'return md5($s);');
De plus, quel est l'utilité de cette ligne ? => update phpwebgallery_images set average_rate = NULL;
En tout cas, merci beaucoup Z0rglub pour une réponse si rapide.
Dernière modification par silkzombie (2006-06-06 16:15:01)
Hors ligne
silkzombie a écrit:
Par contre, une petite précision, dois-je mettre en commentaire la ligne concernant le cryptage du mot de passe ? => $conf['pass_convert'] = create_function('$s', 'return md5($s);');
Si tu la mets en commentaire dans config_local.inc.php, tu utiliseras la fonction par défaut configuré dans config_default.inc.php. Il me semble bien que dans phpBB, les mots de passe des utilisateurs sont hashés en MD5, donc c'est bon.
silkzombie a écrit:
De plus, quel est l'utilité de cette ligne ? => update phpwebgallery_images set average_rate = NULL;
#images.average_rate est une valeur calculée à partir des lignes de #rates, donc il convient de la remettre à zero si on supprime les lignes de #rates. C'est un cache...
Hors ligne
Je confirme que phpBB hash en md5 le mot de passe.
Ok, bon ba je teste tout ça dès que possible et reviendrai donc cloturer le tout ou encore poser pleins de questions...
Merci beaucoup zOrglub !!!
Hors ligne
Bon ba plantage, à priori cela vient de la synthaxe utilisée pour appeler la table "phpbb_users".
Est-ce la bonne appellation ??? => $conf['users_table'] = '$phpbb_users';
Merci d'avance et désolé pour le boulet attitude !!!
Hors ligne
$conf['users_table'] = 'phpbb_users';
Devrait être meilleur, à vérifier.
Hors ligne
Bonjour bonjour, bon je suis vraiment désolé pour ce retard mais j'ai donc fini par faire le test (en appliquant le conseil de VDigital précédent bien sur), malheureusement cela ne marche pas, voici le message d'erreur :
SELECT ui.*, uc.*
FROM phpwebgallery_user_infos AS ui LEFT JOIN phpwebgallery_user_cache AS uc
ON ui.user_id = uc.user_id
WHERE ui.user_id = '-1'
;
[mysql error 1146] Table 'perfectb_bdd.phpwebgallery_user_infos' doesn't exist
Le problème semble toujours venir de l'appel de la table "users" du phpBB non ?
Une idée ?
Dernière modification par silkzombie (2006-06-15 13:38:19)
Hors ligne
Pour information, les tables suivantes ont bien été supprimées :
- phpwebgallery_user_access
- phpwebgallery_user_cache
- phpwebgallery_user_feed
- phpwebgallery_user_group
- phpwebgallery_user_infos
- phpwebgallery_sessions
- phpwebgallery_rate
- phpwebgallery_caddie
- phpwebgallery_favorites
De plus, la variable average_rate de la table phpwebgallery_images à bien été mise à NULL pour toutes les photos.
Dernière modification par silkzombie (2006-06-15 13:56:16)
Hors ligne
Pour avancer un peu j'ai fait un test tout bête, j'ai remis le fichier config_local.inc.php d'origine tout en laissant la base de donnée allégée des 9 tables nommées précédemment. Le message d'erreur est le même :
SELECT ui.*, uc.*
FROM phpwebgallery_user_infos AS ui LEFT JOIN phpwebgallery_user_cache AS uc
ON ui.user_id = uc.user_id
WHERE ui.user_id = '2'
;
[mysql error 1146] Table 'perfectb_bdd.phpwebgallery_user_infos' doesn't exist
Il semblerait bien que la partir "authentification" du fichier de configuration local ne soit pas prise en compte ? Dois-je également supprimer la table phpwebgallery_users ?
Dernière modification par silkzombie (2006-06-15 14:09:36)
Hors ligne
Bon alors, je me trompe peut-être mais il me semble qu'il faille vider ces tables, pas les supprimer (mon sql n'est pas parfait donc je veux bien que quelqu'un confirme).
Et as tu aussi exécuter cette instruction ? update phpwebgallery_images set average_rate = NULL;
Hors ligne
Un grand merci !!!
En effet, il faut vider les tables. Cela semble tourner correctement. Bon il reste LE test ultime, créer un nouveau compte sous phpBB et voir si il apparait sous phpWG.
Je vous tiens au courant.
Hors ligne
Et bien ça tourne. Le nouvel utilisateur créé sous phpBB est bien actif sous phpWG.
Encore merci pour votre patience et votre aide. Maintenant j'ai plus qu'à trouver comment supprimer l'inscription sous phpWG.
Bonne soirée.
Hors ligne
Bonjour, je vous rassure tout de suite, tout fonctionne, mais je souhaite simplement proposer de clarifier la partie "Authentification" du fichier config_local.inc.php, en effet, il est écrit :
delete from phpwebgallery_user_access;
delete from phpwebgallery_user_cache;
delete from phpwebgallery_user_feed;
delete from phpwebgallery_user_group;
delete from phpwebgallery_user_infos;
delete from phpwebgallery_sessions;
delete from phpwebgallery_rate;
update phpwebgallery_images set average_rate = NULL;
delete from phpwebgallery_caddie;
delete from phpwebgallery_favorites;
On suppose donc qu'il faut supprimer les tables, hors il faut seulement les vider, donc :
TRUNCATE `phpwebgallery_caddie`;
TRUNCATE `phpwebgallery_favorites`;
TRUNCATE `phpwebgallery_rate`;
TRUNCATE `phpwebgallery_sessions`;
TRUNCATE `phpwebgallery_user_access`;
TRUNCATE `phpwebgallery_user_cache`;
TRUNCATE `phpwebgallery_user_feed`;
TRUNCATE `phpwebgallery_user_group`;
TRUNCATE `phpwebgallery_user_infos`;
De plus, pour ma part, je n'ai pas effectuer l'action update phpwebgallery_images set average_rate = NULL;.
Bonne journée.
Dernière modification par silkzombie (2006-06-16 09:15:50)
Hors ligne