domingo, 26 de junio de 2016

Formularios con PHP + Html. Introducción al lenguaje.


Como lo prometido es deuda veremos como hacer un formulario en PHP; pero antes me parece adecuado hacer una breve introducción a este lenguaje. No voy a extenderme mucho pues tenéis muchas webs mejores que esta y mucha documentación que podéis usar si queréis conocerlo en profundidad; voy a hacer una introducción centrándome en el caso que nos ocupa que es hacer un formulario.

PHP es un lenguaje de programación relativamente simple y poderoso. Gracias a él podemos hacer que nuestros sitios web tengan capacidades dinámicas y funciones avanzadas, con este lenguaje se pueden hacer entre otras cosas:

  • Gestionar datos introducidos por el usuario: como por ejemplo los datos de un formulario, nombre correo y texto. Se pueden hacer muchas operaciones con estos datos como concatenación, diferencias, comprobaciones etc..
  • También nos permite crear nuestras propias funciones a partir de los recursos que nos ofrece el PHP, con estas funciones podemos trabajar sobre los datos que vamos obteniendo de la interacción del usuario con nuestra web.
  • Gestionar cookies, necesarios si vamos a crear un web con sesiones del usuario.
  • Gestión de bases de datos, permitiendo crear, consultar o actualizar contenidos de las mismas.

Ya os digo que solo son algunas de las funciones que tiene y que, combinadas con el Html nos da capacidad para hacer páginas webs mas completas y útiles.

PHP es un lenguaje "de lado del servidor", lo que significa que el código se ejecuta en el servidor y no en el PC del usuario, como lo hace el Html. El servidor, después de interpretar el código PHP, envía al navegador del visitante el resultado en forma de Html. Eso significa que el navegador del visitante no "ve" ni interpreta el código fuente en PHP sino solamente el resultado en Html. Podemos crear un script en PHP y añadirlo a las carpetas del servidor o podemos incrustarlo en el código Html lo que lo hace aun mas versátil.


El programa más básico que podemos hacer en PHP es el famoso "Hola mundo":


<html>

<head>

<title>Hola mundo en PHP</title>

</head>

<body>

<?php

$texto = "Hola mundo";

echo $texto;

?>

</body>

</html>


 

Vemos que dentro de un documento HTML clásico, tenemos embebido el código PHP. El código PHP siempre está delimitado por las etiquetas <?php y ?>. Este progra tiene dos líneas, la primera que dice que $texto contiene "Hola mundo", y la segunda que usa el comando echo, que imprime el contenido de $texto.
En PHP las variables inician con el signo dolar ($), y cada instrucción debe finalizar con un punto y coma (;).

Variables.

En programación una variable es un elemento que adquiere un determinado valor. Ese valor pueden ser números, caracteres (texto) y otros datos. En PHP todas las variables empiezan con el símbolo dolar ($). El lenguaje PHP trata las variables en forma muy simple, no es necesario definirlas antes de usarlas y pueden contener texto y números indistintamente. Por ejemplo:

<?php

$miVariableA = “Mi perro tiene “;

$miVariableB = 3;

$miVariableC = “ patas”;

echo $miVariableA.$miVariableB.$miVariableC; // Devuelve Mi perro tiene 3 patas.

?>


Como vemos, asignamos valor a una variable con el operador de igualdad (=), y concatenamos (juntamos cadenas para forma otra) con el operador punto (.) . También vemos que para asignar un valor de texto a una variable usamos las comillas simples o dobles (' o “) y para asignarle un número simplemente ponemos el valor que sea (este valor también podría ser otra variable e incluso una función). Y no, no tengo perro, algo tenía que poner.

Operadores.

Los operados son utilizados para determinar un valor o, más concretamente en el ámbito de una operación para lograr un resultado final al actuar sobre uno o mas operandos.

Operadores aritméticos.

Son los operadores básicos, nos permiten sumar, restar, multiplicar y dividir. Se trata de operadores binarios en todos los casos ya que requieren dos operandos.

Operadores de asignación.

Los operadores de asignación alteran el valor de una variable, el operador de asignación básico es el (=).

Operadores de comparación.

Los operadores de comparación son operadores en su mayoría binarios que permiten comparar variables devolviendo un valor booleano 1 (TRUE) si se cumple la condición que expresan o 0 (FALSE) en el caso contrario. En esta categoría encontramos el operador de concatenación (.), que une cadenas:

<?php

$texto = 'Hola ' . 'mundo';

echo $texto; // devuelve Hola mundo

?>


Los operadores lógicos nos permiten crear expresiones complejas para evaluar estructuras de control, permitiendo enlazar varias operaciones de comparación con los diferentes operadores booleanos.

Estos operadores son mayoritariamente binarios, por lo que reciben 2 operandos, dependiendo de estos operandos (de valor 0 o 1) devolverá 0 (FALSE) o 1 (TRUE), los operadores lógicos binarios son:

&& - and     $x && $y es TRUE si ambos $x y $y son TRUE (también se puede usar “and”)

|| - or           $x || $y es TRUE si alguno, $x o $y son TRUE (también se puede usar “or”) .

xor - xor       $x xor $y es TRUE si alguno, $x o $y son TRUE, pero NO si lo son ambos (FALSE).
Existe otro operador lógico, en este caso unario, que es el operador No (!) o negación, este operador delante de un valor binario, devuelve el valor contrario (0 si es 1 y 1 si es 0).

Los scripts PHP no son lineales y podemos controlar la ejecución de una acción o de un determinado bloque de acciones. PHP dispone de lo que se llama estructuras de control, que nos permiten ejecutar o no, una o mas veces un determinado bloque de acciones.

Condicional if - else.

La estructura if nos permite ejecutar un bloque de instrucciones si se cumple una determinada condición, de lo contrario nos permite ejecutar otro bloque de acciones identificado por la sentencia else, si el resultado de la condición es distinto de 0, se ejecutarán las acciones del if, de lo contrario las del else .

La estructura sería:

if (condición) {si es TRUE haremos esto}

else {si es FALSE haremos esto otro}

Dentro de las llaves podemos poner bloques de codigo PHP incluso con Html pero ya lo veremos mas adelante. Esta estructura va a ser clave en nuestro formulario, atentos pues.

Mail()

La función mail() nos permite enviar correos electrónicos desde una página PHP. Devuelve el valor booleano true si ha podido mandar un mensaje con éxito o false en caso contrario, utiliza cuatro argumentos siendo uno de ellos opcional.

Veamos como son los diferente parámetros que componen esta función:

mail (dirección de destino, asunto, mensaje, cabeceras_adicionales);

También se puede establecer toda la información necesaria en variables:

<?php

$emailDestino = “pepe@servidor.com”;

$asunto = “Fiesta en casa”;

$mensaje = “Pepe, trae pan”

mail ($emailDestino, $asunto, $mensaje);

?>



sábado, 25 de junio de 2016

Personajes ilustres. Dennis Ritchie (9.9.1941 - 12.10.2011)

No es exagerado decir que de no ser por Ritchie, el mundo de la computación como lo conocemos hoy, no existiría. La humanidad tiende a glorificar a unos y a olvidar a otros, y en el caso de alguien tan valioso como Dennis Ritchie, lamentablemente ha sido esto último. Salvo por el gran puñado de nerds que estudian algo sobre la historia de la informática, la mayoría de la gente no tiene ni idea de quien fue este hombre.

Ritchie es conocido sobre todo por ser el creador del lenguaje de programación C y cocreador, junto con Ken Thompson, del sistema operativo Unix. También fue coautor junto con Brian Kernighan del manual El lenguaje de programación C, que durante años fue el estándar de facto del lenguaje (conocido como K&R C), hasta la aparición del ANSI C.
Estos aportes convirtieron a Ritchie en un importante pionero de la informática moderna. El lenguaje C se usa ampliamente hoy día en el desarrollo de aplicaciones y sistemas operativos, y sin Unix no habría Gnu y tampoco Linux, y sin estos probablemente no habría Android, así que no es poca la labor de Dennis MacAlistair Ritchie fallecido el 12 de Octubre de 2011 pasando un poco desapercibido, yo tengo que reconocer que me enteré de su existencia cuando leí la noticia en la sección de tecnología del diario El Pais o en páginas web especializadas en tecnología.
Ken Thompson y Dennis Ritchie, creadores de Unix
En aquella época usaba windows aunque ya conocía el GNU/Linux por conocidos que lo usaban (de hecho empecé a usarlo un año después) y tampoco no le dí demasiada importancia a la noticia comparada con otras mas mediáticas en esas fechas pero hoy en día con mi teléfono Android en el bolsillo y después de estar usando el Linux durante unos años me doy cuenta del valor del trabajo del Sr Ritchie y por eso le dedico este post para que no se nos olvide que a veces los que hacen poco ruido son los que mas aportan.

Os dejo un vídeo donde salen Dennis Ritchie y Ken Thompson explicando UNIX.





martes, 14 de junio de 2016

Formularios simpáticos con HTML

Lo primero que deciros que me ha dado tiempo a terminar el curso de introducción al desarrollo de apps para móvil ¡Bien!! la verdad es que se me hizo mas difícil que el de desarrollo web, pues de este tema ya llevaba muchos meses estudiando por mi cuenta pero después de terminarlo tengo ganas de hacer algo con html5 y algo para Android aunque solo sea por probar ¿Y a vosotros? 

En el capítulo anterior dejé el HTML un poco por los suelos y tampoco se lo merece el pobre :) así que en este post voy a proponer algunas formas de hacer formularios  solo con Html y con un toque personal. Releyendo documentación he encontrado que se puede sustituir el formulario por un enlace e incluso con una imagen lo que nos aun nos permite sacarle algo de partido al código, aun con las limitaciones que vimos en el post anterior.

Primero vamos a ver un "formulario" entre comillas porque no se si se podría llamar así, siendo únicamente un enlace. Como vimos en el post anterior, da igual que pongamos un campo de texto, puesto que si se va abrir el gestor de correos, allí el usuario podrá escribir lo que quiera, además con la comodidad de que usará el programa al que está acostumbrado y que le resultará seguro mas cómodo (por ejemplo a la hora de darle formato al texto)

<a href="mailto:direccion@destinatario.com"><h3>Enviar mail</h3>
</a>

Con esta línea obtenéis un enlace que abrirá el gestor de correo.  Podéis probarlo en este enlace: http://probandohtml.informaticafacil.xyz/contacto3.html

Bueno, no es muy impresionante pero con las cualidades del CSS podemos dejarlo elegante y demostrar que somos humildes pero con recursos. Además hay otros truquillos para facilitar un poco la tarea al usuario. Podemos poner por ejemplo un asunto predefinido con lo que solo le quedaría escribir el mensaje. ¿Como? el protocolo mailto nos permite pasar datos por GET (en vez de POST que usamos anteriormente) de esta manera:

<a href="mailto:direccion@destinatario.com?subjet=Contacto%20desde%20la%20web"><h3>Enviar mail</h3>
</a>

Como veréis en vuestro gestor de correo (recordamos, si esta configurado) ya no tenemos nuestra dirección de mail, la dirección de destino y el asunto, solo os queda escribir el cuerpo del mensaje. Hemos hecho esto añadiendo "?subject" y a continuación la frase que queremos en el asunto separando las palabras con %20, observad cuando ponemos el puntero del ratón encima del enlace, que este nos aparece en la parte de abajo del navegador. Lo que hace el GET es enviar la frase a través de la URL por decirlo de alguna manera; por eso se separan las palabras con %20 ¿habéis visto alguna URL con espacios?

Podéis comprobar el resultado en el enlace.

Ahora vamos a ver otra manera un poco mas sofisticada aunque mas o menos es lo mismo. Si habéis ido estudiando el lenguaje HTML ya sabréis que se pueden usar imágenes como enlaces, pero también podemos usar una imagen para un formulario, pero además como en el caso de mi página que va a ser en teoría para una biblioteca virtual, sería interesante que los usuarios pudieran enviar archivos en caso de que en vez de descargar quisieran compartir (que bonito compartir) así que veamos como lo haríamos:

 <form action="mailto:direccion-decorreo" method="POST" enctype="multipart/form-data">
     <label>Para añadir un libro-->></label>
     <input type="file" name="adjunto" />
     <label>Para enviarme un correo haz clic en la imagen</label>      
     <input type="image" name="imagen" src="images/buzón.png" />
          
</form>


Vayamos por partes:

 <form action="mailto:direccion-decorreo" method="POST" enctype="multipart/form-data">

<input type="file" name="adjunto" />

Aquí declaramos el formulario, para poder añadir archivos adjuntos el atributo enctype debe ser multipart/form-data pero lo que no podremos añadir aquí es el asunto como antes, pues el method debe ser post para poder adjuntar archivos. Luego en el input type ponemos file (archivo) ahora tendremos la típica pestaña "examinar" que todos hemos usado mil veces


<input type="image" name="imagen" src="images/buzón.png" />


Y aquí declaramos un botón que será una imagen de la que especificamos la ruta mas a la derecha. Como veis el HTML es fácil y divertido, vamos a ver como ha quedado:
http://probandohtml.informaticafacil.xyz/contacto2.html

Como veis le hemos dado otro aire al formulario aunque siga teniendo las limitaciones que vimos en el post anterior. Se me ocurre que se podría utilizar  para haceros una web con nuestro curriculum como un ejercicio que hicimos durante el curso y al final añadirle un enlace o un imagen con formulario que permita al que visitante contactar con vosotr@s. También se podría editar el estilo cambiando los tipos de letra y tamaño, el fondo tal vez, decorando el cuadro del buzón, no se muchas cosas de las que veremos algunas en un siguiente post (Primero tengo que hacerlo yo que estoy aprendiendo igual que vosotros).

Queda pendiente hacer un formulario con PHP que sería lo mejor y mas profesional, y ahora que tengo mas tiempo libre pues he terminado mis tareas pendientes espero actualizar el blog mas a menudo y seguir aprendiendo con ustedes. Saludos y hasta pronto.