Foros del Web » Programando para Internet » PHP »

Login PHP no re direciona

Estas en el tema de Login PHP no re direciona en el foro de PHP en Foros del Web. Bueno tengo este problema he creado un login usando session pero el problema esta que al intentar loggearse hacer click en el boton submit pasa ...
  #1 (permalink)  
Antiguo 26/10/2014, 10:20
Avatar de jiam_1992  
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Login PHP no re direciona

Bueno tengo este problema he creado un login usando session pero el problema esta que al intentar loggearse hacer click en el boton submit pasa al archivo php le he llamado login_check.php y se queda alli en blanco bueno el problema es que tiene que redireccionar al usuario segun su tipo si es administrador o usuario normal pero por esto que sucede que desconosco no funciona he leido un sin fin cosas que al final no me han servido, agradeceria mucho si alguien me ayuda a solucionarlo.

Código HTML:
<form action="login_check.php" method="post" class="form">
										<label>UserName :</label>
										<input id="name" name="username" placeholder="username" type="text">
										<label>Password :</label>
										<input id="password" name="password" placeholder="**********" type="password">
										<input name="submit" type="submit" value="login">
										<span><?php echo $error; ?></span>
										</form> 
Código PHP:
<?php
include_once "conexion.php";
session_start();
$error='';
if (isset(
$_POST['submit'])) {
if (empty(
$_POST['username']) || empty($_POST['password'])) {
$error "Usuario o Contraseña invalida.";
}
else
{
$username=$_POST['username'];
$password=$_POST['password'];
$username stripslashes($username);
$password stripslashes($password);
$query mysql_query("select * from registration where password='$password' AND username='$username'"$con);
$rows mysql_num_rows($query);
if (
$rows == 1) {
    
$_SESSION['login_user']=$username;
    
$fila=mysql_fetch_array($query);
    if(
$fila['tipousuario']=='admin') {
        
header("Location: index_a.php");
        exit;
    }
    else {
        
header("Location: index_c.php");
        exit;
    }
} else {
$error "Usuario o Contraseña invalida.";
}
mysql_close($con);
}
}
?>

Última edición por jiam_1992; 26/10/2014 a las 10:31
  #2 (permalink)  
Antiguo 26/10/2014, 11:03
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 11 años
Puntos: 10
Respuesta: Login PHP no re direciona

Hola,

Bueno ... con que "se queda en blanco" quieres decir que ¿en la barra de dirrecciones se queda la pagina de donde enviaste? o ya ha cambiado en http://tu_sitio/index_a.php o http://tu_sitio/index_c.php ?

Pregunto por intentar entender mejor lo que pasa
  #3 (permalink)  
Antiguo 26/10/2014, 11:17
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 11 años
Puntos: 10
Respuesta: Login PHP no re direciona

Mirando un poco mas ... antes de tener la respuesta a la pregunta de antes
me suena que en el else ;

Código PHP:
Ver original
  1. } else {
  2. $error = "Usuario o Contraseña invalida.";
  3. }

le falta un echo $error

entonces si te saltaria este error (aunque tu pones la buena contraseña) ... el error seria en el SQL o en la contraseña guardada
  #4 (permalink)  
Antiguo 26/10/2014, 11:40
Avatar de jiam_1992  
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Login PHP no re direciona

Efectivamente como lo dijiste salta al login_check.php en la barra de direcciones y la pantalla en el navegador se queda en blanco no redireciona. con lo de error se muestra en el formulario <span><?php echo $error; ?></span> para que no pase solo por el error y se vea un poco mejor aca una captura de como se queda.


Ningun error, solo se queda ahi cuando deberia redireccionar al usuario.
  #5 (permalink)  
Antiguo 26/10/2014, 14:26
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 11 años
Puntos: 10
Respuesta: Login PHP no re direciona

Hola,

He revisado otra vez tu codigo pero al no tener mysql y para no modificar tus variables he emulado dichas variables como si vinieran de mysql ... y funciona .. la pagina me redirige correctamente.

Lee lo que he escrito en los comentarios del codigo .

Código HTML:
Ver original
  1. <form action="login_check.php" method="post" class="form">
  2.     <label>UserName :</label>
  3.     <input id="name" name="username" placeholder="username" type="text">
  4.     <label>Password :</label>
  5.     <input id="password" name="password" placeholder="**********" type="password">
  6.     <input name="submit" type="submit" value="login">
  7.     <!-- he puesto aquy @ delante de $error porque me arrojaba un error al entrar por primera vez al no ser la variable declarada-->
  8.     <span><?php echo @$error; ?></span>
  9. </form>
Código PHP:
Ver original
  1. <?php
  2. //descomentar aqui despues de probar
  3.  
  4.     //include_once "conexion.php";
  5.     //session_start();
  6.  
  7.  
  8.     $error='';
  9. if (isset($_POST['submit'])){
  10.     if (empty($_POST['username']) || empty($_POST['password'])){
  11.         $error = "Usuario o Contraseña invalida.";
  12.     }else{
  13.    
  14.         $username=$_POST['username'];
  15.         $password=$_POST['password'];
  16.         $username = stripslashes($username);
  17.         $password = stripslashes($password);
  18.  
  19. //descomentar aqui despues de probar
  20.  
  21.         /*$query = mysql_query("select * from registration where password='$password' AND username='$username'", $con);
  22.         $rows = mysql_num_rows($query);
  23.         */
  24.  
  25.  
  26. //borrar o comentar lo que he añadido entre ########## y *********** despues de probar
  27.  
  28.         //########################################################
  29.         //he emulado aquy tu conexion como si el usuario existiera para poder seguir con tus variables de verdad
  30.         //despues de prpbar con esto borras lo que he puesto y entre  ######## y  ************
  31.         // y solo descomentas tus antiguas lineas
  32.         // si no te funciona es que el problema esta en la base de datos porque como esta ya . Si que funciona
  33.        
  34.         //emulando el array respuesta mysql
  35.         $fila = [];
  36.        
  37.         // aqui puedes cambiar con $username o $password. yo he puesto como posibles usuarios a o b ... pero los dos con la contraseña c ... cambalos por lo que quierras
  38.         if(($username === "a" || $username === "b") && $password === "c"){
  39.             $rows = 1;
  40.             if($username === "a"){
  41.                 $fila['tipousuario'] = "admin";
  42.             }
  43.  
  44.         }
  45.         //*********************************************************
  46.        
  47.         if ($rows == 1){
  48.             $_SESSION['login_user']=$username;
  49.             //aquy empleo mi variable $ fila que he creado mas arriba. Tu borras lo de arriba y descomentas tu antigua $fila de abajo
  50.            
  51.             //$fila=mysql_fetch_array($query);
  52.             if($fila['tipousuario']=='admin') {
  53.                 header("Location: index_a.php");
  54.                 exit;
  55.             }else{
  56.                 header("Location: index_c.php");
  57.                 exit;
  58.             }
  59.         }else{
  60.             $error = "Usuario o Contraseña invalida.";
  61.         }
  62.             //como no tengo conexion he comentado lo tuyo ... despues de probar descomenta lo tuyo aquy tambien
  63.             //mysql_close($con);
  64.     }
  65. }
  66. ?>

Última edición por matake; 26/10/2014 a las 14:37
  #6 (permalink)  
Antiguo 27/10/2014, 08:38
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Login PHP no re direciona

Redirecciona con JAVASCRIPT.. estan enviando HEADERS cuando la página ya lo hizo...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #7 (permalink)  
Antiguo 27/10/2014, 09:17
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Login PHP no re direciona

No es una buena práctica, pero si querés redireccionar con PHP podés usar el header('Location') aunque los headers ya se hayan enviado. Cómo? Añadí al principio del archivo PHP esta línea:

Código PHP:
<?php
    ob_start
();
?>
Y al final esta otra:

Código PHP:
<?php
    ob_end_flush
();
?>
Esto básicamente va a frenar el output de datos hasta que invoques a ob_end_flush() y por tanto vas a poder modificar las cabeceras sin problemas.

Saludos :)

Etiquetas: login, mysql, select, sql, variable
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 00:14.