Pasar la 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:
<?
/******************************************
JavaScript to PHP Screen Resolution vBETA
******************************************/
?>
<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>
<?
}
?>
/******************************************
JavaScript to PHP Screen Resolution vBETA
******************************************/
?>
<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;
?>
$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! :D
Espero que esto te sea de ayuda, y cualquier cosa estoy en los foros.
No hay comentarios.