jueves, 18 de mayo de 2017

Clase Número 9

CLASE NÚMERO 9

Consulta:

Diferencia entre $i++  y  ++$i

Ambas operaciones incrementan en una unidad el valor de l variable $i (en este caso), la única diferencia es que $i++ incrementa después de devolver el valor de $i, mientras que ++$i incrementa antes de devolver el valor de $i

Clase Número 8

CLASE NÚMERO 8

HTML



HTML es el lenguaje con el que se define el contenido de las páginas web. Básicamente se trata 
de un conjunto de etiquetas que sirven para definir el texto y otros elementos que compondrán 
una página web, como imágenes, listas, vídeos, etc.

El HTML se creó en un principio con objetivos divulgativos de información con texto y algunas 
imágenes. No se pensó que llegara a ser utilizado para crear área de ocio y consulta con carácter
 multimedia (lo que es actualmente la web), de modo que, el HTML se creó sin dar respuesta a todos
 los posibles usos que se le iba a dar y a todos los colectivos de gente que lo utilizarían en un futuro. 
Sin embargo, pese a esta deficiente planificación, si que se han ido incorporando modificaciones con 
el tiempo, estos son los estándares del HTML. Numerosos estándares se han presentado ya. 
El HTML 4.01 es el último estándar a febrero de 2001. Actualización a mayo de 2005, en estos 
momentos está apunto de presentarse la versión 5 de HTML, de la que ya se tiene un borrador casi 
definitivo.

El HTML es un lenguaje de marcación de elementos para la creación de documentos hipertexto, 
muy fácil de aprender, lo que permite que cualquier persona, aunque no haya programado en la vida, 
pueda enfrentarse a la tarea de crear una web. HTML es fácil y pronto podremos dominar el lenguaje. 
Más adelante se conseguirán los resultados profesionales gracias a nuestras capacidades para el diseño
 y nuestra vena artista, así como a la incorporación de otros lenguajes para definir el formato con el que 
se tienen que presentar las webs, como CSS.

Una vez conocemos el concepto de HTML os vamos a adelantar algunas cosas más. Este lenguaje se escribe 
en un documento de texto, por eso necesitamos un editor de textos para escribir una página web. Así pues, 
el archivo donde está contenido el código HTML es un archivo de texto, con una peculiaridad, que tiene 
extensión .html o .htm (es indiferente cuál utilizar). De modo que cuando programemos en HTML lo haremos 
con un editor de textos, lo más sencillo posible y guardaremos nuestros trabajos con extensión .html, 

por ejemplo mipagina.html

Clase Número 7

CLASE NÚMERO 7

1. No cierre las etiquetas PHP


Una gran cantidad de desarrolladores cierran la etiqueta PHP, tal como el siguiente ejemplo:

<?php

1 class TuClase{
2
3 public function TuFuncion(){
4
5 //Algo debe de hacer, no?
6
7    }
8 }
9

?>

El problema con esto es que puede introducir caracteres de espacio o de nueva línea en blanco
si el desarrollador no tiene cuidado. Esto puede causar dolores de cabeza más adelante,
cuando las cabeceras son interrumpidas o espacios en blanco aparecen inexplicablemente
en la salida.

Ok, así que ¿qué se debe hacer?

Esto es perfectamente aceptable:

<?php

1 class TuClase{
2 public function TuFuncion(){
3 //Algo debe de hacer, no?
4 }
5 }
6
7
?>


Para ser honesto, la única vez que realmente debes cerrar las etiquetas PHP es cuando
estás mezclando PHP con HTML:

1 <h1><?php echo $title; ?></h1>
2 <p><?php echo $description; ?></p>


2. No utilice las funciones mysql_*.


A partir de PHP 5.5, las funciones mysql se han desaprobado oficialmente. Según el sitio
web oficial de PHP, la extensión por defecto de MySQL se eliminará por completo en el futuro.
Si eso no te persuade para encontrar una alternativa, entonces deberías considerar también
el hecho de que carece de soporte a una serie de características de MySQL. Lo más
destacado de las nuevas funciones son:

– Declaraciones preparadas.
– Transacciones.
– Procedimientos almacenados.
– Consultas asíncronas.
– Sentencias múltiples.

El hecho es que esta extensión casi obsoleta fue desarrollada para la versión MySQL 3.23.
Desde entonces, muy poco en realidad se ha añadido en el camino a las características.

OK, así que lo puedo usar en su lugar?

Dos buenas alternativas son PDO y MySQLi. Personalmente, prefiero usar PDO, ya que proporciona
una capa de abstracción de acceso a datos, lo que básicamente significa que puedes utilizar las
mismas funciones para acceder a otras bases de datos, así (PostgreSQL, SQLite, etc).


3. Protéjase contra XSS!


XSS (también conocido como Cross-site scripting) es una vulnerabilidad que permite a los
atacantes ejecutar código desde el lado del cliente en tu sitio web. Por ejemplo: Si entro algo de
JavaScript en un formulario de comentarios y te muestro ese comentario sin limpiarlo, el código
en cuestión se ejecutará cada vez que un usuario carga la página. Para defenderse de este tipo
de vulnerabilidad, debe desinfectar los datos enviados por el usuario antes de que se muestre en
la página. Para ello, puede utilizar la función htmlspecialchars:

<?php

1 echo htmlspecialchars($userComment, ENT_QUOTES, 'utf-8');
2 Esta función convierte los caracteres especiales en sus entidades HTML correspondientes,
por lo que son seguros para su visualización


4. No sobre comentar el código


La documentación apropiada del código en definitiva es una buena práctica, pero ¿es realmente
necesario comentar cada línea? Probablemente no. Comentar las secciones complicadas de su
código fuente para que cuando vuelva a visitarlo recordará rápidamente lo que está pasando,
pero no comentamos las cosas simples, como su código de conexión MySQL.

La manera correcta:

<?php

1 /* Conexion a la base de datos */
2
3 $hostname = "localhost";
4 $username = "";
5 $password = "";
6 $dbname = "";
7
8 $connectionStatus = mysql_connect($hostname, $username, $password) or die(mysql_error());
9
10 $selectionStatus = mysql_select_db($dbname) or die(mysql_error());
11
12 /* Fin conexion a la base de datos */
13
?>

5. Conozca el concepto DRY.


El paradigma DRY – Don’t Repeat Yourself el algo que sin duda debes de aplicar cuando comiences
a codear. Debes evitar una situación en la que estás repitiendo exactamente el mismo código.
Esto se puede hacer a través de el uso de un simple include, funciones y clases. Por ejemplo,
si tengo un pedazo de código que calcula la edad de una persona, puedo crear una función de
este modo:

<?php

1 function CalcularEdad($dateOfBirth){
2
3     $birthday = new DateTime($dateOfBirth);
4      $interval = $birthday->diff(new DateTime);
5     return $interval->y;
6 }
7
?>

Ahora, cada vez que quiero para calcular la edad de un usuario, sólo tengo que llamar a la función
anterior; en lugar de repetir la misma lógica. Esto es ventajoso porque:

– Mi código base es menor como consecuencia.
– Si tengo que modificar la lógica, puedo editar la función de CalcularEdad.


6. Contraseñas de usuario Seguras!


Las contraseñas de usuario deben hash, no se almacenan en formato de texto o base codificada
(en serio, de hecho he encontrado esto antes). Una función hash es una calle de sentido único.
Una vez que la contraseña en texto plano se ha transmitido a través de él, no hay manera de
recuperarlo (de ahí la razón por la que utilizamos el término “hash”, no “cifrado”).
Si está usando PHP> = 5.5, debe utilizar el password_hash función. Si está atrapado en una
versión anterior, entonces usted puede hacer uso de la librería password_compat en Github.


7. Utiliza sentencias preparadas!


Una de las principales ventajas de usar PDO es que permite que puedas hacer uso de
sentencias preparadas. En el pasado, los desarrolladores de PHP se vieron obligados a
usar unciones como mysql_real_escape_string así:

<?php

1 $username = mysql_real_escape_string($username, $connection);
2 $result = mysql_query("SELECT name FROM users WHERE username = '$username'");
3

?>

Esta función escapa caracteres especiales que puedan causar problemas con tu sentencia SQL.
Es decir, ayuda a proteger contra la inyección SQL. Sin embargo, lo que no hará es a protegerse
de los ataques que no implican caracteres especiales como x00, n, r, , ‘, ” y x1a.

Afortunadamente, la inyección de SQL no es rival para comandos preparados. Con declaraciones
preparadas, la sentencia SQL se envía al servidor antes de que los datos, manteniendolos independientes
entre sí. Esto significa que la base de datos sabe lo que necesita para ejecutar correctamente,
antes de que cualquier carácter potencialmente peligrosos se envían a través de la comunicación.
Un ejemplo de la selección de filas con el objeto PDO:

<?php

1 //Preparamos la sentencia SQL. En esta etapa se va enviado al servidor
2 $stmt = $db->prepare("SELECT name FROM users WHERE username = :username");
3
4 //Enlazamos nuestros parámetros / datos.
5 $stmt->bindParam(':username', $username);
6
7 //Ejecutamos la sentencia.
8 $stmt->execute();
9

?>

Nota importante: Con la extensión PDO, tendrás que activar manualmente el uso de declaraciones
“naturales” preparadas. A los efectos de la portabilidad, esta extensión utiliza el emulado de
las declaraciones preparadas por defecto. Para desactivar comandos preparados emulados,
puede utilizar el siguiente código:

<?php

1 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
2

?>


8. “or die ()” tiene que morir …


Si has decidido ignorar por completo todas las ventajas del por que usar PDO, entonces creo
que es justo decir que es probable que estés manejando consultas poco practicas,
como por ejemplo:

<?php

1mysql_query($sql, $conn) or die(mysql_error($conn));
2

?>

El problema con el enfoque anterior es que no se puede detectar el error o registrarlo.
Tampoco se puede controlar si es o no se da salida a la pantalla. A los ojos de la función
de la matriz, un servidor de desarrollo y un servidor de producción, son exactamente la
misma cosa! No se puede controlar a través de los ajustes del .ini o un archivo de configuración
de todo el sitio.

Un mejor enfoque a este sería el uso de excepciones, simplemente porque pueden ser
capturados o manipulados:

<?php

1 $res = mysql_query($sql, $conn);
2 if($res === false){
3    throw new Exception(mysql_error($conn));
4 }
5

?>

La excepción anterior puede ser capturada con un bloque TRY CATCH o manejada con un
manejador de excepción personalizada. Esto te da mucho más control sobre cómo los
errores se manejan. Por supuesto, si se utiliza la extensión PDO, podrías tener los errores SQL
lanzando excepciones por defecto utilizando el siguiente atributo:

<?php

1 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
2


?>

Clase Número 6

CLASE NÚMERO 6

If: Significa (SI) en español. Sirve para evaluar una condición, si está es verdadera se ejecutará.

Else: Significa (SI NO) en español. Sirve para que, si la función no se cumple, está ejecute otro caso.

Else If: Es una combinación de if y else. Del mismo modo que else (SI NO) extiende una sentencia if (SI) para ejecutar una opción distinta si la posición If original se encuentra como FALSE (Falsa).

Clase Número 5

CLASE NÚMERO 5


hicimos el inicio de un servidor desde cada uno de los computadores por medio de Xampp a la hora de iniciar apache, el cual cada uno de los computadores tiene su propio servidor y pueden entrar a ver el contenido de un computador por medio del IP de este, siendo así a nivel LAN (Local Area Network).
 Aprendimos la introducción del lenguaje PHP y algunas cosas básicas más.

Clase Número 4

CLASE NÚMERO 4


Glosario de PHP:




<?php: Indica el inicio del pseudocódigo.

?>: Indica el final del pseudocódigo.


Echo: Es la función que se utiliza para escribir.

(; o :): Es el cierre de cada linea del pseudocódigo.


<pre>: Sirve para imprimir en pantalla tal cual y como escribo(obviamente con la ayuda de (Echo)).

</pre>: Sirve para cerrar la función <pre>.

<br>: Se utiliza para hacer un salto de renglón.

Array: Se utiliza para guardar valores del mismo tipo pero de manera ordenada.

miércoles, 26 de abril de 2017

Clase Número 3

CLASE NÚMERO 3

¿QUÉ ES SOFTWARE LIBRE?


Software Libre se refiere a libertad, no a precio. Se ha utilizado en este sentido desde la década de 1980.
El software libre es un tipo de programas de ordenador que respeta nuestra libertad. Utilizar software libre es una decisión política y ética que nos permite ejercer nuestro derecho a aprender y a compartir lo que aprendemos con otras personas.

Es habitual que el software que compramos nos niegue dichos derechos. Eso es porque realmente no estamos adquiriendo la propiedad del software que compramos, sino una licencia sobre el uso del software. Y dichas licencias nos atan mediante numerosas y sutiles reglas acerca de lo que podemos y no podemos hacer con el programa.




¿QUÉ ES CÓDIGO ABIERTO?

El código abierto es un concepto que ha cambiado el mundo. Se refiere a algo que puede ser modificado y compartido porque su diseño es accesible para todo el público.
También, Código abierto es un software que pone a disposición de cualquier usuario su código fuente. A pesar de que este tipo de software es de buena calidad, el principal atractivo es que es gratis. Más allá de esto, hay ciertas pautas que debe cumplir el código abierto: 

-Redistribución Libre:  La licencia del código abierto no debe de ninguna forma cobrar royalties o cualquier otro tipo de costo. 

-Código Fuente: El software debe agregar el código fuente y permitir la distribución en la forma de código fuente y compilada. 


La licencia no debe discriminar cualquier tipo de persona o toma de iniciativas específicas. 







¿QUIÉN FUÉ RICHARD STALLMAN?

Richard Stallman es el fundador de la Free Software Foundation FSF (Fundación para el Software Libre).

Creador del movimiento más revolucionario de la historia de la informática, tal vez, hasta, el mayor desde la Revolución Industrial. El hombre que creó el software libre y es doctor honorario en dos facultades europeas. 




¿QUÉ ES CLIENTE?

Un cliente es tanto para los negocios y el marketing como para la informática un individuo, sujeto o entidad que accede a recursos, productos o servicios brindados por otra.

Para los negocios, el cliente es aquel individuo que, mediando una transacción financiera o un trueque, adquiere un producto y/o servicio de cualquier tipo (tecnológico, gastronómico, decorativo, mueble o inmueble, etcétera). Un cliente es sinónimo de comprador o de consumidor y se los clasifica en activos e inactivos, de compra frecuente u ocasional, de alto o bajo volumen de compra, satisfecho o insatisfecho, y según si son potenciales.






¿QUÉ ES SERVIDOR?

es un ordenador o máquina informática que está al “servicio” de otras máquinas, ordenadores o personas llamadas clientes y que le suministran a estos, todo tipo de información. A modo de ejemplo, imaginemos que estamos en nuestra casa, y tenemos una despensa.

Es una máquina servidora que se comunica con variados clientes, todos demandando algún tipo de información. Esta información puede ser desde archivos de texto, vídeo, audio, imágenes, emails, aplicaciones, programas, consultas a base de datos, etc.




¿QUÉ ES CLIENTE-SERVIDOR?


El Cliente-Servidor es un sistema distribuido entre múltiples Procesadores donde hay clientes que solicitan servicios y servidores que los proporcionan. La Tecnología Cliente-Servidor, es un modelo que implica productos y servicios enmarcados en el uso de la Tecnología de punta, y que permite la distribución de la información en forma ágil y eficaz a las diversas áreas de una organización (empresa o institución pública o privada), así como también fuera de ella.