Página 1 de 1

Autenticacion de Usuarios

Publicado: 04 Nov 2010, 11:47
por K1200GT
URL: http://www.motonautas.com/phpBB3/index.php
Versión phpBB: phpBB3 (PL1)
MODs Instalados: De momento ninguno.
Plantilla(s) usada(s): ¿?
Servidor: Linux de Pago
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Saludos a Todos, :cerveza:
Soy nuevo en este terreno y me ha surgido una duda que os voy a comentar:
Tengo una WEB en la cual he integrado el Foro phpBB3 y de momento va fantastico, pero ahora quisiera mejorar mi WEB y habia pensado en hacer una pantalla para que los usuarios se Logeen aprovechando la BD del Foro. (Con la intencion de hacer una zona de uso exclusivo para usuarios autenticados).
El problema es que no se que sistema de encryptacion se utiliza para guardar el Password de los usuarios y cuando quiero autenticar a los usuarios no puedo hacerlo contra su password de la BD de phpbb. El Nick si que lo valido sin problemas, pero no puedo validar el Password.

¿Es posible hacer esto?

Gracias por anticipado.
(Perdonad la falta de acentos, pero se me estropeo ayer dicha tecla) :oops:

Re: Autenticacion de Usuarios

Publicado: 04 Nov 2010, 14:35
por jakk
bienvenido a phpbb-es

puedes instentarlo siguiendo esta guia http://www.phpbb-es.com/foro/guias-phpb ... 14279.html

Autenticacion de Usuarios

Publicado: 04 Nov 2010, 16:10
por K1200GT
Gracias Jakk, lo voy a intentar, aunque este nivel es aun muy alto para mi, .... pero por intentarlo que no quede.
Yo he probado a acceder pasando el Nick de usuario y el password con md5 ( md5($password) ) y atacar directamente la base de datos de phbb con esos parametros y el Nick si que se valida, pero el password creo que no esta encriptado con md5 y no consigo validarlo, si supiera con que funcion lo encriptan quizas podria validarlo utilizando la misma funcion.

Bueno, voy a probar con ese "manualete" que me has apuntado a ver si consigo enterarme de algo.
Muchas Gracias

Ya te comunicare los resultados.

Chao :cerveza:

Autenticacion de Usuarios

Publicado: 04 Nov 2010, 20:25
por K1200GT
Hola de nuevo Jakk,
He probado con esa rutina que me has apuntado y si que funciona, pero no es exactamente lo que buscaba, esta rutina hace Login directamente al Foro y lo que yo pretendo es hacer una pantalla de Login para acceder a mi WEB pidiendo "Usuario" y "Password" y validar estos datos sobre la BD de phpBB3.
He intentado modificar el código para acceder conseguir mi proposito pero no lo he conseguido.

Yo he conseguiso validar el "Nick" , pero el "Password" no se como acceder para validarlo.
Muestro el codigo que utilizo para esto:
(El usuario y la Clave llegan desde un formulario con Method: POST) <?php
//-- ENTRADA DE DATOS
$nick = $_POST['nick'];
$password = $_POST['password'];

$password = md5($password);

//-- *************************************************************************************
//-- CONECTAMOS LA BASE DE DATOS
//-- *************************************************************************************
$conexHOST = mysql_connect("hosting","user","clave")
or die("¡¡ Error en Conexión al Servidor !!");

$conexBD = mysql_select_db("mi_BD")
or die("BD no encontrada");

//-- *************************************************************************************
//-- Asignamos la Variable de Control
//-- *************************************************************************************
$sw_error = 0;
//-- *************************************************************************************
//-- Validando el valor de del campo NICK
//-- *************************************************************************************
$consunick = "SELECT username FROM phpbb_users WHERE username=\"".$nick."\"";
$resultnick = mysql_query($consunick);
if ($lin=mysql_fetch_array($resultnick))
{
$_SESSION['nick'] = $_POST['nick'];
}
else
{
$sw_error ++;
}
//-- *************************************************************************************
//-- Validando el valor de del campo Password
//-- *************************************************************************************
$consupass = "SELECT user_password FROM phpbb_users WHERE user_password=\"".$password."\"";
$resultpass = mysql_query($consupass);
if ($lin=mysql_fetch_array($resultpass))
{
$_SESSION['password'] = $_POST['password'];
}
else
{
$sw_error = ($sw_error + 2);
}

//-- *************************************************************************************
//-- FINAL DE VALIDACION DE DATOS
//-- ************************************************************************************* Con esta Rutina consigo acceder a la tabla de Usuarios de la BD de phpBB3 y validar el NICK pero no consigo validar el Password.

Si alguien me ilumina se lo agradeceré toda la vida.

Gracias :cerveza:

Autenticacion de Usuarios  Tema Solucionado

Publicado: 05 Nov 2010, 12:55
por K1200GT
Bueno Chicos, gracias por todo, .... sobretodo a Jakk.
Ya encontre lo que buscaba en http://www.forosdelweb.com

Gracias a Bellidin por esta magnifica ayuda.

Por si a alguien mas le sirve de ayuda, os dejo el Link, el ultimo post que hay es el bueno. :bravo:

http://www.forosdelweb.com/f121/compara ... b3-649865/

Código: Seleccionar todo

    // A editar con vuestros valores
    $host = 'localhost o la URL o IP que sea';
    $username = 'nombre de usuario de la base de datos';
    $password = 'contraseña';
    $db_name= 'nombre de la base de datos';

  mysql_connect("$host", "$username", "$password")or die("cannot connect");
  mysql_select_db("$db_name")or die("cannot select DB");

  $username=$_POST["username"];
  $password=$_POST["password"];

  $username = stripslashes($username);
  $password = stripslashes($password);
  $username = mysql_real_escape_string($username);
  $password = mysql_real_escape_string($password);

define('IN_PHPBB', true);
include("phpbb3/includes/functions.php"); // Poner vuestra ruta a este archivo

$sql = "SELECT * FROM phpbb_users WHERE username='".$username."'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
mysql_free_result($result);

if (!$row)
{
   // Usuario no existe
}

if (!phpbb_check_hash((string) $password, $row['user_password']))
{    
   echo "COMPARACION FALLIDA";
}
else
{     
    echo "COMPARACION CORRECTA";
} 
Gracias Bellidin