Resolución: JavaScript a PHP

En esta ocasión voy a mostrarles como pasar la resolución de JavaScript a PHP.

Todos sabemos que el lenguaje PHP, al ser del lado del servidor, no puede tomar nuestra resolución. Pues, hay una forma sencilla de pasar las medidas de JavaScript a PHP con un solo click!

Para setear una cookie con JavaScript, el comando es el siguiente:

document.cookie = ‘NOMBRE=VALOR; expires=FECHA; path=CAMINO; domain=DOMINIO; SECURE’;

Teniendo esto en cuenta, lo que haremos será un script, mezcla de PHP y JavaScript. Consistirá en dos archivos: mostrar.php y getres.php.

El código es el siguiente:

<?
/******************************************
JavaScript to PHP Screen Resolution vBETA
by Lenn García
Date: 08-29-2004
******************************************/
?>
<script language=”javascript”>
function SetCookie() {
var width = screen.width;
var height = screen.height;
var res = width + ‘x’ + height;
document.cookie = ‘PHPRes=’+res;
location = ‘<?=$GLOBALS[‘siteurl’];?>’;
}

function CheckResolution(width, height) {
if(width != screen.width && height != screen.height) {
SetCookie();
}
}
</script>
<?
if(isset($_COOKIE[‘PHPRes’]) || !empty($_COOKIE[‘PHPRes’])) {
$res = explode(“x”,$_COOKIE[‘PHPRes’]);
$width = $res[0];
$height = $res[1];
?>
<script language=”javascript”>
CheckResolution(<?=$width;?>,<?=$height;?>);
</script>
<?
} else {
?>
<script language=”javascript”>
SetCookie();
</script>
<?
}
?>

Lo que hacemos con este código es lo siguiente:

  1. En la función JavaScript SetCookie definimos dos variables con el ancho y el alto de la resolución, y lo colocamos en un string de valor anchoxalto .
  2. Seteamos la cookie de nombre PHPRes con el valor mencionado anteriormente, y refrescamos la página.
  3. Luego, en la función JavaScript CheckResolution comparamos los valores actuales de la resolución y los invocados como parámetros en la función. Si no son iguales, se crea la cookie con los datos actualizados.
  4. Pasando a PHP, se verifica la existencia de la cookie PHPRes , y si la misma existe, se separan los valores numéricos de la x .
  5. Los valores de ancho y alto se llaman en la función JavaScript CheckResolution , que verificará si todo está actualizado correctamente.
  6. Si la cookie no existe, se la creará.

El archivo desde el que se llama al script debe cumplir ciertos requisitos:

  • Antes de invocar al archivo getres.php debe definir una variable $GLOBALS con la dirección de la página original ($_SERVER[‘REQUEST_URI’]).

La página original (mostrar.php) sería así:

<?
$siteurl = $_SERVER[‘REQUEST_URI’];
$GLOBALS[‘siteurl’] = $siteurl;
require(‘getres.php’);
echo $width.’x’.$height;
?>

Lo que hace el código es tomar la dirección desde el dominio principal (pero sin él), y luego convertirla en variable super-global. Pide el archivo getres.php , y luego se muestran las variables.

Recuerda que debes tener habilitadas las cookies, en tu navegador, para poder utilizar este método.

Bueno, eso es todo por hoy! 😀

Espero que esto te sea de ayuda, y cualquier cosa estoy en los foros.

Deja un comentario