Foros del Web » Programando para Internet » PHP »

Redireccionar después de una condición

Estas en el tema de Redireccionar después de una condición en el foro de PHP en Foros del Web. Hola!! Necesito redireccionar a una página después de que se cumpla una condición, según lo que he leído direccionas con: header("location: http://www.otrositio.com "); pero para ...
  #1 (permalink)  
Antiguo 16/07/2003, 17:26
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 15 años, 9 meses
Puntos: 1
Redireccionar después de una condición

Hola!!

Necesito redireccionar a una página después de que se cumpla una condición, según lo que he leído direccionas con:

header("location:http://www.otrositio.com");

pero para que esto funcione debe ir al inicio de todas las cabeceras, pero yo necesito que primero se realice una condición y según si esta se cumple entonces que se haga la redirección:

if($micondicion=="verdadera"){
#redireccionar a otra página
}

Si alguien me puede orientar, espero comentarios.

De antemano gracias por su atención.

Saludos!!
  #2 (permalink)  
Antiguo 16/07/2003, 17:44
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 15 años, 11 meses
Puntos: 0
Si esperas que se cumpla una condición para redireccioanr, de todas maneras tienes que volver a cargar la página en cuestión u otra, y es ahí donde haces tu condición y, segun el valor que le hayas enviado, y que cumpla con la condición establecida, haces la redirección.

if($condicion){
header("location:http://www.otrositio.com");
}else{

haces todo lo demas
}

Saludos
  #3 (permalink)  
Antiguo 16/07/2003, 18:32
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 15 años, 9 meses
Puntos: 1
gracias biblio!!


Actualmente mi código esta así:

<html>
<head>
<title>Actualizar </title>
</head>
<body>
<?
include("conect.php");
$conexion=Conectarse();
$sqlIp=mysql_query("SELECT * FROM direcciones",$conexion);
$regIp=mysql_fetch_array($sqlIp);

if($regIp["direccion"]==""){
header("location:http://www.altavista.com");
}
?>

</body>
</html>

y me marca error, porque según esto el header debe estar al inicio de cualquier cabecera, pero yo lo necesito exactamente donde esta, entonces tal vez deba hacerlo de otra manera o con otra instrucción, no lo se....
  #4 (permalink)  
Antiguo 16/07/2003, 19:21
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 15 años, 11 meses
Puntos: 0
Ya que insistes hacerlo en esa parte. usa javascript.


<script LANGUAGE="JavaScript">
window.location.href = "http://www.tusitio.com";
</script>


Igual no veo la necesidad de poner tu condición donde lo haces, pero en fin, que se hace.

"entre gustos y colores, no escribieron los autores"


Saludos

Última edición por biblio; 16/07/2003 a las 19:26
  #5 (permalink)  
Antiguo 17/07/2003, 09:33
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 15 años, 9 meses
Puntos: 1
ok biblio

lo checo, gracias por todo!!
  #6 (permalink)  
Antiguo 19/07/2003, 22:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si el objetivo de ese script .. es hacer una consulta a tu BD y en función del resultado "redireccionar" .. No tiene sentido el HTML que estás usando pues PHP interpreta tu código PHP (esa consulta a tu BD) y "ANTES" de que llegue al navegador .. ya le estarías diciendo que "redireccione" (he de ahí el error de cabeceras que te menciona PHP si usas header() ahí ..) ..

Quita el HTML que tienes y deja el header("location" ..) .. Si lo pruebas verás que es mas rápido y "transparente" este tipo de rediccionamiento que nó uno en javascript (o cabeceras de refresco META que podría ser otra opción) ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 13:25.