[RESOLU] Ecriture dans un .htpasswd

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Ecriture dans un .htpasswd

Re: Ecriture dans un .htpasswd

par Shadors » 31 mai 2013, 15:02

Tous marche je crois, J'ai juste supprimer la ligne du verifcode qui ne servais plus a rien.
Merci a toi.

Re: Ecriture dans un .htpasswd

par ghost5922 » 31 mai 2013, 14:59

tu as effacer le ) a la fin mais au debut tu as if( donc faut le fermer if($passadm == 'moncode')
<?php
$pseudo = $_POST['login'];
$pass = $_POST['pass'];
$passadm = $_POST['pass_adm']; //ligne du code rentré par l'utilisateur
$passadmverif = $_POST['verif_pass']; // Ligne du champs hidden pour convertir le champs en code
if($passadm == 'moncode'){ //comparaisons des mots de passe 
	// cryptage du pass
	$pass_crypte = crypt($_POST['pass']);
	$File = '.htpasswd';
	$Mode = 'a';
	$Content = $pseudo .':'. $pass_crypte."\r\n";
	
	$fp=fopen($File, $Mode); 
	$w = fwrite($fp,$Content); 
	if(!empty($w)){
	echo "Bien écrit";
	} else {
	echo "Erreur Fatale";
	}
	fclose($fp);
}
else{
	echo'Erreur de code';	
}
?>

Re: Ecriture dans un .htpasswd

par Shadors » 31 mai 2013, 14:58

Effectivement, j'ai donc rentré la ligne
$passadmverif=='156';
Le navigateur me sort une erreur a la ligne. J'ai essayer différentes façon d’écrire: ( $passadmverif='156' $passadmverif == '156' ect.. en modifiant les espaces ect..) Mais rien n'a marché..... L'erreur des comparaisons marche aussi très bien.

J'ai pu enlever le champs hidden ( J'avais pas pensé qu'il serai a la vu de tous le monde).

PS: J'ai créer un compte

Re: Ecriture dans un .htpasswd

par ghost5922 » 31 mai 2013, 14:49

et comme ceci ?

je me répète mais aucun avantage d'avoir le code dans un input hidden on peux tous l'avoir
<?php
$pseudo = $_POST['login'];
$pass = $_POST['pass'];
$passadm = $_POST['pass_adm']; //ligne du code rentré par l'utilisateur
$passadmverif = $_POST['verif_pass']; // Ligne du champs hidden pour convertir le champs en code
if($passadm == $passadmverif){ //comparaisons des mots de passe 
	// cryptage du pass
	$pass_crypte = crypt($_POST['pass']);
	$File = '.htpasswd';
	$Mode = 'a';
	$Content = $pseudo .':'. $pass_crypte."\r\n";
	
	$fp=fopen($File, $Mode); 
	$w = fwrite($fp,$Content); 
	if(!empty($w)){
	echo "Bien écrit";
	} else {
	echo "Erreur Fatale";
	}
	fclose($fp);
}
else{
	echo'Erreur de code';	
}
?>
 

Re: Ecriture dans un .htpasswd

par nathan » 31 mai 2013, 14:43

Même en changeant le != par == rien ne marche il m'ecrit toujours dans le ficher texte en meme marquant 'Bien Ecrit'
Peut etre faudrait-t-il une balise echo ou if quelque par pour dire que s'in n'est pas égal il ne fasse pas le changement mais ou ?

Re: Ecriture dans un .htpasswd

par ghost5922 » 31 mai 2013, 14:39

faut pas mettre != mais ==

if($passadm != $passadmverif);//différent de

if($passadm == $passadmverif); la même chose

par contre aucun avantage tous le monde peu voir le code dans le hidden autant mettre

$passadmverif=='moncode'

Re: Ecriture dans un .htpasswd

par nathan » 31 mai 2013, 14:37

Merci pour vos réponses j'ai effectivement regarder. En réfléchissant je voudrai aussi mettre un code de vérification préalablement donné. Exemple:156
Dans mon formulaire j'ai mis:
<form name="Inscription" enctype="multipart/form-data" method="post" action="Pages/redirections_php/inscription.php">
<input type="hidden" name="verif_pass" value="22061998"/>  <!-- Ligne de vérification du code 156 -->
<table>
<tr><td>Pseudo:*</td>
<td><input type="text" name="login" size=30/></td></tr>
<tr><td>Mot de passe:*</td>
<td><input type="password" name="pass" size=30/></td></tr>
<tr><td>Code Administrateur:</td>
<td><input type="text" name="pass_adm" size=30/></td></tr>  <!-- Ligne ou l'utilisateur doit rentrer le bon code -->
</table>
<br> <input type=submit value=Inscription> -
<input type=reset value=Annuler>
          </form>
En rajoutant les propriétés dans mon php j'obtiens:
<?php
$pseudo = $_POST['login'];
$pass = $_POST['pass'];
$passadm = $_POST['pass_adm']; //ligne du code rentré par l'utilisateur
$passadmverif = $_POST['verif_pass']; // Ligne du champs hidden pour convertir le champs en code
if($passadm != $passadmverif); //comparaisons des mots de passe 
// cryptage du pass
$pass_crypte = crypt($_POST['pass']);
$File = '.htpasswd';
$Mode = 'a';
$Content = $pseudo .':'. $pass_crypte."\r\n";

$fp=fopen($File, $Mode); 
$w = fwrite($fp,$Content); 
if(!empty($w)){
echo "Bien écrit";
} else {
echo "Erreur Fatale";
}
fclose($fp); 
?>
Cependant cela ne marche pas, je rentre n'importe quel code et ca écrit tout de même dans mon fichier texte sans vérifier le code. Auriez vous une solution ?

Re: Ecriture dans un .htpasswd

par ghost5922 » 31 mai 2013, 14:15

Bonjour,

tu as deja le code
<?php
$pseudo = $_POST['login'];
$pass = crypt($_POST['pass']);

$File = '.htpasswd'; // <-----ligne du fichier (emplacement)
$Content = $pseudo .':'. $pass."\n";

$fp=fopen($File, "a+"); 
$w = fwrite($fp,$Content); 
if(!empty($w)){
echo "Ligne écrite. Merci!";
} else {
echo "Erreur Fatale";
}
fclose($fp); 
?>

Re: Ecriture dans un .htpasswd

par nathan » 31 mai 2013, 13:59

Personne ne peut m'aider a ce sujet ?

Re: Ecriture dans un .htpasswd

par moogli » 30 mai 2013, 21:12

salut,

tous fichier peux être considéré comme texte.

le truc c'est p'tet surement que tu n'a pas le droit de le modifier ?

regarde le chmod (rw pour tout le monde) si tu souhaite pouvoir le modifier.


@+

Ecriture dans un .htpasswd

par nathan » 30 mai 2013, 17:58

Je voudrais écrire une sorti de formulaire en l'ocurence un pseudo et un mot de passe dans un fichier .htpasswd. Cependant il m'en est impossible car celui-ci n'est pas un fichier texte.
Le code php est le suivant:
<?php
$pseudo = $_POST['login'];
$pass = $_POST['pass'];

$pass_crypte = crypt($_POST['pass']); //cryptage du pass
$File = 'hobs.txt'; // <-----ligne du fichier (emplacement)
$Mode = 'a';
$Content = $pseudo .':'. $pass_crypte."\r\n";

$fp=fopen($File, $Mode); 
$w = fwrite($fp,$Content); 
if(!empty($w)){
echo "Ligne écrite. Merci!";
} else {
echo "Erreur Fatale";
}
fclose($fp); 
?>
J'aimerai remplace le fichier hobs.txt par .htpasswd. Je sais deja qu'il faut renommer le fichier .htpasswd en texte pour ensuite l'ouvrir puis le refermer et le renommer en .htpasswd

Merci de votre aide