mot de passe sans bdd

mot de passe sans bdd - PHP - Programmation

Marsh Posté le 06-02-2010 à 00:49:45    

Bonsoir,  
 
je souhaite restreindre une partie de mon site avec un mot de passe unique en utilisant un simple login en php (je ne compte pas faire un niveau de sécurité "CIA"; si il est hacké ce n'est pas bien grave^^).
 
J'ai beau chercher de partout, à chaque fois que j'utilise un script, que le mot de pase soit bon ou erroné il m'autorise l'accès à la page en question.  
 
Voici ce que j'ai mis dans la page où l'on doit s'identifier :  
 

Code :
  1. <body>
  2. identification
  3. <form action="testmdp.php" methode="post" >
  4. <input type="text" name="motdepasse" />
  5. <input type="submit" value="envoyer" />
  6. </form>
  7. </body>


 
Et voici ma page testmdp.php
 

Code :
  1. <body>
  2. <? if ( $_POST['motdepasse']!= 'toto' )
  3. {
  4. header ("Location: testmdp.php" );
  5. echo 'ok';
  6. exit();
  7. }else {echo "Mauvais mot de passe";}
  8. }
  9. echo 'Veuillez saisir votre mot de passe: <br>';
  10. echo '<form name="motdepasse" method="post" action="' . htmlspecialchars($_SERVER['REQUEST_URI']) . '">';
  11. echo '<input type=password name="motpasse" size="10" value="" />';
  12. echo '<input type="submit" name="action onClick=(this.form)" value="OK">';
  13. echo '</form>';
  14. ?>
  15. Salut et bienvenu !
  16. </body>


 
Vous allez me dire j'ai surement fais une grosse bourde mais il y a au moins 6 mois que je n'ai pas fait de php (et j'étais loin d'être un dieu avant :mrgreen:).  
 
Please help me !
 
Edit : si vous avez en tete un code plus simple qui marche, je suis preneur.
 
Edit 2 : j'ai testé un nouveau script qui me paraissait propre, mais ca ne marche toujours pas :  
 

Code :
  1. <?php
  2. if ( ($PHP_AUTH_USER=="eric" ) and ($PHP_AUTH_PW=="toto" ) )
  3.      {$auth=true;}
  4. else
  5.      {$auth=false;}   
  6. if (!$auth) {
  7.       header( 'WWW-Authenticate: Basic realm="Compte gestionnaire"' );
  8.       header( 'HTTP/1.0 401 Unauthorized' );
  9.       print "<html><head><title> ACCES NON AUTORISE</title></head><body>"; 
  10.       print "<center>Authentification nécessaire</center></html>"; 
  11.       exit;
  12. }
  13. else {
  14. header ("Location: private.php" );
  15. }
  16. ?>


 
Pour info : [B]je fais mes tests sur wampserver 2.0[/B]

Reply

Marsh Posté le 06-02-2010 à 00:49:45   

Reply

Marsh Posté le 06-02-2010 à 01:10:52    

Tu voulais pas dire ca ?
 

Code :
  1. <? if ( $_POST['motdepasse'] == 'toto' )


Reply

Marsh Posté le 06-02-2010 à 16:58:04    

En effet, mais ca ne marche tout de meme pas. Que le mot de passe soit bon ou mauvais j'accede à la page securisée...

Reply

Marsh Posté le 06-02-2010 à 17:53:23    

Salut
Essais ça, ça fonctionne mais avec cookie.
fichier simple php, pas besoin de DCT ni de <head> ni de <body>
(Sinon tu peux aussi créer des sessions avec mots de pass, c'est mieux mais plus complexe, rien n'est parfait...)

Code :
  1. <?php /* Date : 01/01/2009 midnnight progyl*/ ?>
  2. <?
  3. // si le visiteur a tapé "toto" et "toto17"
  4. // on met "ok" dans le cookie
  5. if($_POST["user"]=="toto"
  6. and $_POST["pass"]=="toto17" ) {
  7.    setcookie("passe2","ok" );
  8.    Header("Location: ".$_SERVER["PHP_SELF"]);
  9. // sinon si le lien contient ?pass=no
  10. // on vide le cookie
  11. } elseif(@$_GET["user"]=="no"
  12. and @$_GET["pass"]=="no" ) {
  13.    setcookie("passe2" );
  14.    Header("Location: ".$_SERVER["PHP_SELF"]);
  15. }
  16. // on lit le cookie
  17. $isOK = (@$_COOKIE["passe2"]!="" );
  18. // si non vide >> affiche le menu
  19. if($isOK) { ?>
  20. <span style="color:#000099">Bonjour ! Voici vos infos ou votre lien vers la page secrète:<br /><a
  21. href="#">blablabla</a></span><br />
  22. <br />
  23. <? // si vide >> affiche le formulaire
  24. } else { ?>
  25.    <form method="post" action="<?$PHP_SELF;?>">
  26.     <label>Nom d utilisateur : <input type="text" name="user" /></label><br />
  27.     <label>Mot de passe : <input type="password" crypt_password name="pass" /></label><br /><br />
  28. MOT DE PASS INCORRECT
  29.     <input type="submit" value="Envoyer" />
  30.     <input type="reset" value="Rétablir" />
  31. </form>
  32. <?php
  33. function crypt_password($texte) {
  34.    $s="";
  35.    for ($i=0;$i<strlen($texte);$i++) {
  36.      $s.="&#".ord($texte{$i}).";";
  37.    }
  38.    return $s;
  39. }
  40. // FIN du Filtre crypt_form
  41. ?>
  42. <? } ?>


Message édité par midnnight le 06-02-2010 à 17:57:54
Reply

Marsh Posté le 06-02-2010 à 21:39:07    

J'ai reussi en modifiant mon premier code :  
 

Code :
  1. <?php
  2. if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']) && $_SERVER['PHP_AUTH_USER']=="rico" && $_SERVER['PHP_AUTH_PW']=="toto" )
  3.      {$auth=true;}
  4. else
  5.      {$auth=false;}   
  6. if (!$auth) {
  7.       header( 'WWW-Authenticate: Basic realm="Compte gestionnaire"' );
  8.       header( 'HTTP/1.0 401 Unauthorized' );
  9.       print "<html><head><title> ACCES NON AUTORISE</title></head><body>"; 
  10.       print "<center>Authentification nécessaire</center></html>"; 
  11.       exit;
  12. }
  13. else {
  14. header ("Location: mdp.php" );
  15. }
  16. ?>


 
J'ai tout de même testé ton code, il marche (avec des petits bugs) mais un peu compliqué. Je vais tout de même essayé de corriger les quelques bugs car j'laime bien quand meme.  
 
merci

Reply

Marsh Posté le 06-02-2010 à 21:43:14    

pourquoi pas passer par un .htaccess + .htpassw ?


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 09-04-2011 à 12:12:19    

<?php
if ($_GET['ps'] AND $_GET['pas'] ) {
$pseudo = $_GET['ps'];
$pass = $_GET['pas'];
} else {
if ($_POST['pseudo'] AND $_POST['pass'] ) {
$pseudo = $_POST['pseudo'];
$pass = $_POST['pass'];
} else {
if (isset($_COOKIE['pseudovp']) AND isset($_COOKIE['passvp']) ) {
$pseudo = $_COOKIE['pseudovp'];
$pass = $_COOKIE['passvp'];
};
};
};
if ( $pseudo == "pseudo" AND $pass == "pass" ) {
$pseudovpc = $_COOKIE['pseudovp'];
$passvpc = $_COOKIE['passvp'];
if ( $pseudovpc == "" AND $passvpc == "" ) {
setcookie("pseudovp", "". $pseudo ."", (time() + 3600));
setcookie("passvp", "". $pass ."", (time() + 3600));
} else {
};
    echo "bonjour ". $pseudo ."";
} else {
    echo "tu n'est pas connecté";
?>
<table width="450" height="339" border="5" align="center" bordercolor="#FF0000" bgcolor="#FFFF00">
  <tr>  
    <td> <form name="form1" method="post">
        <p align="center">
          <input name="pseudo" type="text" value="Pseudo">
          <input name="pass" type="password" value="password">
        </p>
        <p align="center">  
          <input type="submit" name="Submit" value="Envoyer">
        </p>
      </form>
<?
};
?>
 
 
cookie,url,et formulaire^^,je peu meme vous faire :
page s'incription super simple comme ca,et un formulaire de connection permettant de ne pas forcement devoir aller sur la page pour se co ^^(c'est souvent le pb avec ce genre de securisation...)
++(je detere,je sais xD)


Message édité par vpcoyote le 09-04-2011 à 12:16:10
Reply

Marsh Posté le 09-04-2011 à 12:18:46    

a oui,'avais oublié,je peu faire recup de mdp(tout ca sans bdd) chui pas un dieu,mais je signal que j'ai fais ca sans aucun cour et j'ai 13 an ( je suis super content d'avoir réussi xD)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed