PHP básico para dummies

noviembre 13, 2008

Muchos usuarios suponen que hacen las cosas bien, pero hay una realidad que nos invade y es que hay mucha mala influencia dando vuelta entre los programadores. Lo que quiero plantear en este post son un poco de buenas costumbres al momento de programar, y con sus ayudas ir mejorándolo en lo que dice y en nuevas ideas que habré pasado por alto. Cada aporte será agradecido con los debidos créditos en este post. Comencemos desde abajo… Lee el resto de esta entrada »


Creando un HASH de ida y vuelta con MD5 en php.

septiembre 19, 2007

Pongamos un ejemplo: tengo un clásico listado de noticias y su respectivo detalle. En el listado propago el id de la noticia para saber cual levantar en el archivo de detalle (la típica noticias.php?id=1), pero que pasa si quiero proteger la identidad de dicho id? Puedo ofuscarlo pero no sería realmente una protección segura, o lo mejor, puedo hacer de éste un HASH pero no tendría vuelta (recordemos que un HASH no tiene vuelta) y en el caso de ser un id (un simple valor int) puedo usar brutal force para saber cual es el valor nativo con un simple for.
A continuación les mostraré que se puede generar un hash seguro, y no solo eso, sino que lo podré usar para comparar con el id real, aunque lo mejor es que será de manera simple.

Lee el resto de esta entrada »


WYSIWYG BBCode Editor

agosto 30, 2007

BBcode (Bulletin Board Code) es un pequeño lenguaje usado en los foros para darle onda a los mensajes, pudiendo poner negritas, itálicas, y demás.
Como no tiene mucho que ver con html, es mas «sano» al nivel seguridad con los datos de entrada, ya que no es lo mismo aceptar este lenguaje que html, no solo esto, sino que también no dejamos en riesgo nuestro elegante diseño con tags o estilos que son realmente desastrosos.

Les contaré mi experiencia y solución al tema:

Lee el resto de esta entrada »


SOAP – Server y Cliente en PHP con Nusoap.

agosto 28, 2007

Introducción

Antes que nada no voy a entrar en detalles del protocolo sino de como implementarlo con php, pero me consta que lo correcto es al menos aclarar, aunque sea repetitivo, que significan estas siglas.
Sin meterme mucho en el tema puedo contarles que SOAP son las siglas de siglas de Simple Object Access Protocol, el cual obviamente es un protocolo que fue creado por varios grosos (MS, IBM, Etc), y su fuente de datos es el XML con un diseño que cumple el patrón Cabecera-Desarrollo y que actualmente está auspiciado por la W3C.

Es un protocolo que se usa mucho para webservices, y por lo tanto, para hacer una petición desde un cliente se necesita una respuesta desde un servidor.

Si lo que se desea es crear un cliente, el cual hace peticiones a un SOAP servidor que no es nuestro, la tarea será más simple. Ahora, si lo que se desea es tener un cliente, ya el enfoque es otro aunque nada complicado, ya lo verán.

Lo único a tener en cuenta es que debemos contar con una directiva del php.ini indispensable para su funcionamiento, ésta es la directiva always_populate_raw_post_data la cual debe estar en ON.

Otra necesidad es poder tener algo con cual poder escribir y parsear este xml, para ellos tenemos dos opciones: una es usar las funciones que nos da php al habilitar una dll, para más información de esto pueden ver la documentación de php en php.net/soap; dos, usar nusoap, una clase hecha para esta tarea, la cual permite crear cliente, servidor.

Para ser más prácticos les mostraré un simple ejemplo de un servidor y un cliente.

Lee el resto de esta entrada »


Métodos de impresión web

enero 2, 2007

Cuando necesitamos imprimir una nota, lo que se suele ver es una página nueva que abre otra vez el mismo contenido sobre otro template en un popup o en una nueva pagina para que podamos imprimirla sin imágenes, navegación y demás elementos que no solo hacen a una impresión «pesada» sino que no son de utilidad para el usuario.

Esto genera una nueva consulta a la base (en caso de tenerla), más pasos que el usuario debe llevar a cabo y un sinfín de cosas que se podrían omitir.

Veremos cómo hacer que esto funcione de la manera correcta usando dos líneas de código en CSS.

Lee el resto de esta entrada »