Foros del Web » Programando para Internet » PHP »

direccionar con php

Estas en el tema de direccionar con php en el foro de PHP en Foros del Web. hola, existe alguna manera de direccionar a una pagina con php, dependiendo de los valores de una variable? Por ejemplo: if ($_POST['var'] == 1) // ...
  #1 (permalink)  
Antiguo 21/04/2004, 06:44
 
Fecha de Ingreso: marzo-2004
Ubicación: Extremadura
Mensajes: 206
Antigüedad: 13 años, 8 meses
Puntos: 0
direccionar con php

hola,
existe alguna manera de direccionar a una pagina con php, dependiendo de los valores de una variable? Por ejemplo:


if ($_POST['var'] == 1)
// *** ir a pagina.php ***

else if ($_POST['var'] == 2)
// *** ir a pagina2.php ***

gracias.
  #2 (permalink)  
Antiguo 21/04/2004, 06:49
Avatar de jarabas
Usuario no validado
 
Fecha de Ingreso: abril-2004
Mensajes: 111
Antigüedad: 13 años, 7 meses
Puntos: 0
Sabes como direccionarla? o lo que no sabes es como se hace la condicion?
Si me explicas un poco más igual te puedo ayudar.
  #3 (permalink)  
Antiguo 21/04/2004, 08:02
 
Fecha de Ingreso: marzo-2004
Ubicación: Extremadura
Mensajes: 206
Antigüedad: 13 años, 8 meses
Puntos: 0
lo que no se, es como direccionarla. cada condicion tiene una pagina asociada, entonces, lo que no se como hacer en php es si cumple una condicion, abrir automaticamente la pagina asociada, sin necesidad de que tenga el usuario que picar un enlace.

(seria algo asi como el location.href="pagina.php" de javascript)

gracias
  #4 (permalink)  
Antiguo 21/04/2004, 08:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Para redireccionar vía PHP por cabeceras HTTP directas:

Código PHP:
header("Location: pagina.tal");
exit; 
Ojo, que no puede existir nada más de HTML por encima de la llamada a un header() (me refiero según el flujo del código .. no "literalmente" a que exista algo de HTML por encima (unas líneas arriba).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 21/04/2004, 10:53
 
Fecha de Ingreso: marzo-2004
Ubicación: Extremadura
Mensajes: 206
Antigüedad: 13 años, 8 meses
Puntos: 0
muchas gracias por vuestra ayuda.

para este caso, el header me vale, ya que en esta pagina solo tengo codigo php que comprueba el valor de la variable que se le pasa por el metodo POST y redirecciona a la pagina que corresponda, pero...

no existe otra manera de direccionar con php? quiero decir, si existe codigo html de por medio, la unica solucion para direccionar es con javascript?

muchas gracias, de nuevo
  #6 (permalink)  
Antiguo 21/04/2004, 12:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El hecho es que no es que no pueda existir código HTML (salida en general) por médio .. sino en que veas como se ejecuta un script PHP (programa en PHP) y el por qué no tendría sentido meter HTML por encima (del flujo) de una llamada a header() ..

Te explico:

Si tu tienes una condición en PHP que determina vajo algunas variables que generas en ese proceso o llegan por otro método (externo: formulario, link parámetro, valor de una cookie, session .. etc) .. cuando usas "header("Location.. ") le dices al navegador: "Cambia la página que está viendo el cliente" ..

Es decir, no tiene sentido hacer algo tipo:

Código PHP:
<html>
<
head>
</
head>
<
body>
if (
$tal){
    
header("location: tal.php");
} else {
    echo 
"hola";
}
</
body>
</
html
pero si que sería correcto .. atendiendo a que PHP procesa la salida y compone todo lo que se le va a entregar al cliente (navegador) según su algoritmo (lógica, condicinales .. etc):

Código PHP:
<?
if ($tal){
    
header("Location: tal.php");
     exit;
} else {
?>
<html>
<head>
</head>
<body>
<? echo "hola"?>
</body>
</html>
<?
}
?>
Si te fijas .. Si se cumple la condición .. se manda la cabecera al navegador para que cambie la página .. Si no se cumple .. se le entrega una página HTML -completa- y ahí habrá tu lógica PHP a su vez y demás lenguajes del lado del cliente que se ejecutaran en su parte: -el cliente-.

PHP dispone también de funciones para controla el buffer y por ejemplo .. poder hacer un "header()" donde prácticamente te dé la gana a costa de un consumo extra de recursos del servidor que .. sinceramente creo que es mejor ordenar y programar conociendo como funciona PHP que estar haciendo "parches" .. Esas funciones són útilies para otras cosas donde realmente la "salida" no depende de ti .. sino que tal vez es obtenida de otros médios. Si quieres ver ese tema . busca en www.php.net/ob_start() ...

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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 08:10.