Cambiar
Resolución de 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:
?>
<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:
-
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 .
-
Seteamos la cookie de nombre PHPRes
con el valor mencionado anteriormente, y refrescamos la página.
-
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.
-
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 .
-
Los valores de ancho y alto se llaman
en la función JavaScript CheckResolution , que verificará
si todo está actualizado correctamente.
-
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.
Fuente: webexperto.com
|