Foros del Web » Programando para Internet » PHP »

Problemas con nombre de usuario y contraseña

Estas en el tema de Problemas con nombre de usuario y contraseña en el foro de PHP en Foros del Web. Tengo dos problemas: -Segundo cuando digito el nombre de usuario y contraseña este me lo acepta ya sea en mayúsculas o en minúsculas y cuando ...
  #1 (permalink)  
Antiguo 14/11/2003, 17:13
 
Fecha de Ingreso: agosto-2003
Mensajes: 33
Antigüedad: 14 años, 3 meses
Puntos: 0
Pregunta Problemas con nombre de usuario y contraseña

Tengo dos problemas:

-Segundo cuando digito el nombre de usuario y contraseña este me lo acepta ya sea en mayúsculas o en minúsculas y cuando digito combinadas me la acepta, y yo creo que no debería ser así, sino que cuando introduzco el nombre de usuario y contraseña en minúsculas debería de aceptar como tal y no en mayúsculas. Porque en otros sitios he observado que mientras no se digita el nombre de usuario y contraseña al como se registro no lo reconoce y no permite la entrada. Deseo saber como se hace, yo digo que se tiene que comparar las variables del formulario con las de la base de datos, pero así lo hago pero siempre me las acepta.

-He visto que en algunos sitios web cuando se introduce el nombre de usuario y contraseña una vez que se envían los datos la contraseña desaparece y yo quiero saber como se hace.

Aquí van los códigos:

<td><input type="Text" name="usuario" size="8" maxlength="25" id="usuario"></td>
</tr>
<tr>
<td valign="middle" align="right"><b>Contrase&ntilde;a:</b></td>
<td><input type="password" name="contrasena" size="8" maxlength="25" id="contrasena"></td>
<td colspan="2" align="center">
<input type="Submit" value="Entrar" class="boton"></td>

Código PHP:
<?
//Conexión
$conn mysql_connect("localhost","","");
//selecciono la BBDD
mysql_select_db("trabajo",$conn);

//Sentencia SQL para buscar un usuario con esos datos
$ssql "SELECT * FROM usuario WHERE nombre_usuario like '$usuario' and clave_usuario like '$contrasena'";

//Ejecuto la sentencia
$rs mysql_query($ssql,$conn);

//Vemos si el usuario y contraseña es valido y
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si existe usuario/contraseña
if (mysql_num_rows($rs)!=0){
    
//usuario y contraseña válidos
    //defino una sesion y guardo datos
    
session_start();
    
session_register("autentificado");
    
$autentificado "SI";
    
header("location: pagina_menu.html");
}else {
    
//si no existe le mando otra vez a la portada
    
header("Location: pagina_menu.html?Errorusuario=si");
}
mysql_free_result($rs);
mysql_close($conn);
?>
Gracias por la ayuda
__________________
Patricia
  #2 (permalink)  
Antiguo 15/11/2003, 05:45
 
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona - España
Mensajes: 270
Antigüedad: 15 años
Puntos: 0
El problema lo tienes en el operador LIKE

$ssql = "SELECT * FROM usuario WHERE nombre_usuario like '$usuario' and clave_usuario like '$contrasena'";

debería ser:

$ssql = "SELECT * FROM usuario WHERE nombre_usuario='$usuario' and clave_usuario='$contrasena'";
  #3 (permalink)  
Antiguo 17/11/2003, 07:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Lo más lógico es usar "=" en la comparación del operador para tu consulta SQL .. en lugar de "LIKE" que es más própio para usarlo junto con comodines (wilcards) tipo "%$buscar%" ...

LIKE no es "case sensitive" (no distingue entre mayusculas y minusculas) salvo que se le "fuerce" a ello con campos tipo BINARY o bien indicandoselo en ese instante en tu sentencia SQL.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 07:45.