PHP Redirect √ Página

Pido su ayuda para hacer una redireccion de php.

Hice un código de algunas notas y en línea parece funcionar, sin embargo algunas personas están señalando que no funcionan y en lugar de ser redireccionados a la página, se presentan con una pantalla blanca, como si no carga la página.

Aquí está el código:

php
$qblog = $_SERVER['PHP_SELF'];
if (strpos($qblog, '/blog/') !== false || strpos($qblog, '/cart/') !== false || strpos($qblog, '/cartsearch/') !== false)
    $qpath = '../';
else
    $qpath = '';
require_once($qpath . "res/x5engine.php");
$qfolder  = $imSettings['general']['public_folder'];
$qurl     = pathCombine(array(
    $imSettings['general']['url'],
    $qfolder
));
$pa       = Configuration::getPrivateArea();
$dati     = $pa-whoIsLogged();
$username = $dati['username'];
$realname = $dati['realname'];
$datiUser = $pa->getUserByUsername($username);
$email    = $datiUser['email'];
$userpage = $pa->getLandingPage(); //Entry page
/*$avatar   = glob($qpath . $qfolder . "/avatar-" . $username . ".*");
$tsfoto   = 0;*/
if ($username)
  {
    header( "Location:$qpath $userpage"); 
    die;
 }
else
  {
    header( "Location:$qpath imlogin.php"); 
    die;
  }  
?>

¿Me equivoco? Funciona para mí, pero no entiendo por qué algunos usuarios encuentran la página en blanco. Página de prueba en línea: https://www.stiac.it/user-area.php

Pregunta hecha hace 3 años, 5 meses, 4 días - Por compilerczar


2 Respuestas:

  • El problema que estás experimentando con la redirección puede estar relacionado con el uso incorrecto de header("Location: ..."). Aquí hay algunas recomendaciones para corregir el código:

    • Antes de enviar cualquier tipo de salida al navegador, asegúrate de que no hay ningún espacio en blanco o caracteres no deseados antes de ``, ya que esto puede causar problemas al intentar redirigir con `header()`.
    • Asegúrate de que no haya ningún contenido HTML (incluyendo espacios en blanco, líneas vacías, etc.) antes de la etiqueta de apertura ``.
    • Añade el siguiente código al inicio de tu archivo PHP para mostrar posibles errores que puedan estar causando la pantalla en blanco:

    php
       reporting(EALL);
       iniset('displayerrors', 1);
       

    • Agrega un `exit;` después de `header("Location: ...");` en lugar de `die;`. El comando `exit;` asegurará que el script se detenga inmediatamente después de la redirección.
    • Asegúrate de que no haya ningún otro código que pueda imprimir algo en pantalla antes de la redirección.
    • Verifica que la ruta de redirección `$qpath . $userpage` y `$qpath . "imlogin.php"` estén definidas correctamente y apunten a las ubicaciones correctas.

    Intenta implementar estos ajustes en tu código y luego prueba nuevamente la redirección para verificar si el problema de la pantalla en blanco se ha resuelto. Si el problema persiste, revisa cualquier otra parte del código que pueda estar causando conflicto.

    Respondida el Dec 17, 2020 a las 20:06 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Posibles causas del problema:

    Servidor lento: La redirección puede tardar demasiado en procesarse, lo que lleva a una pantalla en blanco. Caché del navegador: El navegador puede estar almacenando en caché la página anterior, impidiendo que se muestre la redirección. Bloqueadores de anuncios: Algunos bloqueadores de anuncios pueden interferir con las redirecciones. Problemas de codificación: El código PHP puede tener errores de codificación que impidan que se ejecute correctamente.

    Soluciones potenciales:

    1. Comprueba el tiempo de respuesta del servidor: Utiliza una herramienta como GTmetrix o Pingdom para comprobar el tiempo de carga de la página. Si es alto, considera optimizar tu servidor.

    2. Borra la caché del navegador: Pide a los usuarios que borren la caché y las cookies del navegador antes de intentar acceder a la página.

    3. Deshabilita los bloqueadores de anuncios: Pide a los usuarios que deshabiliten los bloqueadores de anuncios para ver si eso resuelve el problema.

    4. Revisa el código PHP: Asegúrate de que el código PHP esté libre de errores. También puedes intentar depurarlo utilizando herramientas como Xdebug.

    5. Comprueba la configuración del servidor: Asegúrate de que el servidor está configurado correctamente para manejar redirecciones. Verifica la configuración de .htaccess o el archivo de configuración del servidor web.

    6. Utiliza JavaScript: Como alternativa a la redirección del lado del servidor, puedes utilizar JavaScript para redirigir a los usuarios después de un breve retraso. Esto puede ser más rápido y fiable.

    Recomendaciones adicionales:

    Utiliza una redirección 301 permanente en lugar de una redirección 302 temporal para indicar a los motores de búsqueda que la redirección es permanente. Redirige solo a páginas existentes para evitar bucles de redirección.

    • Monitoriza las redirecciones utilizando herramientas de análisis para asegurarte de que funcionan como se espera.

    Si el problema persiste, proporciona más detalles sobre el entorno del servidor y los pasos realizados para resolver el problema.

    Respondida el Dec 17, 2020 a las 20:10 - por Gemini

    Votos positivos: 0 | Votos negativos: 0