•  » Utilisation
  •  » lier les utilisateurs de piwigo avec une base de donnée externe..

#16 2010-02-10 12:54:22

Gotcha
Equipe Piwigo
Pierrelatte (26)
2007-03-14
13324

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

http://adresse_de_ton_site/admin.php


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

#17 2010-02-10 13:19:20

NiS
Membre
2010-02-09
85

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

ouais non ca je sais :) mais dans le menu je peux pas mettre un lien ? avec additionnal page ?

un onglet Administration qui m'enverrait vers cette addresse la ?

Hors ligne

#18 2010-02-10 13:30:32

Gotcha
Equipe Piwigo
Pierrelatte (26)
2007-03-14
13324

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

Avec Additional Page on peut... mais avec [extension by grum] Advanced Menu Manager c'est encore plus simple :-)


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

#19 2010-02-10 13:58:26

NiS
Membre
2010-02-09
85

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

huhuhh thx gotcha ca fonctionne :) merci bien :)

Hors ligne

#20 2010-02-10 14:07:25

Gotcha
Equipe Piwigo
Pierrelatte (26)
2007-03-14
13324

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

Et du coup, pour la double base utilisateur, vous allez faire comment au final ?


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

#21 2010-02-10 17:48:02

NiS
Membre
2010-02-09
85

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

euh ben je suis toujours dessus.. pcq je vais vriament en avoir besoin ..

Hors ligne

#22 2010-02-12 16:01:32

NiS
Membre
2010-02-09
85

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

bon je viens de lire attentivement le post que Pat a poster...

mais en soit moi j'ai pas vraiment ce probleme la vu que je suis administrateur sur les deux dbs.. je peux faire ce que je veux..

mais c'est un peu difficile de suivre le raissonement vu que bcp de fichier on été envoyé par mail..

mais je vais essayé parcontre de détailler correctement ce que je dois faire..

Bon alors tout dabord j'ai donc une table user chez piwigo que j'aimerais bien utiliser car je vais devoir mettre des permissions etc
et de l'autre coté j'ai une table user dans la db de phenix que j'ai besoin simplement pour que les utilisateurs puissent se connecter et voir leur planning..

J'ai une premier page d'interface avec deux liens un vers piwigo l'autre vers phenix et ce qui m'intéresse c'est donc de créé sur cette page un emplacement ou je peux mettre mon user pass pour me connecter en même temps aux deux outils et pas devoir a chaque fois inséré les informations.. (il me semble qu'il faut utiliser le system de session? ou web service ? fin je sais pas trop suis un peu perdu)

Est ce que ca faciliterais la chose si je mettais les tables des deux bases de données dans une seule ? est ce que passer par un server LDAP serait il plus facile et plus utile ?

voici me semble il la partie du code qui se permet de se connecter en tant qu'utilisateur sur la partie de phenix..

PS: les deux bases de données pour les utilisateurs est casi vide y a juste l'utilisateur administrateur
table utilisateur de phenix

Code:

`st_utilisateur` (`util_id`, `util_nom`, `util_prenom`, `util_login`, `util_passwd`, `util_interface`, `util_debut_journee`, `util_fin_journee`, `util_telephone_vf`, `util_planning`, `util_partage_planning`, `util_email`, `util_autorise_affect`, `util_alert_affect`, `util_precision_planning`, `util_semaine_type`, `util_duree_note`, `util_rappel_delai`, `util_rappel_type`, `util_rappel_email`, `util_format_nom`, `util_menu_dispo`, `util_url_export`, `util_note_barree`, `util_rappel_anniv`, `util_rappel_anniv_coeff`, `util_rappel_anniv_email`, `util_langue`, `util_timezone`, `util_timezone_partage`, `util_format_heure`, `util_fcke`, `util_fcke_toolbar`, `util_subst_id`, `util_couleur`, `util_dd`, `util_rss_reader`, `util_note_termine`, `util_note_expiree`) VALUES
(1, 'ADMINISTRATEUR', 'Phenix', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Bleue', 8.50, 18.00, 'O', 2, '0', '', '0', 'N', '1', '1111100', '1', 0, 1, 0, '0', '8', '56b365c0ac683dcdf21f328de17d94a3', 'O', 0, 1440, 0, 'fr', 'Europe/Paris', 'O', '24', 'N', 'Intermed', 0, '#A9C3DB', 1, NULL, '1', '0')

fichier php

Code:

<?php
  require("inc/nocache.inc.php");
  require("inc/html.inc.php");
  include("inc/param.inc.php");
  include("inc/fonctions.inc.php");
  if (!isset($sid)) {
    // Identification depuis le cookie
    if ($COOKIE_AUTH && empty($ztLogin)) {
      if (!empty($_COOKIE) && isset($_COOKIE[$COOKIE_NOM]))
        $tabLog = explode(":",$_COOKIE[$COOKIE_NOM]);
      elseif (!empty($HTTP_COOKIE_VARS) && isset($HTTP_COOKIE_VARS[$COOKIE_NOM]))
        $tabLog = explode(":",$HTTP_COOKIE_VARS[$COOKIE_NOM]);
      $ztLogin   = (get_magic_quotes_gpc()) ? stripslashes($tabLog[0]) : $tabLog[0];
      $ztPasswdMD5  = (get_magic_quotes_gpc()) ? stripslashes($tabLog[1]) : $tabLog[1];
      $hdScreen  = (get_magic_quotes_gpc()) ? stripslashes($tabLog[3]) : $tabLog[3];
      $autoLogin = $tabLog[2];
    }
    // Recherche de l'utilisateur correspondant
    $DB_CX->DbQuery("SELECT util_id, util_semaine_type FROM ${PREFIX_TABLE}utilisateur WHERE util_login = '".$ztLogin."' AND util_passwd = '".$ztPasswdMD5."'");

    if ($DB_CX->DbNumRows()) {
      // L'utilisateur existe
      $idUser = $DB_CX->DbResult(0,0);
      // On genere un nouveau sid
      mt_srand((double)microtime()*1000000);
      $sid = SessionId(8, $idUser, $DB_CX->DbResult(0,1), $hdScreen, false);
      $autoLogin += 0;
      if ($COOKIE_AUTH) // MAJ du cookie d'identification
        setcookie($COOKIE_NOM, $ztLogin.":".$ztPasswdMD5.":".$autoLogin.":".$hdScreen, time()+86400*$COOKIE_DUREE, "/", "", 0);
      if ($fromInstall=="1") // Menu Mise à jour
        $lienAdmin = "&tcMenu="._MENU_ADMIN;
      else
        $lienAdmin = "";
    }
    else {
      // L'utilisateur n'existe pas
      @session_destroy();
      // Fermeture BDD
      $DB_CX->DbDeconnect();
      Header("location: index.php?msg=1");
      exit;
    }
  }

  $idUser = Session_ok($sid);

  include("skins/$APPLI_STYLE.php");
  include("lang/$APPLI_LANGUE.php");

  // Recherche du nom de l'utilisateur
  // MOD Agenda par defaut
  //$DB_CX->DbQuery("SELECT DISTINCT util_id, CONCAT(".$FORMAT_NOM_UTIL.") AS nomUtil, util_url_export FROM ${PREFIX_TABLE}utilisateur LEFT JOIN ${PREFIX_TABLE}planning_partage ON ppl_util_id=util_id WHERE util_id=".$idUser." OR (util_partage_planning='1') OR (util_partage_planning='2' AND ppl_consultant_id=".$idUser.") ORDER BY nomUtil");
  $DB_CX->DbQuery("SELECT DISTINCT util_id, CONCAT(".$FORMAT_NOM_UTIL.") AS nomUtil, util_url_export, util_subst_id FROM ${PREFIX_TABLE}utilisateur LEFT JOIN ${PREFIX_TABLE}planning_partage ON ppl_util_id=util_id WHERE util_id=".$idUser." OR (util_partage_planning='1') OR (util_partage_planning='2' AND ppl_consultant_id=".$idUser.") ORDER BY nomUtil");
  // Fin MOD Agenda par defaut

  $urlsUtils = array();
  while ($enr = $DB_CX->DbNextRow()) {
    if ($enr['util_id']==$idUser) {
      $nomUtilisateur = $enr['nomUtil'];
      $url_user = $enr['util_url_export'];
      // MOD Agenda par defaut
      $idSubst = $enr['util_subst_id'];
      // Fin MOD Agenda par défaut
    }
    $nomsUtils[] = $enr['nomUtil'];
    $urlsUtils[] = $enr['util_url_export'];
    $idUtil[] = $enr['util_id'];
  }

  // MOD Agenda par defaut
  if (!empty($idSubst))
    $DB_CX->DbQuery("UPDATE ${PREFIX_TABLE}sid SET sid_util_subst_id=".$idSubst." WHERE sid_id='".$sid."'");
  // Fin MOD Agenda par defaut
  // Fermeture BDD
  $DB_CX->DbDeconnect();
?>

Dernière modification par NiS (2010-02-12 16:12:45)

Hors ligne

#23 2010-02-12 21:43:13

P@t
Équipe Piwigo
Nice
2007-06-13
5694

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

NiS a écrit:

Est ce que ca faciliterais la chose si je mettais les tables des deux bases de données dans une seule ? est ce que passer par un server LDAP serait il plus facile et plus utile ?

P@t a écrit:

N'as-tu pas la possibilité de partager la meme base de données aux deux applications (piwigo et phenix)?

C'est exactement ce que je demansais, et la réponse est OUI, incontestablement!
Dans ce cas, piwigo pourra sans problème utiliser la table des utilisateurs de phenix.

Pour ce faire, une fois que tes deux installations sont faites sur la meme base de donnée, dans piwigo, tu installeras et activeras le plugin LocalFiles Editor, puis dans le premier onglet (configuration), tu insèreras:

$conf['users_table'] = 'st_utilisateur';

$conf['user_fields'] = array(
  'id' => 'util_id',
  'username' => 'util_login',
  'password' => 'util_passwd',
  'email' => 'util_email'
  );

Ici, piwigo reconnaitra la table st_utilisateur comme table des utilistaurs, et fera le mappage necessaire.
[HS]Mais pourquoi phenix préfixe-t-il toutes les colonnes de la table utilisateur avec util_ ??? [/HS]

A priori, l'utilisateur administrateur a l'id 1 sur phenix, c'est parfait, on garde le meme pour piwigo, rien à changer.
Idem pour l'encryptage du mot de passe, ca a l'air d'etre du md5.

Par contre, très important, il faut créer un utilisateur invité avec l'id 2.
util_id => 2
util_login => guest
util_password => NULL
util_email => NULL

Maintenant, reste à créer ta page de login qui va te connecter sur les deux applications.... à suivre quand tu auras fait ces manips...


P@t

Hors ligne

#24 2010-02-15 12:57:13

NiS
Membre
2010-02-09
85

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

merci voila c'est fait :)

par contre j'ai su mettre via la base de donnée que le mdp était NULL pour le login guest comme tu m'as dis..

mais parcontre lorsque j'essaye de me connecter avec le compte guest et ne mettant pas de mot de passe il me met que je dois obligatoirement rentrer un mot de passe .. je sais pas si ca aura une importance..

En tout cas comme tu me l'as demandé y a deux compte 1 admin et 2 guest avec les informations que tu m'as dis :)

Maintenant autre question avant d'aller plus loin est ce que pour inscrire les utilisateurs je dois passer par piwigo ou par phenix ?


EDIT: Bon ben j'ai tester moi même et ca allaire nickel :) j'ai créé un utilisateur via phenix et il s'auto créé sur piwigo mais dans l'autre sens ca n'a pas l'air de fonctionner car il manque des informations dans les tables :) donc je sais ce que je dois faire pour créé les utilisateurs :)

maintenant saurait tu me dire la démarche a suivre pour faire ma page de connection ?

merci d'avance :)

Dernière modification par NiS (2010-02-15 13:15:23)

Hors ligne

#25 2010-02-15 15:08:18

P@t
Équipe Piwigo
Nice
2007-06-13
5694

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

NiS a écrit:

lorsque j'essaye de me connecter avec le compte guest et ne mettant pas de mot de passe il me met que je dois obligatoirement rentrer un mot de passe .. je sais pas si ca aura une importance..

Si c'est sur Piwigo que t'essayes de te connecter avec le compte guest sans mot de pase, c'est normal!
Quand un utilisateur parcours la galerie sans etre connecté, c'est en fait le compte guest (avec l'id 2) qui est utilisé.

Par contre, je ne sais pas si ca a une incidence sur phenix.... ca dit quoi quand tu essayes de te connecter sur phenix avec le compte guest?

NiS a écrit:

Maintenant autre question avant d'aller plus loin est ce que pour inscrire les utilisateurs je dois passer par piwigo ou par phenix ?

Vu que la table user contients plein d'infos relatives à phenix, il faut en effet mieux passer par phenix pour créer un nouvel utilisateur...

Si tu as absolument besoin de pouvoir créer des utilisateurs via piwigo, ca peut s'arranger.

Si en revanche la solution actuelle te convient, il va falloir interdire l'enregistrement d'utilisateurs via piwigo ainsi: panneau d'admin -> configuration -> générale -> décocher "Permettre l'enregistrement des utilisateurs".

NiS a écrit:

maintenant saurait tu me dire la démarche a suivre pour faire ma page de connection ?

Est-ce que tu as besoin d'une page de connection spécifique, ou est-ce que ca te conviendrait d'utiliser la connection de phenix (un utilisateur qui se connecte sur phenix sera automatiquement connecté sur piwigo)


P@t

Hors ligne

#26 2010-02-15 15:59:45

NiS
Membre
2010-02-09
85

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

NiS a écrit:

Maintenant autre question avant d'aller plus loin est ce que pour inscrire les utilisateurs je dois passer par piwigo ou par phenix ?

Vu que la table user contients plein d'infos relatives à phenix, il faut en effet mieux passer par phenix pour créer un nouvel utilisateur...

P@t a écrit:

Si tu as absolument besoin de pouvoir créer des utilisateurs via piwigo, ca peut s'arranger.

Si en revanche la solution actuelle te convient, il va falloir interdire l'enregistrement d'utilisateurs via piwigo ainsi: panneau d'admin -> configuration -> générale -> décocher "Permettre l'enregistrement des utilisateurs".

Oki non je passerais par phenix pas de probleme pour cela :)

(ps juste pour ta curiosité: ben il revient a la page identification.. comme si j'avais rien rentré.. mais je suppose que ca avoir avec le faite qu'il lui manque des informations pour cette utilisateur la comme tu as dis au dessus :) )

maintenant saurait tu me dire la démarche a suivre pour faire ma page de connection ?

P@t a écrit:

Est-ce que tu as besoin d'une page de connection spécifique, ou est-ce que ca te conviendrait d'utiliser la connection de phenix (un utilisateur qui se connecte sur phenix sera automatiquement connecté sur piwigo)

J'aimerais vraiment bien avoir une page a part aux deux outils qui me permettrait de greffer d'autre page a mon site ou d'autre outils..par après.. J''ai lu quelque tuto et explication sur comment cela fonctionnait si j'ai bien compris ca fonctionne avec un system de session grace a php..

J'ai vu que c'était plutot compliqué d'ouvrir la session sur mon site et d'en plus l'ouvrir sur piwigo fin j'ai pas très bien saisi..

Mais j'ai réfléchi a une astuce peut etre..  c'est d'ouvrir la session sur mon site grace a ca mes liens php vers mes deux outils seront généré avec les bonnes variables utilisateurs..


par contre pour piwigo je sais pas si c'est faisable...mais pour phenix ca l'es en tout cas exemple :

http://mon_site_phenix/phenix.php?ztLogin=login&ztPasswdMD5=mdp

Fin si tu as une meilleur idée je suis tout ouie :)

voila quelque passage de code qui pourront peut etre t'aider a m'aider :)

merci en tout cas de prendre tout ce temps pour me répondre

Si je me trompe pas c'est la partie du code de phenix qui permet d'ouvrir la session et de se connecter

Code:

  if (!isset($sid)) {
    // Identification depuis le cookie
    if ($COOKIE_AUTH && empty($ztLogin)) {
      if (!empty($_COOKIE) && isset($_COOKIE[$COOKIE_NOM]))
        $tabLog = explode(":",$_COOKIE[$COOKIE_NOM]);
      elseif (!empty($HTTP_COOKIE_VARS) && isset($HTTP_COOKIE_VARS[$COOKIE_NOM]))
        $tabLog = explode(":",$HTTP_COOKIE_VARS[$COOKIE_NOM]);
      $ztLogin   = (get_magic_quotes_gpc()) ? stripslashes($tabLog[0]) : $tabLog[0];
      $ztPasswdMD5  = (get_magic_quotes_gpc()) ? stripslashes($tabLog[1]) : $tabLog[1];
      $hdScreen  = (get_magic_quotes_gpc()) ? stripslashes($tabLog[3]) : $tabLog[3];
      $autoLogin = $tabLog[2];
    }
    // Recherche de l'utilisateur correspondant
    $DB_CX->DbQuery("SELECT util_id, util_semaine_type FROM ${PREFIX_TABLE}utilisateur WHERE util_login = '".$ztLogin."' AND util_passwd = '".$ztPasswdMD5."'");

    if ($DB_CX->DbNumRows()) {
      // L'utilisateur existe
      $idUser = $DB_CX->DbResult(0,0);
      // On genere un nouveau sid
      mt_srand((double)microtime()*1000000);
      $sid = SessionId(8, $idUser, $DB_CX->DbResult(0,1), $hdScreen, false);
      $autoLogin += 0;
      if ($COOKIE_AUTH) // MAJ du cookie d'identification
        setcookie($COOKIE_NOM, $ztLogin.":".$ztPasswdMD5.":".$autoLogin.":".$hdScreen, time()+86400*$COOKIE_DUREE, "/", "", 0);
      if ($fromInstall=="1") // Menu Mise à jour
        $lienAdmin = "&tcMenu="._MENU_ADMIN;
      else
        $lienAdmin = "";
    }
    else {
      // L'utilisateur n'existe pas
      @session_destroy();
      // Fermeture BDD
      $DB_CX->DbDeconnect();
      Header("location: index.php?msg=1");
      exit;
    }
  }

  $idUser = Session_ok($sid);

  include("skins/$APPLI_STYLE.php");
  include("lang/$APPLI_LANGUE.php");

  // Recherche du nom de l'utilisateur
  $DB_CX->DbQuery("SELECT DISTINCT util_id, CONCAT(".$FORMAT_NOM_UTIL.") AS nomUtil, util_url_export FROM ${PREFIX_TABLE}utilisateur LEFT JOIN ${PREFIX_TABLE}planning_partage ON ppl_util_id=util_id WHERE util_id=".$idUser." OR (util_partage_planning='1') OR (util_partage_planning='2' AND ppl_consultant_id=".$idUser.") ORDER BY nomUtil");

  $urlsUtils = array();
  while ($enr = $DB_CX->DbNextRow()) {
    if ($enr['util_id']==$idUser) {
      $nomUtilisateur = $enr['nomUtil'];
      $url_user = $enr['util_url_export'];
    }
    $nomsUtils[] = $enr['nomUtil'];
    $urlsUtils[] = $enr['util_url_export'];
    $idUtil[] = $enr['util_id'];
  }

  // Fermeture BDD
  $DB_CX->DbDeconnect();

Si je me trompe pas ca c'est le formulaire pour entre son user pass pour phenix

Code:

<BODY leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" onLoad="javascript: window.focus(); document.formLogUtil.ztLogin.focus();">
  <BR><BR><TABLE border=0 cellpadding=0 cellspacing=0 width="100%">
  <TR height=24>
<?php message($msg); ?>
  </TR>
  <TR>
    <TD valign="top" align="center" width="100%"><FORM action="phenix.php" method="post" name="formLogUtil" id="formLogUtil" target="_top" onSubmit="javascript: return saisieOK(this);">
      <TABLE border="0" cellspacing="0" cellpadding="0" align="center">
      <TR>
        <TD height="100" nowrap>&nbsp;</TD>
      </TR>
      <TR>
        <TD valign="top" align="center"><TABLE border="0" cellspacing="0" cellpadding="0" style="border-collapse:separate;">
          <TR>
            <TD colspan="2" class="ProfilMenuActif" align="center" valign="middle" height="18" style="font-size:12px;"><B>Phenix v<?php echo $APPLI_VERSION; ?></B></TD>
            <TD><img src="<?php echo (file_exists("skins/".$APPLI_STYLE."/ombre_1.png") ? "skins/".$APPLI_STYLE."/ombre_1.png" : (file_exists("skins/".$APPLI_STYLE."/ombre_1.gif") ? "skins/".$APPLI_STYLE."/ombre_1.gif" : "image/index/ombre_1b.gif")); ?>" alt="" width="6" height="18" border="0"></TD>
          </TR>
          <TR>
            <TD colspan="2" align="center" class="bordLRB" bgcolor="<?php echo $bgColor[1]; ?>"><TABLE border="0" cellspacing="0" cellpadding="2" style="font-size:11px;">
              <TR>
                <TD height="18" colspan=3>&nbsp;</TD>
              </TR>
              <TR>
                <TD height="22"><?php echo trad("INDEX_UTILISATEUR"); ?>&nbsp;</TD>
                <TD><INPUT type="text" class="Texte" name="ztLogin" size="15" maxlength="12" value="<?php echo $ztLogin; ?>"></TD>
                <TD rowspan=3 align="right" width="80"><img src="<?php echo (file_exists("skins/".$APPLI_STYLE."/login.png") ? "skins/".$APPLI_STYLE."/login.png" : (file_exists("skins/".$APPLI_STYLE."/login.gif") ? "skins/".$APPLI_STYLE."/login.gif" : "image/index/login.gif")); ?>" alt="" width="64" height="64" border="0"></TD>
              </TR>
              <TR>
                <TD height="22" nowrap><?php echo trad("INDEX_PASSWORD"); ?>&nbsp;&nbsp;</TD>
                <TD><INPUT type="password" class="Texte" name="ztPasswd" size="15" maxlength="12" value="<?php echo $ztPasswd; ?>"><INPUT type="hidden" name="ztPasswdMD5"></TD>
              </TR>
              <TR>
                <TD height="22" colspan="2" nowrap><?php if ($COOKIE_AUTH) { ?><?php echo trad("INDEX_COOKIE"); ?>&nbsp;&nbsp;<INPUT type="checkbox" class="case" name="autoLogin" value="1"><?php } ?>&nbsp;</TD>
              </TR>
              <TR>
                <TD height="50" colspan="3" align="center" valign="middle"><INPUT type="submit" class="Bouton" value="<?php echo trad("INDEX_CONNECTER"); ?>" name="btSubmit"><?php if ($PUBLIC) { ?>&nbsp;&nbsp;&nbsp;<INPUT type="button" class="Bouton" value="<?php echo trad("INDEX_NOUVEAU"); ?>" name="btCreer" onClick="javascript: compteUtil();"><?php } ?></TD>
              </TR>
            </TABLE></TD>
            <TD><img src="<?php echo (file_exists("skins/".$APPLI_STYLE."/ombre_2.png") ? "skins/".$APPLI_STYLE."/ombre_2.png" : (file_exists("skins/".$APPLI_STYLE."/ombre_2.gif") ? "skins/".$APPLI_STYLE."/ombre_2.gif" : "image/index/ombre_2b.gif")); ?>" alt="" width="6" height="139" border="0"></TD>
          </TR>
          <TR>
            <TD><img src="<?php echo (file_exists("skins/".$APPLI_STYLE."/ombre_3.png") ? "skins/".$APPLI_STYLE."/ombre_3.png" : (file_exists("skins/".$APPLI_STYLE."/ombre_3.gif") ? "skins/".$APPLI_STYLE."/ombre_3.gif" : "image/index/ombre_3b.gif")); ?>" alt="" width="8" height="6" border="0"></TD>
            <TD><img src="<?php echo (file_exists("skins/".$APPLI_STYLE."/ombre_4.png") ? "skins/".$APPLI_STYLE."/ombre_4.png" : (file_exists("skins/".$APPLI_STYLE."/ombre_4.gif") ? "skins/".$APPLI_STYLE."/ombre_4.gif" : "image/index/ombre_4b.gif")); ?>" alt="" width="292" height="6" border="0"></TD>
            <TD><img src="<?php echo (file_exists("skins/".$APPLI_STYLE."/ombre_5.png") ? "skins/".$APPLI_STYLE."/ombre_5.png" : (file_exists("skins/".$APPLI_STYLE."/ombre_5.gif") ? "skins/".$APPLI_STYLE."/ombre_5.gif" : "image/index/ombre_5b.gif")); ?>" alt="" width="6" height="6" border="0"></TD>
          </TR>
        </TABLE></TD>
      </TR>
      </TABLE>
      <INPUT type="hidden" name="hdScreen"></TD>
    </FORM></TD>
  </TR>
  </TABLE>

Hors ligne

#27 2010-02-15 16:50:41

P@t
Équipe Piwigo
Nice
2007-06-13
5694

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

NiS a écrit:

J'aimerais vraiment bien avoir une page a part aux deux outils qui me permettrait de greffer d'autre page a mon site ou d'autre outils..par après.. J''ai lu quelque tuto et explication sur comment cela fonctionnait si j'ai bien compris ca fonctionne avec un system de session grace a php..

J'ai vu que c'était plutot compliqué d'ouvrir la session sur mon site et d'en plus l'ouvrir sur piwigo fin j'ai pas très bien saisi..

Mais j'ai réfléchi a une astuce peut etre..  c'est d'ouvrir la session sur mon site grace a ca mes liens php vers mes deux outils seront généré avec les bonnes variables utilisateurs..

Si tu veux créer une page login perso, à toi de gérer ca...
Pour que cette page logue l'utilisateur sur piwigo, c'est ici: [Forum, post 112964 by P@t in topic 15615] Enregistrement automatique depuis identification sur autre site

Un conseil, utilises la page de connection de phenix... voila les modifs à faire (en gras) sur le fichier index.php de phenix (5.01):

<?php if ($PUBLIC) { ?>

    function compteUtil() {
      window.location.href = "index.php?nc=1";
    }
<?php } ?>
  //-->
  </SCRIPT>
<script type="text/javascript">
function pwglog()
{
  var xhr;
  try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
  catch (e)
  {
    try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
    catch (e2)
    {
      try { xhr = new XMLHttpRequest(); }
      catch (e3) { return; }
    }
  }

  data = document.getElementsByName('formLogUtil')[0].elements;
  xhr.open( "POST", "../piwigo/ws.php",  false);
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xhr.send("method=pwg.session.login&username=" + data.ztLogin.value + "&password=" + data.ztPasswd.value);
}
</script>

</HEAD>

<BODY leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" onLoad="javascript: window.focus(); document.formLogUtil.ztLogin.focus();">

(en rouge, le chemin relatif vers le fichier ws.php de piwigo)

<TR>
  <TD height="50" colspan="3" align="center" valign="middle"><INPUT type="submit" class="Bouton" value="<?php echo trad("INDEX_CONNECTER"); ?>" name="btSubmit" onClick="pwglog();"><?php if ($PUBLIC) { ?>&nbsp;&nbsp;&nbsp;<INPUT type="button" class="Bouton" value="<?php echo trad("INDEX_NOUVEAU"); ?>" name="btCreer" onclick="javascript: compteUtil();"><?php } ?></TD>
</TR>


P@t

Hors ligne

#28 2010-02-15 18:00:29

NiS
Membre
2010-02-09
85

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

oki je vais tester tout ca :) mais si je fais ma propre page et que je suis tes indications est ce que ca se connectera a piwigo et en même temps a phenix ?

Hors ligne

#29 2010-02-15 18:24:52

P@t
Équipe Piwigo
Nice
2007-06-13
5694

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

NiS a écrit:

oki je vais tester tout ca :) mais si je fais ma propre page et que je suis tes indications est ce que ca se connectera a piwigo et en même temps a phenix ?

Si tu suis mes indications, ca se connecteras sans problème à piwigo... a toi de voir pour phenix.
Mon astuce fonctionne en ajax, donc peut importe à quelle page renvoit ton formulaire de connexion, c'est le javascript de la page de connexion qui s'occupera de connecter l'utilisateur à piwigo...

Il faut bien faire attention aux champs input de ton formulaire afin de les reporter dans le code javascript:

Comme dans mon exmple sur l'autre topic, si ton formulaire ressemble à ca:

<form method="post" name="mylogin" action="" >
  <input type="text" name="username" value="" >
  <input type="password" name="password" value="" >
  <input type="submit" value="submit" onClick="pwglog();">
</form>

Ton code javascript à  mettre dans ton head de la page html sera:

<script type="text/javascript">
function pwglog()
{
  var xhr;
  try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
  catch (e)
  {
    try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
    catch (e2)
    {
      try { xhr = new XMLHttpRequest(); }
      catch (e3) { return; }
    }
  }

  data = document.getElementsByName('mylogin')[0].elements;
  xhr.open( "POST", "piwigo/ws.php",  false);
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xhr.send("method=pwg.session.login&username=" + data.username.value + "&password=" + data.password.value);
}
</script>


P@t

Hors ligne

#30 2010-02-17 10:37:58

NiS
Membre
2010-02-09
85

Re: lier les utilisateurs de piwigo avec une base de donnée externe..

oki je vais voir ca attentivement :)

mais enleve moi d'un doute est ce que si je clique sur un des liens dans mon menu qui dirige vers soit phenix soit piwigo et que la personne se connecte est l'une de ces pages est ce que lorsqu'elle va vouloir aller sur l'autre page est ce qu'elle sera automatiquement connecté?

edit1: je viens de tester ca marche nickel quand je me connecte a phenix je suis automatiquement connecté a piwigo mais parcontre dans l'autre sens ca ne marche pas.. je vais essayé de voir l'astuce en partant de ton code javascript pour le mettre dans la page index de piwigo.. si ca marche je posterais ca :)

Dernière modification par NiS (2010-02-17 10:47:15)

Hors ligne

  •  » Utilisation
  •  » lier les utilisateurs de piwigo avec une base de donnée externe..

Pied de page des forums

Propulsé par FluxBB

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