PHP - header(location) ... no funciona en servidor

 
Vista:
sin imagen de perfil

header(location) ... no funciona en servidor

Publicado por Fran (2 intervenciones) el 13/04/2017 12:23:11
Buenas tardes y un saludo a todos, este es mi primer mensaje en el foro.

Tengo un problema al que no paro de dar vueltas y no encuentro la solucion, la cuestión es que en desarrollo bajo xammp con PHP 5.6 funciona correctamente y en mi servidor 1&1 con la misma versión no.

El problema es el siguiente, desde un listado de artículos, tengo un enlace en cada uno de ellos para borrar dicho artículo, el enlace es así

1
<a href="index.php?seccion=delete-articulos&id=<?php echo $fila["IDArticulo"]; ?>Eliminar</a>

la sección delete-articulos me envía al archivo delete.php cuyo código es este:

1
2
3
4
5
6
7
8
9
10
<?php
$id = abs(intval($_GET["id"]));
$consulta = "delete from articulos where IDArticulo = " . $id;
$resultado = mysqli_query($conexion,$consulta);
if ($resultado) {
	header("Location: index.php?seccion=select-articulos&error=1");
} else {
	header("Location: index.php?seccion=select-articulos&error=2");
}
?>

Pues bien, en xammp sin problemas, borra el artículo y me redirecciona de nuevo al listado de artículos mostrando el aviso o error enviado mediante la url.

Cuando subo el archivo a 1&1 me borra correctamente el artículo, pero me redirige a la misma dirección de borrado, es decir a index.php?seccion=delete-articulos&id=(IDArticulo) por lo que la pantalla se queda en blanco.

En teoría la configuración del servidor está bien, tengo más headers("location") en la web y funcionan sin problemas, pero esta del borrado me tiene loco.

A ver si hay suerte y alguien me puede echar una mano.

Gracias anticipadas
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 Lopez
Val: 395
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

header(location) ... no funciona en servidor

Publicado por Lopez (128 intervenciones) el 13/04/2017 16:48:54
Hola Fran,

Espero todo bien por ahi.
En lo referente a tu codigo este se ve bien.
Pero, y que tal si probamos algunas cosas?. Ve testeandolas una por una.


1 - Añadir un " / " despues de los dos puntos del location, fijate el detalle en el ejemplo.
1
<? header("Location: /index.php?seccion=select-articulos&error=1"); ?>

2 - Usar uri absoluta o al menos a un archivo, como en el ejemplo.
1
<? header("Location: /bla.php"); ?>

3 - Usar die; o exit();
1
2
3
<? header("Location: /bla.php");
//die; 
exit();  ?>

Espero ayuden.
Saludos!
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
sin imagen de perfil

header(location) ... no funciona en servidor

Publicado por Fran (2 intervenciones) el 17/04/2017 18:02:56
Gracias por tu ayuda, pero nada...

He conseguido solucionarlo con esto:

1
2
echo "<script>location.href='produto-lista.php?removido=true';</script>";
die();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar

header(location) ... no funciona en servidor

Publicado por Hatake (6 intervenciones) el 25/05/2019 22:58:13
Gracias ami tambien me ayudo
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
Imágen de perfil de javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

header(location) ... no funciona en servidor

Publicado por javier (547 intervenciones) el 03/05/2020 10:06:45
Hola, una cosa, ves dla diferencia de tu primer codigo al de la solución?

1
header("Location: index.php?seccion=select-articulos&error=1");

aqui lo envias al index.php


1
echo "<script>location.href='produto-lista.php?removido=true';</script>";

aqui lo mandas a producto-lista.php

por que no haces?

1
header("Location: produto-lista.php?removido=true");
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

header(location) ... no funciona en servidor

Publicado por Zam (1 intervención) el 03/05/2020 06:18:26
hola,

también estuve atorado un par de horas para solucionar este problema, pero al fin quedó.. en primer lugar al ejecutar mi script de forma local desde mi IDE funcionaba a la perfección pero una vez que lo cargaba en el servidor desde la web, no me enlazaba a las paginas correspondientes usando header (Location),

la solución reside en la modificación del archivo Php.ini del Cpanel, activar la directiva php "enable_dl", que por defecto esta desactivada.
una vez realizado esto, recargar tu pagina y listo, acceso correcto en los encales de acuerdo a tu proyecto.

saludos.
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
Imágen de perfil de javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

header(location) ... no funciona en servidor

Publicado por javier (547 intervenciones) el 03/05/2020 10:38:52
Hola,

no en todos los servidores te permiten modificar el php.ini, en los compartidos normalmente no,

se podria hacer tambien modificando el archivo .htaccess, pero tampoco en todos los servidores lo dejan modificar o incluso crear.

Un saludo
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

header(location) ... no funciona en servidor

Publicado por Marco Cachi (1 intervención) el 04/10/2021 17:55:34
Hola,

Se me presentó este inconveniente al mudar de servidor, de uno dedicado a uno compartido con Cpanel.

El problema es con el redireccionamiento con php, y efectivamente se soluciona haciendo esto con javascrip.

Sin embargo el problema en mención solo se me presenta en algunos archivos, teniendo la misma nomenclatura en algunos casos si redirecciona normalmente.

Puedes brindar más detalles sobre la manipulacion de la directiva "enable_dll", ya que no he podido ubicarla en mi editor de Php.ini.
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