Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] etiquetas meta

Estas en el tema de etiquetas meta en el foro de PHP en Foros del Web. hola amigos. estoy haciendo un loguin donde tengo una pagina con un formulario para escribir NOMBRE Y CONTRASEÑA. y ese formulario se envia a una ...
  #1 (permalink)  
Antiguo 19/02/2014, 11:29
 
Fecha de Ingreso: septiembre-2013
Mensajes: 87
Antigüedad: 10 años, 7 meses
Puntos: 1
etiquetas meta

hola amigos. estoy haciendo un loguin donde tengo una pagina con un formulario para escribir NOMBRE Y CONTRASEÑA. y ese formulario se envia a una pagina VERIFICARUSUARIO.PHP.
el codigo es este:
Código PHP:
<?php
$usuario_usuario 
$_POST['usuario_usuario'];
$usuario_clave $_POST['usuario_clave'];
$peticion_usuario mysqli_query($conexion,"SELECT * FROM usuario WHERE usuario = '$usuario_usuario' AND clave = '$usuario_clave'");

while (
$fila_usuario mysqli_fetch_array($peticion_usuario)){
    
$usuario $fila_usuario['usuario'];
    
$clave $fila_usuario['clave'];
    if(
$usuario_usuario == $usuario $usuario_clave == $clave){
        
$_SESSION['usuario'] = $usuario;
        echo 
'<meta http-equiv="refresh" content="0;url=index.php" />';
    } else {
        echo 
'<meta http-equiv="refresh" content="0;url=errorlogin.php" />';
    }
}

?>
la cosa es que si el usuario es correcto me redirecciona a la pagina index.php (funciona bien). pero si no es correcto, no me redirecciona a errorlogin.php. será porque no pueden haber dos etiquetas meta http-equiv="refresh" en la misma pagina?
  #2 (permalink)  
Antiguo 19/02/2014, 11:36
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: etiquetas meta

En la condición if, pusiste &, pon && o and.

Cuentame como va después.

Un saludo
  #3 (permalink)  
Antiguo 19/02/2014, 11:46
 
Fecha de Ingreso: septiembre-2013
Mensajes: 87
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: etiquetas meta

de las dos formas (&& y AND) sigue exactamente igual. que podra ser?
  #4 (permalink)  
Antiguo 19/02/2014, 11:58
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: etiquetas meta

Cuando el usuario es incorrecto, te redirecciona tambien a index? o no te redirecciona a ningun sitio?

¿Podrías plasmar el código de nuevo con la modificación?

Un saludo
  #5 (permalink)  
Antiguo 19/02/2014, 12:03
 
Fecha de Ingreso: septiembre-2013
Mensajes: 87
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: etiquetas meta

cuando es incorrecto no mo redirecciona. se queda en verificarusuario.php. el codigo queda igual a lo que escribi arriba. solo cambie el & por el && y despues por el and, y sigue funcionando exactamente igual.

Código PHP:
<?php 
$usuario_usuario 
$_POST['usuario_usuario']; 
$usuario_clave $_POST['usuario_clave']; 
$peticion_usuario mysqli_query($conexion,"SELECT * FROM usuario WHERE usuario = '$usuario_usuario' AND clave = '$usuario_clave'"); 

while (
$fila_usuario mysqli_fetch_array($peticion_usuario)){ 
    
$usuario $fila_usuario['usuario']; 
    
$clave $fila_usuario['clave']; 
    if(
$usuario_usuario == $usuario $usuario_clave == $clave){ 
        
$_SESSION['usuario'] = $usuario
        echo 
'<meta http-equiv="refresh" content="0;url=index.php" />'
    } else { 
        echo 
'<meta http-equiv="refresh" content="0;url=errorlogin.php" />'
    } 


?>
  #6 (permalink)  
Antiguo 19/02/2014, 12:05
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: etiquetas meta

No has hecho el cambio correctamente, cambialo en el IF, no en la sentencia SQL.

Un saludo
  #7 (permalink)  
Antiguo 19/02/2014, 12:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: etiquetas meta

Como estás buscando solo un registro, sobra el while, además de que nunca pasará el flujo del script por el else si el usuario o contraseña son incorrectos, puesto que no se encontrará el registro y mysqli_fetch_***() devolverá falso.
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 19/02/2014, 12:13
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: etiquetas meta

Vale, revisando bien el código ya se el motivo, igualmente lo del IF debes corregirlo, & no es el mismo operador que &&.

El problema es que cuando no es correcto el WHILE no se ejecuta ni una sola vez, por lo tanto no se llega a la sentencia IF.

Teniendo en cuenta que esa sentencia es para escoger un usuario, y solo va a haber una posible opcion, no debes usar un while, seria algo como:

Código PHP:
if(mysqli_num_rows($peticion_usuario) == 1){
//Usuario correcto
} else {
//incorrecto

sin necesidad del primer while, espero que hayas entendido.

Un saludo


EDIT: Lo mismo que dijo Triby
  #9 (permalink)  
Antiguo 19/02/2014, 12:18
 
Fecha de Ingreso: septiembre-2013
Mensajes: 87
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: etiquetas meta

ahhhhhhhhhhhhh. ahi está!!!!me funciono perfecto. claro!!si no encontraba ese usuario y contraseña nunca iba a pasar por el else jajaj. muchisimas gracias a los dos!!!!!
pongo el codigo para que vean como queda y marco el tema como solucionado:
Código PHP:
$usuario_usuario $_POST['usuario_usuario'];
$usuario_clave $_POST['usuario_clave'];
$peticion_usuario mysqli_query($conexion,"SELECT * FROM usuario WHERE usuario = '$usuario_usuario' AND clave = '$usuario_clave'");

$fila_usuario mysqli_fetch_array($peticion_usuario);
    
    
$usuario $fila_usuario['usuario'];
    
$clave $fila_usuario['clave'];
    if(
$usuario_usuario == $usuario && $usuario_clave == $clave){
        
$_SESSION['usuario'] = $usuario;
        
        
        
        echo 
'<meta http-equiv="refresh" content="0;url=index.php" />';
    } else {
        echo 
'<meta http-equiv="refresh" content="0;url=errorlogin.php" />';
    } 
  #10 (permalink)  
Antiguo 19/02/2014, 12:38
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: etiquetas meta

De hecho, todavía no es correcto tu código, si configuras PHP para mostrar todos los errores y advertencias, por ahí aparecerán algunos mensajes de índice no definido y cosas así cuando usuario o contraseña sean incorrectos.

Sigue la sugerencia de Heli0s, verifica num_rows y solo ahí lees la consulta.

Por otra parte, si no tienes más HTML, ni envías mensaje al usuario, simplemente redireccionas, sugiero que lo hagas con header() en vez de etiquetas meta.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: etiquetas, formulario, meta, mysql, select
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 04:56.