Vastaa Viestiin

[RÉSOLU] Mot de passe sur chaque page

Pour poser toutes vos questions sur l'utilisation du logiciel GeneWeb (Version Windows, Linux, Mac). Attention, toutes les questions posées sur ce forum doivent uniquement concerner l'utilisation de GeneWeb sur votre ordinateur personnel.
rpoulin2010
male
Viestit: 358
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
Bonour,

Avez-vous déjà rencontré une installation Geneweb qui donne la possibilité d'entrer le mot de passe 'ami' (ou autre) sur chacune des pages si le mot n'est pas déjà introduit à la page d'accueil (welcome)? En fait je me demande si c'est louable d'avoir cette possibilité, par exemple en mettant le code approprié sur la page trailer (trl.txt) qui est habituellement incluse! Ou d'autres alternatives existent-elles ? Des idées? - Merci.

PS/ Voir mes commentaires qui suivent pour mise à jour de ma demande
Viimeksi muokannut rpoulin2010, 15 Marraskuu 2022, 04:54. Yhteensä muokattu 3 kertaa.
Ma page généalogie personnelle sur Geneweb en ligne V7, galerie photos, cartographie : http://bit.ly/2Tk30dx
rpoulin2010
male
Viestit: 358
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.

Re: Mot de passe sur chaque page

Viesti Kirjoittaja rpoulin2010 »

Et j'ai une sous question: Qu'est-ce qui fait que l'exécution de ce code, copié de la page Welcome, pour entrer le mot de passe (ou usager:mot de passe) et placé sur une autre page, nous ramène automatiquement à la page "Welcome" ?

Koodi: Valitse kaikki

 <div class="d-inline-flex flex-xs-row flex-md-column">
        %if;(bvar.wizard_passwd != "" or bvar.wizard_passwd_file != ""
          or bvar.friend_passwd != "" or bvar.friend_passwd_file != "")
          %if;(cgi and (not wizard and not friend))
            <form class="form-inline" method="post" action="%action;">
              %hidden;
              <div class="input-group mt-1">
                %(<label for="w" class="sr-only">[user/password/cancel]0:[user/password/cancel]1</label>%)
                <input type="text" class="form-control" name="w" title="[wizard/wizards/friend/friends/exterior]2/[wizard/wizards/friend/friends/exterior]0"
                placeholder="[user/password/cancel]0:[user/password/cancel]1" aria-label="password input" aria-describedby="username:password" autofocus>
                <div class="input-group-append">
                  <button type="submit" class="btn btn-primary">OK</button>
                </div>
              </div>
            </form>
          %end;
          %if;(bvar.auth_file = "")
            <div class="btn-group btn-group-xs mt-1" role="group">
            %if;(bvar.friend_passwd != "" or bvar.friend_passwd_file != "")
              %if;(not friend)
                %if;(not cgi)
                <!--w=f-->
                  <a href="%prefix;w=f" class="btn btn-outline-primary" role="button">[*wizard/wizards/friend/friends/exterior]2</a>
                %end;
              %else;
                <a href="#" class="btn btn-primary disabled" role="button">[*wizard/wizards/friend/friends/exterior]2%sq;
                 %if;(user.ident != "") %user.ident;%end;</a>
              %end;
            %end;
            %if;(bvar.wizard_passwd != "" or bvar.wizard_passwd_file != "")
              %if;(not wizard)
                %if;(not cgi)
                <!--w=w-->
                  <a href="%prefix;w=w" class="btn btn-outline-success" role="button">[*wizard/wizards/friend/friends/exterior]0</a>
                %end;
              %else;
                  <a href="#" class="btn btn-success disabled" role="button">[*wizard/wizards/friend/friends/exterior]0%sq;
                  %if;(user.ident != "") %user.ident;%end;</a>
              %end;
            %end;
            </div>
          %end;
          %if;((wizard and (bvar.wizard_passwd != "" or bvar.wizard_passwd_file != "")) or (friend and (bvar.friend_passwd != "" or bvar.friend_passwd_file != "")))
            <a class="btn btn-outline-danger btn-group btn-xs mt-1 ml-auto" href="%prefix;w=" role="button">[*disconnect]</a>
          %end;
        %end;
      </div>
Si je veux rester sur la même page d'où le code est exécuté que dois-je changer?

Merci!
Viimeksi muokannut rpoulin2010, 14 Huhtikuu 2020, 16:23. Yhteensä muokattu 1 kertaa.
Ma page généalogie personnelle sur Geneweb en ligne V7, galerie photos, cartographie : http://bit.ly/2Tk30dx
rpoulin2010
male
Viestit: 358
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.

Re: Mot de passe sur chaque page

Viesti Kirjoittaja rpoulin2010 »

Bon, ça se simplifie ... Je suis en mode CGI donc seulement cette partie du code est utile:

Koodi: Valitse kaikki

       %if;(bvar.wizard_passwd != "" or bvar.wizard_passwd_file != ""
          or bvar.friend_passwd != "" or bvar.friend_passwd_file != "")

        %if;(cgi and (not wizard and not friend))
            <form class="form-inline" method="post" action="%action;">
              %hidden;
              <div class="input-group mt-1">
                %(<label for="w" class="sr-only">[user/password/cancel]0:[user/password/cancel]1</label>%)
                     <input type="text" class="form-control" name="w" title="[wizard/wizards/friend/friends/exterior]2/[wizard/wizards/friend/friends/exterior]0"
                placeholder="[user/password/cancel]0:[user/password/cancel]1" aria-label="password input" aria-describedby="username:password" autofocus>
                <div class="input-group-append">
                  <button type="submit" class="btn btn-primary">OK</button>
                </div>
              </div>
            </form>
          %end;
Et je crois que ça se joue soit :

- sur l'attribut name="w" de la ligne input - Le w dirigerait vers la page Welcome. Il existe peut-être d'autres lettres dans la 'collection' de pages et parmi celles-ci une qui nous fait rester sur la même page?

- ou bien soit sur la méthode de la <Form> : <form class="form-inline" method="post" action="%prefix">
Ma page généalogie personnelle sur Geneweb en ligne V7, galerie photos, cartographie : http://bit.ly/2Tk30dx
rpoulin2010
male
Viestit: 358
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
Ma dernière mise à jour ...

Il m'apparait que c'est impossible de rester sur la même page après avoir saisie un mot de passe dans le formulaire - ainsi, inévitablement on est dirigé vers la page Welcome.

Alors j'ai pensé soumettre le formulaire Mot de Passe par jQuery au serveur Geneweb tout en restant sur la page d'où provient le formulaire (en l'occurrence la page trl.txt qui peut être annexée à toute page du template) - donc sur trl.txt j'ai le code suivant incluent ma fonction jQuery et le formulaire pour saisir le mot de passe

Koodi: Valitse kaikki

 <!-- $Id: trl.txt v 7.00 19/03/2018 07:46:01 rp -->  
    <head>
    <script language="JavaScript" type="text/JavaScript" src="/showhide.js"></script>
    <script type="text/javascript" src="jquery-3.5.0.js"></script>
    <script type="text/javascript">


$("form#data").submit(function() {
    var formData = new FormData(this);
    $.post($(this).attr("action"), formData, function() {
        // success
    });
    return false;
});

</script>
</head>

     <div class="d-inline-flex flex-xs-row flex-md-column">

       %if;(bvar.wizard_passwd != "" or bvar.wizard_passwd_file != ""
          or bvar.friend_passwd != "" or bvar.friend_passwd_file != "")
          %if;(cgi and (not wizard and not friend))
            <form id="data" class="form-inline" method="post" action="%action;" enctype="multipart/form-data">
              %hidden;
              <div class="input-group mt-1">
                %(<label for="w" class="sr-only">[user/password/cancel]0:[user/password/cancel]1</label>%)
                 <!--name="w"-->
              <input type="text" class="form-control" name="w" title="[wizard/wizards/friend/friends/exterior]2/[wizard/wizards/friend/friends/exterior]0"
               placeholder="[user/password/cancel]0:[user/password/cancel]1" aria-label="password input" aria-describedby="username:password" autofocus>
                <div class="input-group-append">
                  <button type="submit" class="btn btn-primary">OK</button>
                </div>
              </div>
            </form>
          %end;

          %if;((wizard and (bvar.wizard_passwd != "" or bvar.wizard_passwd_file != "")) or (friend and (bvar.friend_passwd != "" or bvar.friend_passwd_file != "")))
              %(<!--"%prefix;w="-->%)
            <a class="btn btn-outline-danger btn-group btn-xs mt-1 ml-auto" href="%prefix;w=" role="button">[*disconnect]</a>
          %end;
        %end;
        </div>
       </div>
Toujours est-il que ça ne fonctionne pas - le mot de passe en interprété mais on revient toujours à la page Welcome .

DONC : mes questions:

1. est-ce que je fais erreur avec le formulaire (Form) et qu'il est en réalité possible d'éviter le retour à la page Welcome en y changeant tout simplement le code sans avoir recours à jQuery ?

ou bien

2. est-ce que je fais erreur avec jQuey tel que montré. ?

Merci
Ma page généalogie personnelle sur Geneweb en ligne V7, galerie photos, cartographie : http://bit.ly/2Tk30dx
forhanp
forhanp
Viestit: 13839
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
Bonjour,

Cela ne se joue pas sur l'affichage, que vous modifiez à souhait dans vos exemples, mais sur le code serveur.
Vous faites un POST de votre formulaire, donc vous appelez votre serveur avec la valeur de l'attribut action : %action; (qui est remplacé à l'exécution par ce qui doit être, vu que je n'ai pas la page html, je ne peux pas vous en dire plus).
C'est après sur le serveur, qui reçoit cette action et qui la traite, qu'il faut changer la page de retour.
Les pages affichées n'indiquent jamais les pages suivantes (sauf un lien direct en GET), ce sont les serveurs qui font la navigation d'une page à l'autre.

Pour faire ce que vous voulez, il va falloir vous lancer dans une modification de code côté serveur.
Personnellement, je suis bien incapable de vous aider sur le sujet, je suis habituellement assez doué avec les langages de programmation (c'est un peu beaucoup mon métier), mais le OCaml me laisse hermétique.

Cordialement,
Pascal Forhan
rpoulin2010
male
Viestit: 358
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
Merci forhanp ..

La page 'test' mot de passe est disponible ici :
http://genepoulin.net/gene/geneweb7.cgi?b=poulin&m=S&n=&p=lini%C3%A8re

POur ce qui est du serveur je pensais à quelque chose comme « Submit form and stay on same page? » dont on peut voir une solution ici: https://stackoverflow.com/questions/5733808/submit-form-and-stay-on-same-page

D'après vous impossible avec le serveur Geneweb?
Ma page généalogie personnelle sur Geneweb en ligne V7, galerie photos, cartographie : http://bit.ly/2Tk30dx
forhanp
forhanp
Viestit: 13839
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
Bonjour,

La première chose que je ferais, c'est de virer les balises <HEAD> </HEAD> de trl.txt.
Le HTML s'en portera mieux.
Ensuite, le return false sur le submit devrait suffire pour rester sur la page.
Mais je ne connais pas le code sur le serveur et je ne sais pas s'il préempte quelque chose.

Cordialement,
Pascal Forhan
rpoulin2010
male
Viestit: 358
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
forhanp kirjoitti: 16 Huhtikuu 2020, 17:01 Bonjour,

La première chose que je ferais, c'est de virer les balises <HEAD> </HEAD> de trl.txt.
Le HTML s'en portera mieux.
Ensuite, le return false sur le submit devrait suffire pour rester sur la page.
Mais je ne connais pas le code sur le serveur et je ne sais pas s'il préempte quelque chose.

Cordialement,
Oui j'avais éliminé les balises déjà. Rien n'y fait.
Outre une réponse du serveur en retour du formulaire, il suffirait de modifier dans le navigateur l'adresse de la page active pour y ajouter ;w=motdepasse et relancer cette même page. Et voilà le tour serait joué!
Ma page généalogie personnelle sur Geneweb en ligne V7, galerie photos, cartographie : http://bit.ly/2Tk30dx
rpoulin2010
male
Viestit: 358
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
J'ai mis ça de côté temporairement - pour éventuellement en faire une demande officielle ... La possibilité d'entrer notre mot de passe sur chaque page (si pas déjà fait sur la page principale Welcome) et de pouvoir rester sur la page en cours.
Ma page généalogie personnelle sur Geneweb en ligne V7, galerie photos, cartographie : http://bit.ly/2Tk30dx
hgouraud
male
Viestit: 75
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
Avez vous essayé de rajouter ;w=ident:mdp à votre url?
A noter que cette solution transmet "en clair" votre ident:mdp.
rpoulin2010
male
Viestit: 358
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
hgouraud kirjoitti: 01 Elokuu 2020, 11:43 Avez vous essayé de rajouter ;w=ident:mdp à votre url?
A noter que cette solution transmet "en clair" votre ident:mdp.
Bonjour... désolé je n'avais pas vu votre réponse.
Oui c'est ce que je fais actuellement en transmettant un url. L'inconvénient est que si on donne le lien publiquement alors tous ceux qui lisent le commentaire ou publication auront accès à la base en tant qu'ami! Ce que j'aimerais est de pouvoir transmettre l'adresse d'une page personnelle sans mot de passe et de pouvoir entrer ce mot sur la page elle-même sans avoir à retourner à la page Welcome d'abord (ce faisant on perd le lien de la page transmise).
Ma page généalogie personnelle sur Geneweb en ligne V7, galerie photos, cartographie : http://bit.ly/2Tk30dx
hgouraud
male
Viestit: 75
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
Relu par hazard ce vieux post.

On peut rajouter dans perso.txt le morceau de code de welcome.txt qui gère l'authentification.

Koodi: Valitse kaikki

  <div class="d-flex flex-column flex-md-row justify-content-lg-center mt-2 mt-lg-4">
    %if;(bvar.auth_file="" and bvar.wizard_passwd!="" or bvar.friend_passwd!="")
...
  </div>
Il faut le modifier légèrement en y rajoutant la reprise des éléments de l'url courante :

Koodi: Valitse kaikki

                <a href="%prefix;w=w&%nn;
                  %foreach;env_binding;%if;(env.key!="w")&%env.key;=%env.val;%end;%end;"
                  class="btn btn-outline-success text-nowrap" role="button"  title="[*wizard/wizards/friend/friends/exterior]0"><i class="fas fa-hat-wizard mr-2" aria-hidden="true">
                  </i>[*wizard/wizards/friend/friends/exterior]0
On notera cependant que si l'url pointe vers une personne privée, elle ne sera pas du tout visible!
Cette proposition ne fonctionne donc que pour les personnes visibles (décédées ou publiques), mais permet la saisie de l'authentification sans avoir à repasser par la page welcome.
rpoulin2010
male
Viestit: 358
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
Merci - je vais essayer ce code
Ma page généalogie personnelle sur Geneweb en ligne V7, galerie photos, cartographie : http://bit.ly/2Tk30dx
rpoulin2010
male
Viestit: 358
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
Bonjour,

Je reviens à la page principale Welcome !
Ma page généalogie personnelle sur Geneweb en ligne V7, galerie photos, cartographie : http://bit.ly/2Tk30dx
hgouraud
male
Viestit: 75
Sisääntulotila: Teksti
Selailu: Teksti
Tarkastele heidän sukupuutaan.
Tu peux envoyer le code de perso.txt?
Vastaa Viestiin

Palaa sivulle “GeneWeb”