PHP - Redireccionar distintas paginas según usuario

 
Vista:
Imágen de perfil de Ale
Val: 83
Ha disminuido su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Redireccionar distintas paginas según usuario

Publicado por Ale (54 intervenciones) el 03/06/2016 22:13:19
Buenas, como ya me han ayudado antes, vuelvo a pedir ayuda con este formulario de logueo por la buena predisposición que tienen y que agradezco en el alma...

Tengo el siguiente "validar.php" que me redirecciona a la pagina principal cuando me logueo ("../cabecera2.php") y , si le erre en el usuairo o contraseña almacenada en base de datos, me lleva a repetir el logueo con un error en rojo ("../loginerror.php"):

Validar.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
	session_start();
?>
<!DOCTYPE html>
<html>
<Body bgcolor="#B1F5F2">
<head>
<head>
	<title>Validando...</title>
	<meta charset="utf-8">
</head>
</head>
<body>
		<?php
			include 'conexion.php';
			if(isset($_POST['login'])){
				$usuario = $_POST['user'];
				$pw = $_POST['pw'];
				$log = mysql_query("SELECT * FROM admin WHERE user='$usuario' AND pw='$pw'");
				if (mysql_num_rows($log)>0) {
					$row = mysql_fetch_array($log);
					$_SESSION["user"] = $row['user'];
				  	echo '<fieldset>Espere...</fieldset>';
					echo '<script> window.location="../cabecera2.php"; </script>';
				}
				else{
					echo '<script> window.location="../loginerror.php"; </script>';
				}
			}
		?>
</body>
</html>


Me gustaria ver, aunque sea reemplazando alguna variable con el nombre de usuario manualmente colocado u obtenido desde la BD, si es posible que , si se loguea Ale, me lleve a "cabecera2.php", pero que si el usuario logueago es Pepe, me lleve a cabecera3.php y asi segun el usuario....

Muchisimas gracias por la ayuda!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Redireccionar distintas paginas según usuario

Publicado por kip (877 intervenciones) el 03/06/2016 23:13:35
Hola, podrias evaluar en el resultado de tu consulta y asi en cada caso redirigir a donde desees, ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$log = mysql_query(" SELECT user FROM admin WHERE user='$usuario' AND pw='$pw' ");
    if (mysql_num_rows($log)>0) {
        $row = mysql_fetch_array($log);
        if (in_array('juan', $row, true)) { // en este caso evaluo si el usuario juan es traido en la consulta
            $_SESSION["user"] = $row['user'];
            echo '<fieldset>Espere...</fieldset>';
            echo '<script> window.location="../cabecera2.php"; </script>'; //redirigo a cabecera 2
        }
        if (in_array('pepe', $row, true)) { // en este caso evaluo si el usuario pepe es traido en la consulta
            $_SESSION["user"] = $row['user'];
            echo '<fieldset>Espere...</fieldset>';
            echo '<script> window.location="../cabecera3.php"; </script>'; //redirigo a cabecera 3
        }
    } else {
        echo '<script> window.location="../loginerror.php"; </script>';
    }

Debes fijarte tambien en las mayusculas y minusculas al momentos de evaluar.

Avisanos si te sirvio.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Ale
Val: 83
Ha disminuido su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Redireccionar distintas paginas según usuario

Publicado por Ale (54 intervenciones) el 04/06/2016 04:34:25
Amigo te agradezco en el alma, sabía que era algo de resolver con array, pero no lograba la sentencia correcta...lo tuve que modificar, porque si el usuario no existia, quedaba en un bucle, asi que lo arregle con un else para cada llamado de usuario, linea 9 y 10 asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$log = mysql_query("SELECT * FROM admin WHERE user='$usuario' AND pw='$pw'");
				if (mysql_num_rows($log)>0) {
					$row = mysql_fetch_array($log);
					 if (in_array('alebulo', $row, true)) { // en este caso evaluo si el usuario juan es traido en la consulta
                    $_SESSION["user"] = $row['user'];
            echo '<fieldset>Espere...</fieldset>';
            echo '<script> window.location="../cabecera2.php"; </script>'; //redirigo a cabecera 2
        }
   } else {                                                                                //ESTO TUVE QUE AGREGAR
      echo '<script> window.location="../loginerror.php"; </script>';                      //PARA QUE ME REDIRIJA EN CADA ERROR :D
 	}
                if (in_array('invitado', $row, true)) { // en este caso evaluo si el usuario pepe es traido en la consulta
	            $_SESSION["user"] = $row['user'];
			echo '<fieldset>Espere...</fieldset>';
			echo '<script> window.location="../cabecera3.php"; </script>'; //redirigo a cabecera 3
  			   }
   } else {
      echo '<script> window.location="../loginerror.php"; </script>';
                 }
 
    	?>

Te agradezco la ayuda y te mando un abrazo de Argentina :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ale
Val: 83
Ha disminuido su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Redireccionar distintas paginas según usuario

Publicado por Ale (54 intervenciones) el 25/06/2016 04:21:23
Perdon, pero me surgio un error y queria ver donde esta...porque no logro dar....en el formulario que dije que funcionaba, esta todo ok hasta 2 usuarios...péro al agregar mas, se me mezclaron los corchetes y no se donde esta la falla, pero modificandolo a cada rato puedo loguearme con todos correctamente, el problema es que si no pongo nada y quiero ir a la pagina de error, no va....queda validando....aca dejo el php a ver si me ayudan a dar con el problema...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
$log = mysql_query("SELECT * FROM admin WHERE user='$usuario' AND pw='$pw'");
				if (mysql_num_rows($log)>0) {
					$row = mysql_fetch_array($log);
					if (in_array('alebulo', $row, true)) {
						$_SESSION["user"] = $row['user'];
						echo '<fieldset>Espere...</fieldset>';
						echo '<script> window.location="../cabecera2.php"; </script>';
 
					}else{
						if (in_array('invitado', $row, true)) {
							$_SESSION["user"] = $row['user'];
							echo '<fieldset>Espere...</fieldset>';
							echo '<script> window.location="../cabecera3.php"; </script>';
 
						}else{
							if (in_array('Damian', $row, true)) {
								$_SESSION["user"] = $row['user'];
								echo '<fieldset>Espere...</fieldset>';
								echo '<script> window.location="../cabecera4.php"; </script>';
 
							}else{
								if (in_array('Luis', $row, true)) {
									$_SESSION["user"] = $row['user'];
									echo '<fieldset>Espere...</fieldset>';
									echo '<script> window.location="../cabecera3.php"; </script>';
 
								}else{
									if (in_array('Pedro', $row, true)) {
										$_SESSION["user"] = $row['user'];
										echo '<fieldset>Espere...</fieldset>';
										echo '<script> window.location="../cabecera1.php"; </script>';
									}else{
										echo '<fieldset>Espere...</fieldset>';
										echo '<script> window.location="../loginerror.php"; </script>';
									}
								}
							}
						}
					}
				}
			}
 
 
			?>
		</body>
	</html>

La falla se produce en el ELSE de la linea 32 con los agregados de usuarios, no redirije a la pagina de loginerror.php....alguna sugerencia? gracias!!...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ale
Val: 83
Ha disminuido su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Redireccionar distintas paginas según usuario

Publicado por Ale (54 intervenciones) el 25/06/2016 21:53:48
Perdón, ya lo pude arreglar, la falla era de corchetes nomás. Renegué 2 horas más y di en el clavo, gracias de todos modos y perdon la ansiedad jeje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar