Foros del Web » Programando para Internet » PHP »

Problema al autentificarse en una BD. Ayuda!

Estas en el tema de Problema al autentificarse en una BD. Ayuda! en el foro de PHP en Foros del Web. Hola a todos! Resulta que tengo el siguiente código por el cual intento que se autentifique un usuario a través de un código de una ...
  #1 (permalink)  
Antiguo 23/09/2003, 09:35
 
Fecha de Ingreso: mayo-2003
Mensajes: 3
Antigüedad: 14 años, 7 meses
Puntos: 0
Problema al autentificarse en una BD. Ayuda!

Hola a todos!

Resulta que tengo el siguiente código por el cual intento que se autentifique un usuario a través de un código de una tabla, y no hay manera pues siempre me da error de autentificación, además de no cortarme la conexión como se supone que debería hacer.
El código es este:

<?php

echo "<center> <h2> Ha consultado el archivo: ",$HTTP_ENV_VARS[REQUEST_METHOD],"<br> <u>";
echo $HTTP_POST_VARS['archivo'],"<br> </center> <br> </u> </h2>";

$base="test";
$tabla="albatodo";
$user=$HTTP_POST_VARS['user'];
$pass=$HTTP_POST_VARS['pass'];
$archivo=$HTTP_POST_VARS['archivo'];
$butar=$HTTP_POST_VARS['butar'];
$usuarios="usuarios";
$clientes="clientes";
$incidencias="incidencias";
$sociedades="sociedades";
$sucursales="sucursales";

$conexion = mysql_connect("localhost","user","password");

echo " $base - $tabla - $usuarios - $user - $pass - $archivo - $butar - $clientes - $incidencias - $sociedades - $conexion ";

#line

mysql_select_db ($base, $conexion);

$resultadouser=mysql_query ("SELECT Pass FROM $usuarios WHERE Usuario='$user'" ,$conexion);

while ($row1 = mysql_fetch_row($resultadouser)){
foreach($row1 as $campo1 => $clave1){
if ($clave1 != $pass) { echo "<h2>¡Error al identificarse!</h2>"; mysql_close();}
if ($clave1 == $pass) { echo "<h2>Bienvenido usuario <b> $user </b></h2>";}
}
}

#line

El fallo que me dá es el de los "if". A ver si me podéis echar una mano por favor!
  #2 (permalink)  
Antiguo 23/09/2003, 16:41
 
Fecha de Ingreso: mayo-2003
Mensajes: 3
Antigüedad: 14 años, 7 meses
Puntos: 0
Nadie tiene ni una mínima idea????
  #3 (permalink)  
Antiguo 24/09/2003, 21:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
while ($row1 = mysql_fetch_row($resultadouser)){
foreach($row1 as $campo1 => $clave1){
if ($clave1 != $pass) { echo "<h2>¡Error al identificarse!</h2>"; mysql_close();}
if ($clave1 == $pass) { echo "<h2>Bienvenido usuario <b> $user </b></h2>";}
}
}
Conoces exactamente la sintax de uso de IF ?

sabías que existe el "else" para el IF (e incluso el elseif ..) ?

Bueno .. en tu caso ya que el mensaje de error que dás es simplemente "Error en autentificación" y no discriminas si el error fué por el passwor mál .. o el usuario no existe en tu BD .. etc .. Te vendría mejor usar "Condiconales y operadores lógicos" . pero en tu consulta SQL que estás usando ..

Ademas .. Mysql en su SQL dispone de funciones para "contar" el total de registros que te arroje una consulta (con condicionales por ejemplo como es tu caso) .. y así Si te devuelve + de 0 registros .. es que existe el registro (en realidad debería ser 1 siempre si es válido y 0 si no es valido .. se supone que no vas a tener parejas de datos: usuarios/passwords duplicados)

Código PHP:
$resultadouser=mysql_query ("SELECT count(*) FROM $usuarios WHERE Usuario='$user' AND Pass='$pass'" ,$conexion);
if (
mysql_result($resultadouser,0) == 1){
    echo 
"Es correcta la autentificación ...bla bla ";
    
// y el resto de código que quieras presentar si se autentifica correctamente . o redireccionas o lo que quieras ..    
} else {
    echo 
"No es correcta la autentificación ...";


Un saludo,

pd: usa más amenudo www.php.net/manual/es
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 24/09/2003 a las 22:08
  #4 (permalink)  
Antiguo 25/09/2003, 06:01
 
Fecha de Ingreso: mayo-2003
Mensajes: 3
Antigüedad: 14 años, 7 meses
Puntos: 0
Muchas gracias por tu respuesta Cluster, ya funciona.

Lo que pasaba es que hace 4 meses el código como lo puse funcionaba perfectamente, y al meter el servidor nuevo dejó de funcionar, de ahí mi duda.

Te lo agradezco :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:30.