PHP - problema con header("location:xxxx.xxx");

 
Vista:

problema con header("location:xxxx.xxx");

Publicado por jose luis garcia garcia (2 intervenciones) el 07/06/2015 13:30:57
tengo un problema y llevo ya un par de dias sin poder resolverlo

un formulario de acceso, en el que si los datos son incorrectos, me redirecciona bien, pero al introducir los datos correctos, no me redirecciona, aparece un error 404, lo raro es que laspaginas (acceso, comprobacion y a la que redirecciona) estan en la misma carpeta, pego el código de las 3 páginas

acceso.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
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
<?php
    session_start();
    session_set_cookie_params(7200);
    function inicio_sesion (){
        if (!isset($_SESSION['usuario'])){
        }else {
            echo $_SESSION['usuario'];
        }
    }
    inicio_sesion();
?>
<!doctype html>
<html lang="es">
	<head>
	    <meta charset="utf-8">
	    <title></title>
	    <link href="css/reset.css" rel="stylesheet" type="text/css">
	    <link href="css/acceso.css" rel="stylesheet" type="text/css">
	    <link href="css/fuentes.css" rel="stylesheet" type="text/css">
	    <script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
		<script>window.jQuery || document.write('<script src="js/jquery-2.1.4.js">\x3C/script>');</script>
	</head>
	<body>
		<section>
			<form id="form1" name="form1" enctype="multipart/form-data" action="comprobacion.php" method="post" class="forms">
				<fieldset>
					<legend>Datos de Acceso</legend>
					<table>
						<tr>
							<td>Nombre: </td>
							<td><input type="text" id="nombre" name="nombre"></td>
						</tr>
						<tr>
							<td>Contraseña:</td>
							<td><input type="password" id="pass" name="pass"></td>
						</tr>
						<tr>
							<td><input type="submit" id="envio" name="envio" value="Entrar"></td>
						</tr>
					</table>
				</fieldset>
			</form>
		<?php
            if(isset($_GET['verificacion'])){
                if($_GET['verificacion']==1){
                echo '<h1 class="centrado grosor_txt">Nombre de usuario y contraseña incorrectos</h1>';
                }else if($_GET['verificacion']==0){
                    echo '<h1 class="centrado grosor_txt">Error en la ejecución de la consulta</h1>';
                }else if ($_GET['verificacion']==3){
                    //echo 'hola';
                    header("location:administracion.php");
                    //echo "<meta http-equiv='refresh' content='0;url=administracion.php'>"; 
                    //die(header ("location:administracion.php"));
                    /*echo '<script type="text/javascript">window.location.href="administracion.php";></script>';*/
                }
            }
        ?>
		</section>
		<section id="consulta">
 
		</section>
 
	</body>
</html>

comprobacion.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
<?php
    session_start();
	if(isset($_POST['nombre']) && isset($_POST['pass'])){
		$connect=mysqli_connect('mysql.hostinger.es', 'u276343226_admin', 'microcas', 'u276343226_micro');
		$sql='SELECT usuario, pass FROM acceso WHERE usuario=? && pass=?';
		$resultado=mysqli_prepare($connect, $sql);
		$ok=mysqli_stmt_bind_param($resultado, 'ss', $usuario, $pass);
		$usuario=$_POST['nombre'];
		$pass=$_POST['pass'];
		// $pass=sha1($_POST['pass']);
		$ok=mysqli_execute($resultado);
		if($ok==FALSE){
			header('Location:acceso.php?verificacion=0');
		}else{
			mysqli_stmt_bind_result($resultado, $usuario, $pass);
			mysqli_stmt_store_result($resultado);
			if(mysqli_stmt_num_rows($resultado)==1){
				$_SESSION['usuario']=$_POST['nombre'];
				header('Location:acceso.php?verificacion=3');
			}else{
				header('Location:acceso.php?verificacion=1');
			}
		}
	}else{
		header('Location:acceso.php?verificacion=2');
		//echo 'error';
	}
?>

administracion.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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
	session_start();
	function inicio_sesion (){
        if (isset($_SESSION['usuario'])){
            header('location:administracion.php');
        }else {
            header('location:acceso.php');
            echo '<p style="color:blue; margin:10px 0 0 10px;">Usuario de la sesión: '.$_SESSION['usuario'].'</p>';
        }
    }
   inicio_sesion();
    $inactivo = 3600;
    if(isset($_SESSION['tiempo']) ) {
        $vida_session = time() - $_SESSION['tiempo'];
            if($vida_session > $inactivo){
                session_destroy();
                header("Location:acceso.php");
            }
        }
    $_SESSION['tiempo'] = time();
?>
<!doctype html>
<html lang="es">
	<head>
	    <meta charset="utf-8">
	    <title></title>
	    <link href="css/reset.css" rel="stylesheet" type="text/css">
	    <link href="css/fuentes.css" rel="stylesheet" type="text/css">
        <link href="css/admin.css" rel="stylesheet" type="text/css">
	    <script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
		<script>window.jQuery || document.write('<script src="js/jquery-2.1.4.js">\x3C/script>');</script>
	</head>
    <body>
        <section>
        	<div id="titulo" class="titulo">
            	<p><?php echo $_SESSION['usuario']; ?></p>
				<hr>
                <p>Zona Privada</p>
        	</div>
        <nav>
            <ul>
                <li><a href="<?php header("location:scripts/cursos/cursosactivos.php")?>">Cursos</a></li>
                <li><a href="#">Agenda Alumnmos</a></li>
                <li><a href="#">Agenda Docentes</a></li>
            </ul>
        </nav>
        </section>
	</body>
</html>


a ver si alguien puede ayudarme con esto
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
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con header("location:xxxx.xxx");

Publicado por xve (6935 intervenciones) el 07/06/2015 20:56:47
Hola Jose Luis, recuerda hacer un exit() o un return despues de cada header("location:... ya que se sigue ejecutando el código de la pagina....;)

Cuando te da un error 404, que url aparece en el navegador?
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

problema con header("location:xxxx.xxx");

Publicado por jose luis (2 intervenciones) el 09/06/2015 09:13:10
la url era la del servidor, aunque después de darle vueltas al codigo, encontré el error, no salia a la raiz principal, faltaba añadir ../ en el redireccionamiento, un error de principiante pero ya esta solucionado y funciona perfectamente
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