Cómo validar páginas con PHP SESSION habilitada?

A veces, al validar una página que utiliza sesiones nos encontramos con que la página no valida porque estamos utilizando sesiones, y el servidor automáticamente agrega el ID de sesión a cada link.

Los links se reescriben automáticamente y quedan, por ejemplo, de esta forma:

<a href="index.php?lang=1&PHPSESSID=6a715…47b19">Change</a>
 

El problema que vamos a encontrar es que el ampersand &, para el validador debería hacer referencia al inicio de una entidad HTML como ñ, ó, á, etc. Y al aparecer solo el &, el error es que ese nombre no hace referencia a ninguna entidad. La solución es codificar la letra & como entidad html en las URLs, o sea:

&amp;

Si el link lo escribimos nosotros, lo cambiamos fácil:

<a href="index.php?lang=1&amp;PHPSESSID=6a715…47b19">Change</a>

Si el ID de SESSION es agregado automáticamente por el servidor, tenemos que modificar el php.ini:

arg_separator.output = "&amp;"

Y si no tenemos acceso o no queremos modificar php.ini, le agregamos esta línea al inicio del script php:

ini_set(‘arg_separator.output’, ‘&amp;’);

La página ahora es válida… y si sigue dando errores, el problema está en otro lado.

Esta entrada fue publicada en General. Guarda el enlace permanente.

3 respuestas a Cómo validar páginas con PHP SESSION habilitada?

  1. Keroseno dice:

    muy buen articulo, me sirvio bastante.

    para hacer la validacion, conviene explicar en caso de que (como yo) alguien no lo tenga muy claro.

    en la direccion a validar

    http://www.dominio.com/pagina.php

    se debe agregar “?&PHPSESSID= 1234567890

    donde el numero, se obtiene viendo las cookies en el navegador.

    saludos.
    y nuevamente gracias

  2. ray dice:

    hola mi estimado cmo estas, yo tengo un problema en el formulario de correo, de hecho ya lo tenia listo y funcionaba muy bien desde hace dos meses, ayer 14 de febrero entre y me marco error, gracias de ante mano,

    http://www.raymundochagoyan.com/contacto.php

  3. Jairo dice:

    Ray

    El error es que no encuentra el archivo.. asi de facil…
    o se llama diferente o cualquier orto monton de posibilidades..

    Saludos,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>