PHP - Redirección

   
Vista:
Imágen de perfil de Tomás

Redirección

Publicado por Tomás (81 intervenciones) el 05/09/2013 20:59:25
Tengo esto, y siempre que hago login nunca me redirecciona a donde quiero en este caso a me.php no se por que...

acá el code:

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
 
    session_start();
 
    include ("config.php");
 
?>
 
<!DOCTYPE html>
<html lang="es" />
    <head>
        <title> Chat </title>
        <meta charset="UTF-8" />
    </head>
    <body>
 
    <?php
 
    if(!isset($_SESSION['login']))
    {
    	if(isset($_POST['entrar']))
    	{
    		if(empty($_POST['nombre']) || empty($_POST['password']))
    		{
    			echo "Los campos no pueden quedar en blanco.";
    		}
 
    		else
    		{
    			$user = mysqli_real_escape_string($conexion, $_POST['nombre']);
    			$pass = mysqli_real_escape_string($conexion, $_POST['password']);
 
    			$cheko = mysqli_query($conexion, "SELECT * FROM xat WHERE nombre = '".$user."' AND clave = '".$pass."'")or die("Error en el chekeo de datos.");
 
    			if(mysqli_num_rows($cheko) > 0)
    			{
    				$_SESSION['login'] = $user;
    			}
 
    			else
    			{
    				echo "datos incorrectos";
    			}
    		}
    	}
 
    ?>
 
    <form action="" method="post">
    Nombre de usuario:<br>
    <input type="text" name="nombre"><br>
    Contraseña:<br>
    <input type="password" name="password">
    <br>
    <input type="submit" name="entrar">
    </form>
 
    <?php
 
    }
 
    else
    {
    	echo '<meta http-equiv="Refresh" content="1;url=me.php">';
    }
 
    ?>
 
    </body>
</html>
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 xve

Redirección

Publicado por xve (5518 intervenciones) el 06/09/2013 09:14:19
Hola Tomás, no entiendo muy bien tu código...
Si hay una variable de sesión, quieres redireccionar a la paigna me.php? es así?

si es así, te recomiendo hacer directamente desde el PHP, ya que desde HTML, podrá controlarlo el usuario...

En el inicio de la pagina, antes de escribir nada de html...
1
2
3
4
if(isset($_SESSION['login']))
{
    header("location:me.php");
}

Coméntanos, ok?
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 Tomás

Redirección

Publicado por Tomás (81 intervenciones) el 06/09/2013 11:35:21
Quiero que cuando inicie sesión lo redireccione a donde yo quiera...

pero pongo header, y todo ese rollo y no me redirecciona tengo que reiniciar la página para que me redireccione.

¿Qué podría hacer?.
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 xve

Redirección

Publicado por xve (5518 intervenciones) el 06/09/2013 13:31:19
Hola Tomás, tendría que funcionare sin problema... te da algún error? lo has puesto al inicio de todo del código?
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 Tomás

Redirección

Publicado por Tomás (81 intervenciones) el 06/09/2013 13:58:16
Tal y cómo ves hay es lo que tengo.

Sólo que sustitullo el else:

1
2
3
4
else
    {
    	echo '<meta http-equiv="Refresh" content="1;url=me.php">';
    }


ese y en ves de poner el echo pongo el header pero me salta un error.
que es:

1
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\chat\index.php:17) in C:\xampp\htdocs\chat\index.php on line 64

De todas maneras tengo que dar f5 para que se redirija a me.php pero con el header me sale ese error.

1
2
3
4
else
    {
    	header("location:me.php");
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de xve

Redirección

Publicado por xve (5518 intervenciones) el 06/09/2013 14:46:08
Tomás.... ponlo al inicio de tu código, antes de poner ningún código de html.
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 Tomás

Redirección

Publicado por Tomás (81 intervenciones) el 06/09/2013 18:06:25
Pero entonces me redireccionaría al tiron sin hacer login.

Yo lo que quiero que al hacer login me redireccione y no me redirecciona no se por que :(
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

Redirección

Publicado por rafa (5 intervenciones) el 17/10/2013 13:25:17
mira a ver si el editor que usas esta guardandote los fichero como utf-8 con BOM.
tienes que guardarlos como UTF-8 sin BOM, y tampoco sirve UTF-16, etc.
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

Redirección

Publicado por Mari Carmen (145 intervenciones) el 17/10/2013 21:25:12
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
47
48
49
50
51
52
53
54
<?php
 
session_start();
include ("config.php");
 
//Antes de seguir haciendo nada y si ya estamos logueados redireccionamos
if(isset($_SESSION['login'])){
    header("Location: me.php"); //Redireccionas por que ya estas logueado.
    exit();
}
 
/** Inicializamos variables **/
$entrar   = ((isset($_POST['entrar']))?true:false);
$nombre   = ((isset($_POST['nombre'])   && !empty($_POST['nombre']  ))?mysqli_real_escape_string($conexion,$_POST['nombre']  ):false);
$password = ((isset($_POST['password']) && !empty($_POST['password']))?mysqli_real_escape_string($conexion,$_POST['password']):false);
$checko   = false;
$error    = false;
/** Fin inicialización **/
 
//Comprobamos que todos son correctos
if($entrar && $nombre && $password)
{
    $cheko = mysqli_query($conexion, "SELECT nombre FROM xat WHERE nombre = '$nombre' AND clave = '$password'")
        or die("Error en el chekeo de datos.");
    if(mysqli_num_rows($cheko) > 0){
        $_SESSION['login'] = $nombre;
        header("Location: me.php"); //Redireccionas por que te acabas de loguear.
        exit();
    }else{
        $error="Datos Incorrectos";
    }
}
/*
 * Si no estamos logueados de antes, y no nos hemos logueado satisfactoriamente
 * enseñamos el formulario.
 */
?><!DOCTYPE html>
<html lang="es" />
    <head>
        <title> Chat </title>
        <meta charset="UTF-8" />
    </head>
    <body>
        <p><?=$error?></p>
        <form action="" method="post">
            Nombre de usuario:<br>
            <input type="text" name="nombre"><br>
            Contraseña:<br>
            <input type="password" name="password">
            <br>
            <input type="submit" name="entrar">
        </form>
    </body>
</html>

Saludos.
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