SCRIPT QUI GÉNÈRE UN FICHIER .HTPASSWD ET UN FICHIER .HTACCESS

monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006 - 11 nov. 2005 à 15:39
drikus Messages postés 3 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 15 juillet 2013 - 29 mars 2012 à 11:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34588-script-qui-genere-un-fichier-htpasswd-et-un-fichier-htaccess

drikus Messages postés 3 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 15 juillet 2013
29 mars 2012 à 11:46
avec et/ou "pour" wamp (pour wamp, il faut entrer le mot de passe crypté, il ne fait pas la conversion !)
drikus Messages postés 3 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 15 juillet 2013
29 mars 2012 à 11:44
comment faire fonctionner cela avec wamp, svp ? !!!!!!!!
captulipe Messages postés 1 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 12 janvier 2010
12 janv. 2010 à 10:39
Très bien! merci...
FeeNyx Messages postés 1 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 17 juin 2009
17 juin 2009 à 11:27
Merci beaucoup... c'est super!
cs_chapata Messages postés 214 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 9 avril 2010 5
30 oct. 2006 à 15:26
1 seul mot ... Nickel !!! et merci (ca fait 2 ... lol)

ChaPaTa
cs_milo2009 Messages postés 180 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 8 août 2011 1
20 oct. 2006 à 16:30
Ok, desolé,

J'ai compris que cela securise le dossier ou il est, et ses sous-dossier.

Cependant, j'ai toujours un probleme.

J'utilise une anim flash qui charge les images contenus dans mon dossier protégé et quand l'anim ce lance, il demande le code !

Quelqu'un sait comment faire pour qu'il ne le demande pas lorsque c'es l'anim qui appelle les images ?

Merci
cs_milo2009 Messages postés 180 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 8 août 2011 1
20 oct. 2006 à 16:17
Salut, ca fonctionne bien sur free,

cependant, je voudrais que les gens puissent naviguer sans rentrer de code, mais que la fenetre du code apparaisse quand ils veulent acceder au dossier images par la barre de navigation.

Merci de votre aide
lisehg Messages postés 1 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 5 septembre 2006
5 sept. 2006 à 22:29
Je ne voie pas les fichiers .htpasswd et .htaccess dans mon dossier sur le serveur! ou il se sont cree?? . J'ai utilise le fichier creation.php.

Je ne pas ete capable de acceder a ma page avec le login que j'ai cree, et maintenent je ne peut pas rentrer....!help!

Merci
cs_jalol Messages postés 12 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 21 décembre 2005
21 déc. 2005 à 19:12
Je précise que dans cette source modifiée, le script s'appelle "creation_htaccess.php" et non plus "creation.php", et ce afin d'éviter de le confondre avec d'autres fichiers...
cs_jalol Messages postés 12 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 21 décembre 2005
21 déc. 2005 à 19:09
Si je puis me permettre, j'ai modifié le code de cette source afin de pouvoir utiliser ce script sans problème sur Free. J'ai également corrigé un bug lié à la génération du fichier .htpasswd :

<?php
session_start();
//créer un fichier
function nouveau($emplacement, $contenu)
{

$fichier = fopen($emplacement, "w+");

fputs($fichier, $contenu);
fclose($fichier);

}

if(isset($_GET['etape']))
{
if($_GET['etape']==1)
{
if($_POST['nb']!='' and $_POST['mdp']!='')
{
$chemin=realpath("creation_htaccess.php");
$chemin=preg_replace("!creation_htaccess.php!", "", $chemin);
$_SESSION['adresse']=$chemin;
$_SESSION['nb']=$_POST['nb'];
$_SESSION['phrase']=stripslashes ($_POST['mdp']);
$_SESSION['free']=$_POST['free'];
$i=0;
echo'<code>Fabriquer un .htaccess et un .htpasswd

Etape 2

<form method="post" action="creation_htaccess.php?etape=2">';
while($i!=$_POST['nb'])
{
$i++;
echo'

Utilsateur'.$i.'

Pseudo,
,

Mot de passe,


<hr/>';

}
echo'</form>';
}
else
{
?>
<code>Fabriquer un .htaccess et un .htpasswd

Etape 1 - Tout les champs sont obligatoires

<form method="post" action="creation_htaccess.php?etape=1">
Nombre de personnes autorises pénétrer


Phrase d'accueil de l'invite de mot de passe


Etes vous chez free ?

Oui

Non


</form>
<?
}

}
elseif($_GET['etape']==2)
{
if(isset($_SESSION['nb']) and isset($_SESSION['phrase']))
{
$phrase=$_SESSION['phrase'];
$adresse=( $_SESSION['free'] != 'oui' ) ? $_SESSION['adresse'] : preg_replace ('!' . $_SERVER['DOCUMENT_ROOT'] . '!', '', $_SESSION['adresse']);

$htpasswd='';

$htaccess=( $_SESSION['free'] != 'oui' ) ? "AuthName "$phrase"
AuthType Basic
AuthUserFile "$adresse.htpasswd"
Require valid-user" : 'PerlSetVar AuthFile ' . $adresse . '.htpasswd
AuthName "' . $phrase . '"
AuthType Basic
require valid-user';

$i=0;
while($i!=$_SESSION['nb'])
{
$i++;
$pseudo='pseudo'.$i;
$mdp='mdp'.$i;
if($_SESSION['free']!='oui'){$crypto=crypt($_POST[$mdp]);}else{$crypto=$_POST[$mdp];}
$htpasswd=$htpasswd.$_POST[$pseudo].':'.$crypto."\n";

}
nouveau(".htaccess", $htaccess);
nouveau(".htpasswd", $htpasswd);

echo '.htaccess - Contenu du fichier cr

'.$htaccess.'
<hr/>

.htpasswd - Contenu du fichier cr

'.$htpasswd;


unlink("creation_htaccess.php");
session_destroy();


}
else
{
?>
<code>Fabriquer un .htaccess et un .htpasswd

<form method="post" action="creation_htaccess.php?etape=1">
Nombre de personnes autorises pééntrer


Phrase d'accueil de l'invite de mot de passe


Etes vous chez free ?

Oui

Non


</form>
<?

}


}

}
else
{
?>
<code>Fabriquer un .htaccess et un .htpasswd

Etape 1

<form method="post" action="creation_htaccess.php?etape=1">
Nombre de personnes autorises pénétrer


Phrase d'accueil de l'invite de mot de passe


Etes vous chez free ?

Oui

Non


</form>
<?
}
?>
zeppo4268 Messages postés 19 Date d'inscription vendredi 9 juillet 2004 Statut Membre Dernière intervention 1 décembre 2007
20 nov. 2005 à 17:44
marche po sous free : http://apprendrelephp.free.fr/tt/
The_Template Messages postés 16 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 19 décembre 2005
15 nov. 2005 à 18:04
Effectivement, sous windows il ne faut pas crypter les mots de passe (si on coche la case free ca marche^^)
Effectivement, je ne savais pas que les .htaccess de free avaient d'autres singularitées, peut-être que ca ne marche pas très bien sous free mais je n'ai pas encore essayé. Donc si quelqu'un essaie...
Les bougres ils veulent soi-disant simplifier mais en fait ils compliquent tout...
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
15 nov. 2005 à 11:57
Mini faq de free :
Question : J'ai lu la documentation d'Apache et il n'est fait nulle part mention de PerlSetVar AuthFile et il y est dit qu'il faut donner les mots de passe cryptés dans la table d'utilisateurs !
Réponse : Nous avons modifié Apache afin d'en permettre une utilisation simple pour tous, ce qui explique la directive PerlSetVar AuthFile. Elle est obligatoire et ne peut pas être remplacée par les équivalents d'Apache.

Donc voilà, ils modifient des trucs...
cs_jalol Messages postés 12 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 21 décembre 2005
15 nov. 2005 à 10:09
Je suis sous Windows XP, et en ligne sur mon serveur, c'est du Linux (Debian je crois)
michel_roger Messages postés 60 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 18 août 2006
15 nov. 2005 à 10:06
C'est peut être aussi la version de l'OS ? Unix, Windows, Linux, ...
cs_jalol Messages postés 12 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 21 décembre 2005
14 nov. 2005 à 10:35
Voilà une source bien pratique ! Je sens que je vais pas mal m'en servir...
Cela marche parfaitement en ligne, mais je n'arrive pas à le faire fonctionner correctement en local. Je m'explique : La génération des fichiers marche parfaitement, mais mon mot de passe n'est pas reconnu après et je ne peux pas accéder à mon dossier.
Apparemment, en local les mdp cryptés ne fonctionnent pas. Mais bon, on s'en fout un peu (lol)
J'utilise Wamp Server.

Merci :)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
11 nov. 2005 à 18:00
free... ça vient pas plutot de leur version d'apache qui serait différente de la tienne ?
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
11 nov. 2005 à 15:39
- Tu as des tags <? au lieu de <?php
-
 sert à rien et tu n'as pas de balises fermantes 

- Tu ne vérifies pas si tes index de $_POST sont définis (isset()) avant de vérifier leur contenu
- Si t'es chez free, non seulement le mot de passe n'est pas crypté, mais le .htaccess a une syntaxe différente (voir : http://support.free.fr/web/pperso/restriction_acces.html )
- Une balise en majuscule (j'l'ai vu :p) ligne 42
- Evites les
multiples, c'est moche, et le css existe pour ça
- Tu répète deux fois le même code c'est dommage (106-114 et 126-135). Tu peux éviter ça de cette façon :
<?php
$etape = (isset($_GET['etape'])) ? $_GET['etape'] : 0 ;
if($etape === 1) {/*traitement et affichage du second formulaire*/}
else if($etape === 2) {/*traitement et création des fichiers*/}
else {/*affichage du premier formulaire*/}
?>
- A la place des boucles while() ligne 30 et 82, tu peux utiliser des boucles for() qui sont faites pour :
30 : for($i=1; $i<$_POST['nb']; $i++) {}
82 : for($i=1; $i<$_SESSION['nb']; $i++) {}

Voilà :)
Rejoignez-nous