Redirecciones en php

Hola buenas estoy haciendo unas cosillas en php y no consigo que tras hacer algo me redireccione a donde le digo. Aqui le digo que me rediriga a unos archivos que tengo en el mismo directorio, y no hace nada... también he probado a poner una direccion como google.com y sigue tampoco sin redirigirme ,¿qué puede estar pasando?
<?php
session_start();
include_once("socio.php");
   $dni = $_POST["DNI"];
   $_SESSION["iddni"] = $dni;
   print("<p>El dni es:".$_SESSION["iddni"]."</p>");
   $password = $_POST["passwd"];
   print("<p>El pass es:".$password."</p>");
   $conexion = mysql_connect("localhost","root","root") or die ("Error al conectar con el servidor");
   $soc = new Socio;
   $existe = $soc->ComprobarSocio($dni, $conexion);
   if($existe == 1){//login correcto
      $soc->ConectarSocio($dni,$conexion);
      $correcto = $soc->VerificarPass($password,$conexion);
      if($correcto == 1){//pass correcto
         echo "<script language='JavaScript'>
                    alert('Contrasenia correcta. Redireccionando.');
                    </script>";
             header("Refresh: 1; URL=usuario.php");
      }
      else{//pass erroneo
         echo "<script language='JavaScript'>
                  alert('contrasenia erronea. Redireccionando');
                  </script>";
             header("Refresh: 1; URL=index.html");
      }
   }
   else{//no existe usuario
      echo "<script language='JavaScript'>
                   alert('Fallo en el login, intentelo de nuevo.');
                   </script>";
         header("Refresh: 1; URL=index.html");
   }

?>
Yo en PHP (más bien HTML) redirijo así:

echo "<meta http-equiv='Refresh' content='x;URL=web_page.php' />";


donde x es el tiempo en segundos que quiero que tarde en redirigir y web_page.php la página de redirección.

Un saludo.
No puedes cambiar el header después de escribir algo de html (los echos y demás).

Podrías redirigir mediante Javascript.
$url = "http://www.google.es";
echo "<script> location.href='$url'; </script>";
He probado los 2, y bueno ahora tengo el código así y no lo consigo... ¿que falla?
<?php
session_start();
include_once("socio.php");
   $dni = $_POST["DNI"];
   $_SESSION["iddni"] = $dni;
   print("<p>El dni es:".$_SESSION["iddni"]."</p>");
   $password = $_POST["passwd"];
   print("<p>El pass es:".$password."</p>");
   $conexion = mysql_connect("localhost","root","root") or die ("Error al conectar con el servidor");
   $soc = new Socio;
   $existe = $soc->ComprobarSocio($dni, $conexion);
   if($existe == 1){//login correcto
      $soc->ConectarSocio($dni,$conexion);
      $correcto = $soc->VerificarPass($password,$conexion);
      if($correcto == 1){//pass correcto
         echo "<meta http-equiv='Refresh' content='5;URL=usuario.php' />"
         //echo "<script>window.location='www.google.com';</script>";
         //header("Refresh: 1; URL=alquiler.php");
         //header("Refresh: 1; URL=usuario.php");
         //echo "<script language='JavaScript'> alert('Contrasenia correcta. Redireccionando.'); </script>";
             
      }
      else{//pass erroneo
         echo "<script language='JavaScript'>
                  alert('contrasenia erronea. Redireccionando');
                  </script>";
             header("Refresh: 1; URL=index.html");
             
      }
   }
   else{//no existe usuario
      echo "<script language='JavaScript'>
                   alert('Fallo en el login, intentelo de nuevo.');
                   </script>";
         header("Refresh: 1; URL=index.html");
   }

?>


Si que funcionan, perdonadme
3 respuestas