phpbb/block "login"

phpbb/block "login" - PHP - Programmation

Marsh Posté le 16-05-2005 à 20:09:46    

Bonjour tout le monde, j'ai un problème,
je voudrais créé un "block" login sur mon site qui reprend la bdd du forum phpbb.
j'ai commencé à coder et j'ai tester, mais il me dit que j'ai mi un mauvais mot de passe
 
Voici les codes que j'utilise :

pour le "bloc login" :

Citation :


<?php
   define('IN_PHPBB', true);  
   define('IN_ETTELFIGHT', true);  
   $phpbb_root_path = './forum/'; // chemin relatif menant à la racine du site...
   include($phpbb_root_path . 'extension.inc');  
   include($phpbb_root_path . 'common.'.$phpEx);  
 
   $userdata = session_pagestart($user_ip, PAGE_INDEX);  
   init_userprefs($userdata);  
?>
<?  
if ( !$userdata['session_logged_in'] ) { ?>
  <form method="post" action="./login.php">
     <p align="center"><font size="2"><b><u>V</u></b></font><b><u><font size="2">otre compte:</font></u></b></p>
     <p align="right"><b><u><font size="2"><br></font></u></b><font size="2">&nbsp;Login: <input type="text" name="username" size="9" maxlength="40"><br>Code: <input type="password" name="password" size="9" maxlength="32"><br></font><font size="2"><input type="hidden" name="account"></font><font size="2"><input type="submit" name="Login" value="Login">&nbsp;</font></p>
     <p align="right"><font size="2">Mot de passe perdu ?<br><a href="./register.php">S'enregistrer</a></font></p>
   </form>
<? } else { ?>
Bienvenue <? echo $userdata['username']; ?>
<? } ?>


 
 
pour le login.php -> le test

Citation :


<?
// on se connecte à MySQL
$db = mysql_connect('sql.free.fr', 'root', 'pass');
 
// on sélectionne la base
mysql_select_db('phpbb_users',$db);  
 
if(isset($_POST) && !empty($_POST['username']) && !empty($_POST['password'])) {  
  extract($_POST);
  $login= isset($_POST['username']);
  $pass = isset($_POST['password']);
 
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "select user_password from phpbb_users where username='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
  $userdata = mysql_fetch_assoc($req);
 
  if($userdata['user_password'] != $pass) {
     echo '<p><b>Mauvais password !</b></p>';
     include('index.php');
     exit;
   } else {
    session_start();
    $userdata['session_logged_in']='1';
 $userdata['username']=$login;
    include('index3.php');
  }    
}
else {
 
  echo '<b><p>Membre inconnu !</p><p>Cliquez <a href="./register.php">ici</a> pour vous enregistrer, ou, <a href="index.php">ici</a> pour revenir sur la page d\'accueil.</p></b>';
   exit;
 
}
?>

Reply

Marsh Posté le 16-05-2005 à 20:09:46   

Reply

Marsh Posté le 16-05-2005 à 20:46:37    

nico_59 a écrit :

Bonjour tout le monde, j'ai un problème,
je voudrais créé un "block" login sur mon site qui reprend la bdd du forum phpbb.
j'ai commencé à coder et j'ai tester, mais il me dit que j'ai mi un mauvais mot de passe
 
Voici les codes que j'utilise :

pour le "bloc login" :

Citation :


<?php
   define('IN_PHPBB', true);  
   define('IN_ETTELFIGHT', true);  
   $phpbb_root_path = './forum/'; // chemin relatif menant à la racine du site...
   include($phpbb_root_path . 'extension.inc');  
   include($phpbb_root_path . 'common.'.$phpEx);  
 
   $userdata = session_pagestart($user_ip, PAGE_INDEX);  
   init_userprefs($userdata);  
?>
<?  
if ( !$userdata['session_logged_in'] ) { ?>
  <form method="post" action="./login.php">
     <p align="center"><font size="2"><b><u>V</u></b></font><b><u><font size="2">otre compte:</font></u></b></p>
     <p align="right"><b><u><font size="2"><br></font></u></b><font size="2">&nbsp;Login: <input type="text" name="username" size="9" maxlength="40"><br>Code: <input type="password" name="password" size="9" maxlength="32"><br></font><font size="2"><input type="hidden" name="account"></font><font size="2"><input type="submit" name="Login" value="Login">&nbsp;</font></p>
     <p align="right"><font size="2">Mot de passe perdu ?<br><a href="./register.php">S'enregistrer</a></font></p>
   </form>
<? } else { ?>
Bienvenue <? echo $userdata['username']; ?>
<? } ?>


 
 
pour le login.php -> le test

Citation :


<?
// on se connecte à MySQL
$db = mysql_connect('sql.free.fr', 'root', 'pass');
 
// on sélectionne la base
mysql_select_db('phpbb_users',$db);  
 
if(isset($_POST) && !empty($_POST['username']) && !empty($_POST['password'])) {  
  extract($_POST);
  $login= isset($_POST['username']);
  $pass = isset($_POST['password']);

 
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "select user_password from phpbb_users where username='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
  $userdata = mysql_fetch_assoc($req);
 
  if($userdata['user_password'] != $pass) {
     echo '<p><b>Mauvais password !</b></p>';
     include('index.php');
     exit;
   } else {
    session_start();
    $userdata['session_logged_in']='1';
 $userdata['username']=$login;
    include('index3.php');
  }    
}
else {
 
  echo '<b><p>Membre inconnu !</p><p>Cliquez <a href="./register.php">ici</a> pour vous enregistrer, ou, <a href="index.php">ici</a> pour revenir sur la page d\'accueil.</p></b>';
   exit;
 
}
?>



 
Ton `extract($_POST);` met le avant et utilise le....
 
Sinon, il me semble que les mots de passes sont stockés en md5 dans la bdd.
 
A part ça, ton code est dégueulasse :lol: Et je parle même pas de l'accessibilité car j'ai eu une dure journée... :jap:


Message édité par yoyo354 le 16-05-2005 à 20:50:31
Reply

Marsh Posté le 16-05-2005 à 20:50:58    

hmmmm je ne sais pas trop comment l'utilisé :D
Pour ce qui est des passes oui ils sont cryptés, mais il y a moyen de les decrypter ??

Reply

Marsh Posté le 16-05-2005 à 20:56:47    

nico_59 a écrit :

hmmmm je ne sais pas trop comment l'utilisé :D
Pour ce qui est des passes oui ils sont cryptés, mais il y a moyen de les decrypter ??


 
On ne peut pas décrypter un mot de passe en md5. On peut juste comparer deux hash md5.  
 
Et le `hmmmm je ne sais pas trop comment l'utilisé :D`, ça veut dire que tu n'as même pas pris la peine de chercher. Par conséquent, bouges-toi le cul car comptes pas sur moi pour te trouver la page de la doc sur php.net..... :pfff:
 
EDIT : Après avoir tapé `php md5` sur google et avoir trouvé en premier lien, la documentation officiel sur la fonction md5(), j'ai lu en diagonal les commentaires et je suis tombé sur ça : http://passcracking.com/ <- Moi qui me disais que le md5 était "\"sûr\""... :sweat:


Message édité par yoyo354 le 16-05-2005 à 21:05:58
Reply

Marsh Posté le 16-05-2005 à 21:04:47    

Oki ;)
Et sinon pour comment je pourrais comparer deux mot de passe en md5?
Il fodré que je code celui que l'utilisateur rentre dans le formulaire en md5 mais je ne vois pas du tout comment faire :s

Reply

Marsh Posté le 16-05-2005 à 21:07:34    

[:absolut_limon]

Reply

Marsh Posté le 16-05-2005 à 21:39:24    

$motdepasserentre=md5($_POST['mdp']);

Reply

Marsh Posté le 16-05-2005 à 21:54:18    

C'est pas marrant The-Shadow !
C'est pas comme ça que tu l'aides, en lui donnant la répone toute faîte.(même si l'intention y est)  
Si il n'est pas cappable d'aller chercher quelques lignes de documentation pour une fonction "simple", comment pourra-t-il évoluer ?  
 
Après on va le voir revenir régulièrement avec des questions de ce genre. Il lui suffira d'attendre que de bonnes âmes `trop` charitable lui viennes en aide...  
 

Reply

Marsh Posté le 16-05-2005 à 21:56:48    

yoyo354 a écrit :

C'est pas marrant The-Shadow !
C'est pas comme ça que tu l'aides, en lui donnant la répone toute faîte.(même si l'intention y est)


Ouai, enfin, md5, c'est une fonction vraiment bateau, je lis le topic, je lui donne la soluce en 20 secondes et je lui fais gagner 15 minutes, c'est pas méchant, c'est pas comme ci on parlait d'une fonction à 26 paramètres et que je lui donne la réponse sans lui expliquer les paramètres.
C'est un peu comme si un jour on me demande comment mettre la première lettre en capitale, je répondrais ucfirst(), c'est pas le genre de fonction dont la lecture de la documentation lui apprendra grand chose. ;)

Reply

Marsh Posté le 16-05-2005 à 22:03:49    

Je suis en partit d'accord avec toi, mais bon en moins de 45 sec, il aurait pu trouver dans google la solution SI il avait cherché...

Reply

Sujets relatifs:

Leave a Replay

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