Protection de forum par mot de passe

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Protection de forum par mot de passe

Message par Amallia le Jeu 11 Aoû 2011 - 15:01

Bonjour...

J'ai suivit ce topic:
http://forum.forumactif.com/t298068p30-proteger-l-acces-a-un-sous-forum-par-mot-de-passe

Pour pouvoir protéger différent forum par mot de passe...Cependant...Ca ne fonctionne pas et je ne comprend pas pourquoi...

Voici mon script:
Code:
var params= new Array();

function addRestrict(mdp,refus,demande,num_forum) {
    params.push(new Array(mdp,refus,demande,num_forum));
}

addRestrict('Caput Draconis','Le mur de pierres ne bouge pas.','Face a un mur de pierres magiques, il faut donner le bon mot de passe pour qu'il s\'ouvre...','f6');
addRestrict('Fariboles','Il y a que le vide devant vous...','Une porte s\'ouvre sur le vide...Il faut le bon mot de passe pour que l\'escalier apparait...','f9');
addRestrict('Bananes frites','La grosse dame repond: Ce n\'est pas le bon mot de passe !','La grosse dame du tableau: Mot de passe s\'il vous plais ?!','f52');
addRestrict('Quid Agis','Le portrait de Rowena répond: Je ne peux pas vous laissez entrer...','Le portrait de Rowena: Puis je avoir le mot de passe s\'il vous plait ?','f62');
 
function testLogin(forum,password,notok,request) {
    document.body.style.display='none';
    while((mdp=prompt(request)) && mdp!=password || mdp=='');
    if(password!=mdp) jQuery(document).ready(function(){jQuery('body').html(notok);});
    else my_setcookie('unrestrict_'+forum,'1',1,0);
    jQuery(document).ready(function(){document.body.style.display='';});
}

for(var iter=0;iter<params.length;iter++) {
    if(window.location.pathname.match(new RegExp('^\/'+params[iter][3]+'(p[1-9][0-9]*)?-[-a-z]*', '')) && my_getcookie('unrestrict_'+params[iter][3])!=1) { testLogin(params[iter][3],params[iter][0],params[iter][1],params[iter][2]); }
else $(function(){ if($('.pathname-box .nav[href^=/'+params[iter][3]+'-]').length && my_getcookie('unrestrict_'+params[iter][3])!=1) { testLogin(params[iter][3],params[iter][0],params[iter][1],params[iter][2]); } });
}

Que j'ai mis ensuite dans une nouvelle page html

Et j'ai placé ceci dans ma description:

Code:
<script type=text/javascript src=/h2-mot-de-passe.htm></script>

Mais rien y fait, les mots de passes ne sont pas demander...

J'ai voulu essayer en le plaçant alors dans le template Overall_Header ( je n'ai pas trouver le template Overall_Header_New comme il est expliqué sur le topic que j'ai suivit ) après la balise <body> mais ça m'a afficher le code sur mon forum ( comme des lignes de texte normal )

Je m'arrache les cheveux pour essayer de comprendre pourquoi ça fonctionne pas T_T
Alors merci pour votre aide qui me sera très certainement précieuse ! ^^


Dernière édition par Amallia le Sam 13 Aoû 2011 - 18:19, édité 1 fois

Amallia
**

Féminin
Messages : 71
Inscrit(e) le : 14/01/2011

http://game-of-thrones.1fr1.net/
Amallia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Ea le Jeu 11 Aoû 2011 - 19:23

Bonjour,


En remplaçant pour qu'il par pour qu\'il ça me semble ok.

Ea
Aidactif
Aidactif

Messages : 23447
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Amallia le Jeu 11 Aoû 2011 - 20:24

Ah en effet, je l'avais louper lui :p

*va faire la correction et voir si ça fonctionne*

T_T Ca fonctionne pas...

Pourtant je l'ai bien dans une page html...
Ici

Donc je récapitule ce que j'ai fais:
J'ai fais une nouvelle page html avec le code ( voir premier post ) que j'ai appelé "mot de passe", je n'ai pas touché aux options, c'est à dire:

"Voulez-vous utiliser le haut et le bas de page de votre forum ?"
J'ai laissé le "non" coché

"Utiliser cette page en tant que page d'accueil ?"
Idem, j'ai laissé le "non" coché.

Ensuite, je suis allez dans l'onglet: General => Configuration
Et j'ai mis dans la description:
Code:
<script type=text/javascript src=/h2-mot-de-passe.htm></script>

Et voilà ( ")

Bon ensuite j'ai fais la correction sur le "pour qu'il" que j'avais zappé ^^

Donc voilà le nouveau code concrètement:

Code:
    var params= new Array();

    function addRestrict(mdp,refus,demande,num_forum) {
        params.push(new Array(mdp,refus,demande,num_forum));
    }

    addRestrict('Caput Draconis','Le mur de pierres ne bouge pas.','Face a un mur de pierres magiques, il faut donner le bon mot de passe pour qu\'il s\'ouvre...','f6');
    addRestrict('Fariboles','Il y a que le vide devant vous...','Une porte s\'ouvre sur le vide...Il faut le bon mot de passe pour que l\'escalier apparait...','f9');
    addRestrict('Bananes frites','La grosse dame repond: Ce n\'est pas le bon mot de passe !','La grosse dame du tableau: Mot de passe s\'il vous plais ?!','f52');
    addRestrict('Quid Agis','Le portrait de Rowena répond: Je ne peux pas vous laissez entrer...','Le portrait de Rowena: Puis je avoir le mot de passe s\'il vous plait ?','f62');
   
    function testLogin(forum,password,notok,request) {
        document.body.style.display='none';
        while((mdp=prompt(request)) && mdp!=password || mdp=='');
        if(password!=mdp) jQuery(document).ready(function(){jQuery('body').html(notok);});
        else my_setcookie('unrestrict_'+forum,'1',1,0);
        jQuery(document).ready(function(){document.body.style.display='';});
    }

    for(var iter=0;iter<params.length;iter++) {
        if(window.location.pathname.match(new RegExp('^\/'+params[iter][3]+'(p[1-9][0-9]*)?-[-a-z]*', '')) && my_getcookie('unrestrict_'+params[iter][3])!=1) { testLogin(params[iter][3],params[iter][0],params[iter][1],params[iter][2]); }
    else $(function(){ if($('.pathname-box .nav[href^=/'+params[iter][3]+'-]').length && my_getcookie('unrestrict_'+params[iter][3])!=1) { testLogin(params[iter][3],params[iter][0],params[iter][1],params[iter][2]); } });
    }
 

Est-ce qu'il faut rajouté quelque chose quelque part pour qu'un script fonctionne sur forumactif où alors c'est vraiment moi qui ai fait une erreur dans le code ? ^^

En tout cas merci de t'intéresser à mon pauvre cas XD

Amallia
**

Féminin
Messages : 71
Inscrit(e) le : 14/01/2011

http://game-of-thrones.1fr1.net/
Amallia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Amallia le Ven 12 Aoû 2011 - 19:56

un piti up

Amallia
**

Féminin
Messages : 71
Inscrit(e) le : 14/01/2011

http://game-of-thrones.1fr1.net/
Amallia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Ea le Ven 12 Aoû 2011 - 20:35

Si je l'exécute là : http://maraudeurs-en-folie.forums-actifs.com/f6-voyage-voyage cela fonctionne, vous êtes sur d'avoir bien lié la page ?

Sinon j'avais fait un autre script un peu mieux depuis mais il faudrait que je le retrouve ^^

Ea
Aidactif
Aidactif

Messages : 23447
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Amallia le Ven 12 Aoû 2011 - 20:43

C'est pas pour ce forum mais pour celui-ci:

http://themaradeursbook.forumgratuit.org/

Si tu le souhaite, je peux te donner ( par mp bien évidemment XD ) mon compte "pnj" qui a accès au panneau de config si ça peut aider...

Ou alors, je reprend tout refaire de zero avec ton nouveau code si c'est possible xD

normalement c'est censé se mettre les salles communes ( comme tu peux certainement le deviner ). Je pense avoir bien lier les forums en question...


Amallia
**

Féminin
Messages : 71
Inscrit(e) le : 14/01/2011

http://game-of-thrones.1fr1.net/
Amallia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Ea le Sam 13 Aoû 2011 - 11:47

La page html est découpée :

Code:
var params= new Array();
 
function addRestrict(mdp,refus,demande,num_forum) {
    params.push(new Array(mdp,refus,demande,num_forum));
}
 
addRestrict('Caput Draconis','Le mur de pierres ne bouge pas.','Face a un mur de pierres magiques, il faut donner le bon mot de passe pour qu\'il s\'ouvre...','f6');
addRestrict('Fariboles','Il y a que le vide devant vous...','Une porte s\'ouvre sur le vide...Il faut le bon mot de passe pour que l\'escalier apparait...','f9');
addRestrict('Bananes frites','La grosse dame repond: Ce n\'est pas le bon mot de passe !','La grosse dame du tableau: Mot de passe s\'il vous plais ?!','f52');
addRestrict('Quid Agis','La portrait de Rowena répond: Je ne peux pas vous laissez entrer...','Le portrait de Rowena: Puis je avoir le mot de passe s\'il vous plait ?','f62');
 
function testLogin(forum,password,notok,request) {
    document.body.style.display='none';
    while((mdp=prompt(request)) && mdp!=password || mdp=='');
    if(password!=mdp) jQuery(document).ready(function(){jQuery('body').html(notok);});
    else my_setcookie('unrestrict_'+forum,'1',1,0);
    jQuery(document).ready(function(){document.body.style.display='';});
}
 
for(var iter=0;iter
En compactant ça donne :

Code:
    var params= new Array();

    function addRestrict(mdp,refus,demande,num_forum) {
        params.push(new Array(mdp,refus,demande,num_forum));
    }

    addRestrict('Caput Draconis','Le mur de pierres ne bouge pas.','Face a un mur de pierres magiques, il faut donner le bon mot de passe pour qu\'il s\'ouvre...','f6');
    addRestrict('Fariboles','Il y a que le vide devant vous...','Une porte s\'ouvre sur le vide...Il faut le bon mot de passe pour que l\'escalier apparait...','f9');
    addRestrict('Bananes frites','La grosse dame repond: Ce n\'est pas le bon mot de passe !','La grosse dame du tableau: Mot de passe s\'il vous plais ?!','f52');
    addRestrict('Quid Agis','Le portrait de Rowena répond: Je ne peux pas vous laissez entrer...','Le portrait de Rowena: Puis je avoir le mot de passe s\'il vous plait ?','f62');

function testLogin(b,a,c,d){for(document.body.style.display="none";(mdp=prompt(d))&&mdp!=a||mdp=="";);a!=mdp?jQuery(document).ready(function(){jQuery("body").html(c)}):my_setcookie("unrestrict_"+b,"1",1,0);jQuery(document).ready(function(){document.body.style.display=""})}
for(var iter=0;iter<params.length;iter++)window.location.pathname.match(RegExp("^/"+params[iter][3]+"(p[1-9][0-9]*)?-[-a-z]*",""))&&my_getcookie("unrestrict_"+params[iter][3])!=1?testLogin(params[iter][3],params[iter][0],params[iter][1],params[iter][2]):$(function(){$(".pathname-box .nav[href^=/"+params[iter][3]+"-]").length&&my_getcookie("unrestrict_"+params[iter][3])!=1&&testLogin(params[iter][3],params[iter][0],params[iter][1],params[iter][2])});

Pour le nouveau code je l'ai retrouvé il est ici, il faut le mettre sur les pages de sous-forum de de sujets ( voir gestion des codes javascript ).

Pour la modification, les accès sont mis dans les lignes :

Code:
[6,"Entrez le mdp pour la salle commune mystère :

","?"]
( là pour le forum 6 sera affiché la phrase "Entrez le mdp pour la salle commune mystère :

" et le mot de passe sera ? )

Et il y a également moyen de changer le :

Code:
var perrors= ["zut","rapé","essaye encore ou repart d'où tu viens","tu ne trouveras jamais"];
Qui seront les messages affichés ( aléatoirement ), en cas d'erreur.

Puis on peut changer aussi le :

Code:
var ppass= ["bravo","merveilleux","bienvenue chez toi"];
Qui de la même façon sont les messages affichés en cas de mot de passe trouvé.

Edit :

Sinon je viens d'y penser, une fois que vous avez ce que vous souhaitez vous pourriez le sauver sur votre ordinateur, et vous le compresser avec par exemple ceci ( en cochant base62 encode et shrink variable ) avant de le mettre où vous voulez le mettre ( il suffit d'utiliser un outil comme http://jsbeautifier.org/ pour le décompresser mais ça rajoute un niveau de difficulté pour trouver les mots de passes en resquillant ).

Ea
Aidactif
Aidactif

Messages : 23447
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Amallia le Sam 13 Aoû 2011 - 12:35

Haaaan merci !!!

Ca marche nickel avec le deuxième code !!!

J'ai juste un tout petit minuscule bug ( ")
Il m'affiche plus les emoticons quand je poste...

il m'affiche seulement le code de l'emot...

exemple
Au lieu de ça : Very Happy
Ca m'affiche ça
Code:
:D

C'est l'unique truc XD

Amallia
**

Féminin
Messages : 71
Inscrit(e) le : 14/01/2011

http://game-of-thrones.1fr1.net/
Amallia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Ea le Sam 13 Aoû 2011 - 12:45

Vous avez le lien d'un exemple sur une page accessible aux invités ? ( mais il n'y a aucune raison que le script entre en conflit avec les smileys Interrog )



Ea
Aidactif
Aidactif

Messages : 23447
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Amallia le Sam 13 Aoû 2011 - 12:50

Au temps pour moi, c'est un problème qui vient du code même du Smiley visiblement XD

Mais par contre, j'aurais bien voulu qu'il demande le mot de passe à chaque fois...Ici, il ne le demande qu'une seule et après on y a accès tout le temps sans jamais avoir à le redonner ( même en déconnectant et reconnectant son compte, je viens de tester ^^ )

Y a moyen ? En changeant un tit truc dans le code ? ^^

Amallia
**

Féminin
Messages : 71
Inscrit(e) le : 14/01/2011

http://game-of-thrones.1fr1.net/
Amallia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Ea le Sam 13 Aoû 2011 - 14:20

Il y aurait moyen de mettre un "timeout" au bout du quel le mot de passe doit être redemandé, par exemple avec le code ici, il faut mettre un nombre de milliseconde au premier chiffre ( donc le chiffre qu'il y a là 24*60*60*1000 donne 24h ).


Ea
Aidactif
Aidactif

Messages : 23447
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Amallia le Sam 13 Aoû 2011 - 15:02

Aaah merci beaucoup ! Vraiment !

Donc si je veux une heure, ça donne:

1*60*60*1000 ?

( je suppose que c'est bien heure multiplié par minute multiplié par seconde multiplié par mille pour avoir en milliseconde ? ^^ )

En tout cas, je te remercie !
( D'ailleurs je te laisse un remerciement dans ma PA pour cette aide vraiment précieuse ^^ )


Amallia
**

Féminin
Messages : 71
Inscrit(e) le : 14/01/2011

http://game-of-thrones.1fr1.net/
Amallia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Ea le Sam 13 Aoû 2011 - 15:27

Oui, ou bien tout simplement 3600000 :p





Ea
Aidactif
Aidactif

Messages : 23447
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Protection de forum par mot de passe

Message par Amallia le Sam 13 Aoû 2011 - 18:18

Et bien merci beaucoup,

je viens de tester et ça fonctionne à merveille ^^

Je classe le topic en résolu donc !

Amallia
**

Féminin
Messages : 71
Inscrit(e) le : 14/01/2011

http://game-of-thrones.1fr1.net/
Amallia a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum