[ View menu ]
05 Ago 08

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.

Categorías: General.

3 Comentarios

Escribir Comentario - RSS Comentarios

  1. Dijo Keroseno:

    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

    8 Enero 2009 @ 18:48
  2. Dijo ray:

    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

    15 Febrero 2009 @ 4:55
  3. Dijo Jairo:

    Ray

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

    Saludos,

    25 Julio 2009 @ 0:45

Escribir comentario