30/05/2008 a las 06:31 por Shox

Ajaxload es una aplicación web para generar gifs animados para aplicaciones AJAX. Tiene un nivel de personalización bastante elevado, pudiendo cambiar el tipo de rueda, color y fondo. El funcionamiento de la web es tan sencillo que sería un insulto explicar como funciona.
30/05/2008 a las 12:25 por Shox
Estos dias he estado trabajando en un upload en Flash y PHP (también utiliza Javascript para llamadas en AJAX) y me he encontrado con un bug de Flash muy curioso.
Flash no envia ni la sesión ni las cookies al PHP, con lo que no se puede hacer ninguna validación de usuario o cosas por el estilo. Al llegar al PHP tenemos una variable de sesión que no es la que teniamos originalmente. Por lo que he leido esto falla siempre en navegadores que no sean Internet Explorer, y a menudo en IE no envia todas las cookies, por lo que no podemos estar seguros.
Después de mucho leer, la solución no es tan complicada como cabía esperar tras ver el problema:
1.- Primero de todo, hay que pasarle el valor de la cookie por flashvars al Flash:
JavaScript:
-
flashvars: 'cookie=' + document.cookie
2.- En el flash cogemos este valor
Actionscript:
-
var url:String = "upload.php" + '?cookie=' + _root.cookie;
Donde la url será a la que llamaremos con la función upload de flash
3.- En el PHP recogemos la cookie que hemos enviado por get, y seteamos la variable de sesión a su valor original. En varios sitios he leido que esto funcionaba:
PHP:
-
list($cookieName,
$cookieValue) = str_split
('=',
$_GET['cookie']);
-
-
-
-
-
pero en mi caso no funcionó. Por lo tanto cree una manera alternativa:
En ambos casos, hay que declarar el session_name y session_id antes de hacer el session_start. En el caso que yo comento, sólo me quedo con la variable de session de PHP, ya que el resto no me interesaba.
29/05/2008 a las 11:45 por Shox
Google ha creado una nueva utilidad para los developers, que también va en beneficio de los usuarios finales. Se trata de Google AJAX Libraries API, una API que nos permite cargar desde el propio CDN de Google, las librerías más utilizadas.
Actualmente soporta jQuery, prototype, script.aculo.us, dojo y MooTools, pero están abiertos a peticiones para otros frameworks.
Ventajas
- No tenemos que hospedar la librería en cuestión
- Tendremos un CDN para estos archivos, mucho más rápido (se supone) que nuestro servidor
- Como el archivo será el mismo en diferentes webs que utilicen la API, el cache del navegador ya la tendrá guardada.
Inconvenientes
- No tenemos control sobre los archivos, por lo que si fallara el CDN (a parte de ser el fin del mundo) nuestra web no funcionaría correctamente
¿Como usarlo?
Hay dos modos para utilizarlo, utilizando la propia API de google, o llamando directamente los archivos:
-Llamando al archivo directamente, en versión comprimida y sin comprimir (por ejemplo con jQuery):
HTML:
-
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>
HTML:
-
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.js" type="text/javascript"></script>
-Utilizando la API de Google:
JavaScript:
-
google.load("jquery", "1.2", {uncompressed:true});
Google AJAX Libraries API