Ver la Versión Completa : Inicio sesión php y firebird
Hola a todos.. tengo un código de php que encontré que me dice como acceder con un nombre de usuario y contraseña .. pero utiliza la base de datos mysql .. quería pasarla a firebird .. pero me sale unos errores, me reconoce el nombre de usuario pero no la contraseña.. he buscado en el foro y nada solo hay condigo para acceder a mysql. El código es el siguiente:
los datos los recibo desde un formulario
$cnx = conectar();
$stmt = "select * from usuarios where usuario = '$usuario'";
$userQuery = ibase_query($cnx, $stmt);
// revisamos usuario y password
if (ibase_num_fields($userQuery) > 0)
{
// usuario existe, seguimos
if (!$usuario = ibase_fetch_assoc($userQuery))
{
// caso sensitivo, usuario no está presente en bd
$message = "Usuario no Existe";
include("interface.php");
exit;
}
if (!$userQuery['clave'])
{
// no tiene clave en bd, no entra
$message = "No se encontró contraseña para el usuario";
include("interface.php");
exit;
}
if (stripslashes($userQuery['clave']) != $clave)
{
// contraseña es incorrecta
echo 'clave incorrecta';
include("interface.php");
exit;
}
}else{
// usuario no existe del todo.
$message = "Usuario no Existeee ";
include("interface.php");
exit;
}
?>
Si me pueden ayudar en donde estoy mal soy nuevo con php, desde ya gracias…
Holaa alguien que me ayude :confused:… alguien que sepa programación php + firebirtd.. mmm o voy a tener que cambiarme a mysql…:rolleyes:
Casimiro Notevi
20-11-2010, 22:17:52
Especifica claramente qué problema tienes, qué error, etc. es que no somos adivinos, y si dices: "pero me sale unos errores,", con eso no podemos ayudarte mucho.
Recuerda leer nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php), gracias.
Perdón x no ser especifico en la pregunto soy novato en esto…
El problema es el siguiente, envio los datos del formulario y este es el código de comprobación de la contraseña, cuando ingreso el nombre de usuario y la contraseña y presiono enviar, al comprobar el nombre de usuario todo bien pero al comprobar la contraseña me dice que no existe, es como que no lee los datos de la tabla..
Pero los datos si están en la base.
Utilizo firebird, tabla usuarios
Descripción tipo
--------------------------------
Id integer
Usuario char
Clave char
Este es el codigo que utilizo...
$cnx = conectar();
$stmt = "select usuario, clave from usuarios where usuario = '$usuario'";
$userQuery = ibase_query($cnx, $stmt);
// revisamos usuario y password
if (ibase_num_fields($userQuery) > 0)
{
// usuario existe, seguimos
if (!$usuario = ibase_fetch_object($userQuery))
{
// caso sensitivo, usuario no está presente en bd
$message = "Usuario no Existe";
include("interface.php");
exit;
}
if (!$userQuery['clave'])
{
// no tiene clave en bd, no entra
$message = "No se encontró contraseña para el usuario..";
include("interface.php");
exit;
}
if (stripslashes($userQuery['clave']) != $clave)
{
// contraseña es incorrecta
echo 'clave incorrecta';
include("interface.php");
exit;
}
}else{
// usuario no existe del todo.
$message = "Usuario no Existeee ";
include("interface.php");
exit;
}
?>
el usurio todo bien pero al comprobar la clave no funciona..
if (!$userQuery['clave'])
{
// no tiene clave en bd, no entra
$message = "No se encontró contraseña para el usuario..";
include("interface.php");
exit;
}
La verdad no sé si este código está bien … la verdad x que los datos están en la tabla lo que es el usuario y la clave.. o si me puede dar algun ejemplo sobre esto... desde ya gracias...
Casimiro Notevi
30-11-2010, 14:32:37
Desconozco php, a ver si algún compañero te puede echar una mano.
roman
30-11-2010, 18:18:24
La variable $userQuery no es más que el identificador del conjunto de resultados que te devuelve ibase_query. La fila correspondiente la tienes en $usuario cuando llamas a ibase_fetch_assoc, así que es esa variable la que tendrías que consultar.
// Saludos
Hola de nuevo gracias por su atención a mi tema.. y con respecto a lo que comentas roman tienes razón no me di cuenta de ese detalle.. Lo he modificado y va perfecto esa parte.. pero ahora tengo otro inconveniente, al momento de comparar la contraseña no funciona.. la contraseña existe e imprimo de esta manera:
if (stripslashes($usuario['CLAVE']) != $clave)
{
// contraseña es incorrecta
$message = $usuario['CLAVE'] ;
include("interface.php");
exit;
}
Imprimo en el mensaje el dato de la clave extraída de la base de datos y si lo visualizo pero no me compara: investigando encontré algo sobre la función stripslashes (nos devuelve la cadena de texto introducida sin los caracteres de la barra inclinada \)..
Si alguien me puede ayudar para terminar este problemilla que tengo desde ya gracias;)
para mayor entendimiento esto es lo que consulte:
$userQuery = mysql_query("SELECT * FROM usuarios WHERE usuario = '$usuario'") or die(mysql_error());
if (mysql_num_rows($userQuery) > 0) {
$userArray = mysql_fetch_array($userQuery);
if ($usuario != $userArray['usuario']) {
// caso sensitivo, usuario no está presente en bd
$message = "Usuario no Existe";
echo $message;
include("interface.php");
exit;
}
if (!$userArray['clave']) {
// no tiene clave en bd, no entra
$message = "No se encontró contraseña para el usuario";
include("interface.php");
exit;
}
if (stripslashes($userArray['clave']) != $clave) {
$message = "Contraseña es incorrecta";
include("interface.php");
exit;
}
}else{
// usuario no existe del todo.
$message = "Usuario no Existe";
include("interface.php");
exit;
}
?>
Y esto es lo que he intentado hacer
$stmt = "select usuario, clave from usuarios where usuario = '$usuario'";
$userQuery = ibase_query($cnx, $stmt);
// revisamos usuario y password
if (ibase_num_fields($userQuery) > 0)
{
// aqui lo pongo la funcion (ibase_fetch_assoc)
//la funcion (mysql_fetch_array) no existe para firebird
if (!$usuario = ibase_fetch_assoc($userQuery))
{
// caso sensitivo, usuario no está presente en bd
$message = "Usuario no Existe";
include("interface.php");
exit;
}
if (!$usuario['CLAVE'])
{
// no tiene clave en bd, no entra
$message = "No se encontró contraseña para el usuario..";
include("interface.php");
exit;
}
if (stripslashes($usuario['CLAVE']) != $clave)
{
// contraseña es incorrecta
$message = $clave ;
// $message = $clave;
include("interface.php");
exit;
}
}else{
// usuario no existe del todo.
$message = "Usuario no Existeee ";
include("interface.php");
exit;
}
A ver si me pueden ayudar… :)
Problema resuelto... un dolo r de cabeza pera ya estaa....¡¡¡ :cool:
Casimiro Notevi
05-12-2010, 20:47:36
Vaya, te ha costado, pero seguro que ahora lo tienes bien aprendido para la siguiente vez :)
Si gracias casimiero.. pero les seguire molestando por otros problemillas... que la pases bien..;)
Casimiro Notevi
07-12-2010, 01:35:11
Si gracias casimiero.. pero les seguire molestando por otros problemillas... que la pases bien..;)
Muy bien, procuraremos estar por aquí para lo que podamos ayudar :)
georkis
20-12-2010, 19:02:45
Les diré que el campo contraseña del formulario debe tener una encriptación md5 u otros tipo... y a la hora de comparar las contraseña con la base de datos guaooo hay conflicto... asi que hay que poner lo siguiente más o menos así...
[php]
md5($_POST['password'])
[php]
Hola.. Gracias x tu respuesta mira si me pudieras dar un poco más de información sobre la encriptación… me seria de mucha ayuda. He estado investigando y creo que es muy necesario encriptar la contraseña pero no encuentro un ejemplo claro sobre esto…
Si me pudieras dar un pequeño ejemplo me seria de mucha ayuda.. gracias desde ya..¡:)
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.