Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Header no redirecciona

Estas en el tema de Header no redirecciona en el foro de PHP en Foros del Web. Buen dia. Estoy tratando de crear header para redireccion segun el tamaño de la pantalla. Ya subi el codigo a mi pagina, pero no ejecuta ...
  #1 (permalink)  
Antiguo 11/01/2015, 14:19
 
Fecha de Ingreso: abril-2008
Mensajes: 67
Antigüedad: 15 años, 11 meses
Puntos: 0
Header no redirecciona

Buen dia.

Estoy tratando de crear header para redireccion segun el tamaño de la pantalla.

Ya subi el codigo a mi pagina, pero no ejecuta nada. Lo curioso es que si funciona muy bien en mi servidor local (XAMPP), si redirecciona en mi servidor local..

Saludos.
Código PHP:
<?php
$identifica
=$_GET['iden'];
$iden=$identifica;
?>
<script language="JavaScript"> 
if (screen.width<=600) 
   <?php header("Location: pruebadivs.php?iden=".$iden); ?>
else 
  <?php header("Location: indeednuevo.php?iden=".$iden); ?>
</script>
  #2 (permalink)  
Antiguo 11/01/2015, 15:15
Avatar de seRgiOOOOOO  
Fecha de Ingreso: noviembre-2011
Mensajes: 35
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Header no redirecciona

mira a ver si esto te va

Código:
<? $id = $_GET['iden']; ?>

<script language="JavaScript"> 
var id = '<?php echo $iden?>';
if (screen.width<=600) 
   window.location.href = "pruebadivs.php?iden=id";
else 
   window.location.href = "indeednuevo.php?iden=id";
</script>

Última edición por seRgiOOOOOO; 11/01/2015 a las 15:21
  #3 (permalink)  
Antiguo 11/01/2015, 15:26
 
Fecha de Ingreso: abril-2008
Mensajes: 67
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Header no redirecciona

Saludos, Sergiooo.

El codigo que pusiste le falto escapar la variable:
Código:
<script language="JavaScript"> 
var iden = '<?php echo $iden?>';
if (screen.width<=600) 
   window.location.href = "pruebadivs.php?iden="+iden;
else 
   window.location.href = "indeednuevo.php?iden="+iden;
</script>
El detalle es que me interesa ponerlo en header, para hacer la redireccion antes de que cargue la pagina..
  #4 (permalink)  
Antiguo 11/01/2015, 16:24
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 15 años, 8 meses
Puntos: 56
Respuesta: Header no redirecciona

pero (creo) en el momento que imprimes algo (en tu caso <script bla bla bla) no te dará un error de cabeceras ya enviadas?

me temo que si quieres que la condicion sea el ancho de la pantalla tu unica opcion es javascript (o sea, lo que puso sergioooo)
__________________
Un saludo! :-)
Quiero ser el primero
  #5 (permalink)  
Antiguo 11/01/2015, 16:34
 
Fecha de Ingreso: abril-2008
Mensajes: 67
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Header no redirecciona

Buenas, darchy. el detalle es que en el servidor local (XAMPP) de mi PC si funciona, si direcciona a las paginas, pero cuando lo subo a internet, ahi no hace nada.. ademas, he visto en scripts generados por dreamweaver, tienen los headers despues de codigo javascript. No se que pueda ser. Saludos
  #6 (permalink)  
Antiguo 11/01/2015, 16:34
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 8 meses
Puntos: 44
Respuesta: Header no redirecciona

Podés usar ob_start() y ob_end_flush().

No es lo más bonito pero debería funcionar. Probá hacer:

Código PHP:
<?php 
$identifica
=$_GET['iden']; 
$iden=$identifica
?> 
<script language="JavaScript">  
if (screen.width<=600)  
   <?php ob_start(); header("Location: pruebadivs.php?iden=".$iden); ob_end_flush(); ?> 
else  
  <?php ob_start(); header("Location: indeednuevo.php?iden=".$iden); ob_end_flush(); ?> 
</script>
  #7 (permalink)  
Antiguo 11/01/2015, 17:24
 
Fecha de Ingreso: abril-2008
Mensajes: 67
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Header no redirecciona

Gracias, Geek Girl, ya probe con tu script, pero sigue sin hacer nada en internet.. al aprecer si ejecuta algo, porque se queda actuando la pagina, pero al final se queda en blanco, sin redireccionar..

Última edición por donn; 11/01/2015 a las 17:34
  #8 (permalink)  
Antiguo 12/01/2015, 07:54
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: Header no redirecciona

Bueno, lo que yo haría es hacer todo en JAVASCRIPT y no intentar enviar una cabecera para redireccionar... es facil... pones una redirección como javascript window.location y donde necesites pasar parámetros nada mas pones el php... el javascript forzará la redirección...

pero piensa que si te bloquean el JS te fuiste al tacho... para eso estan los META VIEWPORT que hacen mejor ese trabajo, pero igual hay que darles vuelta.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #9 (permalink)  
Antiguo 12/01/2015, 08:22
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 15 años, 8 meses
Puntos: 56
Respuesta: Header no redirecciona

yo creo que necesitas ver los errores.
si tienes acceso a php.ini :
Código:
display_errors = on
y reseteas el servidor

si no, desde htaccess:

Código:
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag  log_errors on
php_value error_log  /home/path/public_html/domain/PHP_errors.log
http://stackoverflow.com/questions/6...-htaccess-only
__________________
Un saludo! :-)
Quiero ser el primero
  #10 (permalink)  
Antiguo 12/01/2015, 08:31
 
Fecha de Ingreso: enero-2015
Mensajes: 40
Antigüedad: 9 años, 2 meses
Puntos: 8
Respuesta: Header no redirecciona

Y no puede ser que lo hayas colocado en el sitio indebido y que en tu servidor local tengas activado el output buffering?

Cita:
Buffer de salida

Si en la configuración de PHP, la directiva output_buffering no tiene el valor "off" (por ejemplo 4096) significa que tenemos activado el buffer de salida. Esto lo podemos cambiar en el php.ini, que está en /etc/php5/apache2/php.ini o en un fichero .htaccess en la raíz del proyecto. En este último fichero pondríamos lo siguiente:

php_flag "output_buffering" off;

El tener activado el buffer de salida implica que podemos enviar cabeceras y cookies incluso después de que haya una salida. Pero hay que tener cuidado con esto ya que podemos tenerlo activado en nuestro servidor local; de hecho en una instalación normal es muy posible que venga activado por defecto. Pero en el servidor de producción puede estar desactivado lo que nos mostraría errores que antes no teníamos.
  #11 (permalink)  
Antiguo 12/01/2015, 08:48
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: Header no redirecciona

se supone que el OB START y el END FLUSH hacen eso que dices...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #12 (permalink)  
Antiguo 12/01/2015, 09:14
 
Fecha de Ingreso: enero-2015
Mensajes: 40
Antigüedad: 9 años, 2 meses
Puntos: 8
Respuesta: Header no redirecciona

Cita:
Iniciado por loncho_rojas Ver Mensaje
se supone que el OB START y el END FLUSH hacen eso que dices...
Cierto, desconocía dichas funciones, mis disculpas.
  #13 (permalink)  
Antiguo 12/01/2015, 09:38
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 8 meses
Puntos: 44
Respuesta: Header no redirecciona

Perdón, en realidad están mal ubicados el ob_start() y el ob_end_flush().

En el archivo php donde ejecutas el JS, al comienzo de todo, incluso antes de tu session_start(), agregá el ob_start() y al final de todo en ob_end_flush().

Ejemplo:

Código PHP:
<?php 
ob_start
();

$identifica=$_GET['iden']; 
$iden=$identifica
?> 
<script language="JavaScript">  
if (screen.width<=600)  
   <?php header("Location: pruebadivs.php?iden=".$iden); ?> 
else  
  <?php header("Location: indeednuevo.php?iden=".$iden); ?> 
</script>
<?php
// Supongamos que acá termina tu archivo

ob_end_flush();
?>
Con eso debería funcionar.
Saludos :)
  #14 (permalink)  
Antiguo 12/01/2015, 19:45
 
Fecha de Ingreso: abril-2008
Mensajes: 67
Antigüedad: 15 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Header no redirecciona

Que bien, Geek Girl, tu ultimo codigo si funciono!!! redirecciona sin problema..

Gracias a todos por sus aportes.

Saludos.
  #15 (permalink)  
Antiguo 13/01/2015, 08:28
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 8 meses
Puntos: 44
Respuesta: Header no redirecciona

Sí, no sé en qué estaba pensando cuando te pasé el primero xD
De nada sirve ponerlo dos veces en el mismo archivo. Es fundamental siempre que esté antes que nada el start y al final de todo el end.

Acordate de marcar el tema como solucionado! Saludos :)

Etiquetas: header
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 12:39.