Proteger article par un mot de passe

proshackproshack Member
février 2007 modifié dans Entraide
Voici une petite idée pour proteger un ou des articles par un mot de passe, certainement à améliorer mais ça fonctionne.

Remplacer ça dans votre template :
<?php # En mode 'home' ou 'catégorie' # ?>
		<?php if($pluxml->mode == 'home' || $pluxml->mode =='cat') : ?>
		<div id="content">
	
		<?php # Liste d'articles # ?>
		<?php while($pluxml->loopArticles()):?>
		<div class="post">
				<h2 class="articletitle"><?php __('title', 'link'); ?></h2>
				<?php __('chapo'); ?>
				<p class="post-info"><?php __('date'); ?> | <?php __('categorie'); ?></p>
			</div>
		<?php endwhile; ?>
		
		</div>
		<?php endif; ?>
<?php # Fin mode 'home'/'catégorie' # ?>
par ça :
<?php # En mode 'home' ou 'catégorie' # ?>
		<?php if($pluxml->mode == 'home' || $pluxml->mode =='cat') : ?>
		
		<div id="content">

		<?php # Liste d'articles # ?>
		<?php while($pluxml->loopArticles()):?>
		<div class="post">
		<h2 class="articletitle"><?php __('title', 'link'); ?></h2>
		
		<?php # Permet l'ajout d un mot de passe# ?>
		<?php if($pluxml->a_article[$pluxml->a_index]['title']=='Download' || $pluxml->a_article[$pluxml->a_index]['title']=='Only girls') { 	
		if (md5(@$_POST["pass"]) == '5b8cf067ebc1a5a60362590efc4a1283') { ?>
		<?php __('chapo'); ?>
		<p class="post-info"><?php __('date'); ?> | <?php __('categorie'); ?></p>
		<?
		} else { ?>
		<form method="post" action="">
		<h3><br />Mot de passe pour l'article <?php __('title'); ?></h3>
		<table><tr>
        <td><input type="password" name="pass" title="Insérez le mot de passe ici" /></td>
        <td><input type="submit" name="envoyer" value="Entrer" /></td>
		</tr></table>
		</form>
		<? } ?>
<?php } else { ?>
		<?php __('chapo'); ?>
		<p class="post-info"><?php __('date'); ?> | <?php __('categorie'); ?></p>
<?php } ?>
		</div>
	<?php # Fin ajout d un mot de passe# ?>
	
		<?php endwhile; ?>
		</div>
		<?php endif; ?>
<?php # Fin mode 'home'/'catégorie' # ?>
2 modifications :
A la ligne
if($pluxml->a_article[$pluxml->a_index]['title']=='Download' || $pluxml->a_article[$pluxml->a_index]['title']=='test) {
remplacez par exemple le mot "Download" par le nom de votre article.

A la ligne
if (md5(@$_POST["pass"]) == '5b8cf067ebc1a5a60362590efc4a1283') { ?>
remplacez le mot "5b8cf067ebc1a5a60362590efc4a1283" par votre nouveau mot de passe, en format MD5.


C'est très basic mais c'est léger et conforme w3c et secure. A améliorer surement pour utiliser un cookie car a chaque fois que vous consultez la page il vous redemande le MDP.
Je précise que cela va bien pour des articles sans chapo, sinon faudra adapter le code car on pourra quand meme voir l'article en passant directement par l'url.

Voir un exemple ici.

A+

Réponses

  • En passant, je conseille la protection par md5 au cas où une autre personne a accès au FTP.
  • Effectivement, c'est la meilleur solution le md5, et c'est un code INDECHIFRABLE par les pirates.

    http://sp.mountyhall.com/md5.php
  • proshackproshack Member
    février 2007 modifié
    Ouais je suis d'accord, mais chapeau le mec qui arrive à le chopper le mdp de cette façon, c'est juste pour rendre privé un article, pas pour y cacher son numéro de compte banquaire...

    alors voici pour md5 remplacer
    if(@$_POST["pass"]=="motdepasse") { ?>
    
    par
    if (md5(@$_POST["pass"]) == '5b8cf067ebc1a5a60362590efc4a1283') { ?>
    
    le "5b8cf067ebc1a5a60362590efc4a1283" vous l'obtiendrez sur le site qu'a dit Ali.

    J'ai modifié au passage le premier poste, merci.
  • AlbaAlba Member
    février 2007 modifié
    Ali a écrit:
    Effectivement, c'est la meilleur solution le md5, et c'est un code INDECHIFRABLE par les pirates.
    A condition de choisir un mot de passe qui ne soit pas dans le dictionnaire. Les mots de passes trop simples sont "déchiffrables" - > http://md5.rednoize.com/

    074f1dc50923c89623bd2b9d66858411 - > pluxml =p
  • Bonjour, ce script convient-il pour Pluxml 0.4 ?
  • Je fais un petit up.

    Merci d'avance pour vos réponses...
Connectez-vous ou Inscrivez-vous pour répondre.