Hacking Develooping Flash Chat
En estos días estuve trabajando en el rediseño de NetMoviles, por contacto de mi amigo grapitix radicado en la madre patria, entre otras cosas quieren cambio de diseño, y de la web, agregar unas cosas entre ellas un chat para realizar consultas en línea.
No tenía tiempo para desarrollar uno en flash (asi lo querían
), así que me puse a la busca de uno en google. Encontré varios pero eran un poco pesados para mi gusto, hasta que dí con Develooping flash chat desarrollado en flash y php; incluso hay una demo para que lo prueben en línea, haber si les convence
.
En la web del autor dice lo siguiente “Es gratuito, puedes usarlo libremente y modificarlo como desees (siempre que mantengas los créditos).”; creo que el autor quiso decir libre
. Lo descargué y me dispuse a instalarlo, pero no funcionaba :S, asi que revisé el código, y ví que usaba variables globales por todos lados, es decir, para que funcione la opción en el php.ini, register_globals debería estar activada. Yo tengo dicha opción desactivada porque no me gusta usar variables globales nunca, y no solo en php, en mi opinión el uso de variables globales hace que el código se vuelva dificíl de mantener y entender, a parte que no es un buen hábito de programación, ni muy seguro que digamos
, aunque algunos ven el uso de globales como desarrollo mas rápido, lo cual es diferente de productivo
.
Para dar un ejemplo del uso de globales, Si llamamos a una página con http://www.miweb.com/mipagina.php?mivariable=5, esto provoca que en la página mipagina.php automáticamente genere la variable $mivariable con el valor 5. Pero por razones de seguridad este comportamiento automático se ha cambiado, estableciendo el valor por defecto de register_globals a off, a partir de la version 4.2.x de PHP.
Ahora para no trabajar con globales debemos buscar todas aquellas variables que son definidas automáticamente, variables del servidor, que provienen de get o post, cookies, files, variables de entorno o sesión. Reemplazar esas variables por las referencias adecuadas en cada caso, en PHP se han definido unos arrays diferentes con valores, dependiendo del lugar de procedencia. Así tenemos los arrays $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $REQUEST y $_SESSION.
Si por ejemplo tenemos el siguiente script:
echo "Usuario: " . $usuario; //session
echo "Tipo de navegador: " . $HTTP_USER_AGENT;
echo "Variable: ".$mivariable; //variable de get
Se reemplaza por:
echo "Su edad: " . $_SESSION['usuario']; //session
echo "Tipo de navegador: " . $_SERVER['HTTP_USER_AGENT'];
echo "Variable: " . $_GET['mivariable']; //variable de get
Hechos los cambios para que no use variables globales, me puse a instalarlo en el servidor de pruebas y funciona perfectamente
.
Le envié el proyecto modificado al autor para que lo revise y lopublique en su web si lo desea
.
Para los que lo quieren probar lo pueden descargar de aquí(siempre y cuando mi pc este encendidad
)
O desde aquí
Ahí los vidrios.
