This course will become read-only in the near future. Tell us at community.p2pu.org if that is a problem.

Semana 2. Lo básico de programación en PHP


1. Lecturas  

1.1 Instrucciones

PHP es un lenguaje de programación de tipo imperativo, es decir recibe una serie de instrucciones de lo que debe hacer y las va ejecutando una a una en orden. Todos los lenguajes imperativos tienen por lo menos las siguientes clases de instrucciones:

  • Asignación: para dar un valor a una variables (una variable es una área de memoria a la que se puede asignar un valor). Cada valor tiene un tipo en PHP, los tipos simples son booleano (verdadero o falso), entero, flotante y cadena.
  • Expresiones: que permiten realizar operaciones que se evaluan en un valor, por ejemplo operaciones aritméticas, operaciones booleanas y concatenación de cadenas.
  • Condicionales: que permite realizar una acción sólo en caso de que cierta condición se cumpla.
  • Ciclos: para repetir una serie de instrucciones cierto número de veces.
  • Funciones: que permiten agrupar bajo un nombre y con unos parámetros una seríe de instrucciones para ejecutarlas desde diversas partes del programa con diferente valor para los parámetros.

PHP incluye una interfaz desde la línea de comandos (llamada php) que le permite ejecutar programas que recibe por entrada estándar, sin requerir un servidor web.  Puede probar los siguientes ejemplos con esa interfaz o copiando y pegando en http://codepad.org/.

El siguiente ejemplo muestra como asignar el valor de tipo entero 5 a la variable $v --en PHP todas las variables comienzan con el signo $. Y después como se puede presentar en pantalla una cadena y el valor de una varible.

<?php
$v = 5;
echo "El valor es: $v\n";
?>

El resultado sería:

El valor es: 5

El ejemplo anterior lo podemos ampliar con una nueva asignación pero con una expresión más interesante:

<?php
$v = 5;
echo "El valor es: $v\n";
$v = $v * 2 + 2;
echo "El nuevo valor es: $v\n";
?>

que presentará:

El valor es: 5
El nuevo valor es: 12

Agregando un condicional:

<?php
$v = 5;
echo "El valor es: $v\n";
$v = $v * 2 + 2;
echo "El nuevo valor es: $v\n";
if ($v > 10) {
    echo "Que es mayor que diez\n";
} else {
    echo "Que es menor o igual diez\n";
}
?>

Para experimentar además de ver el resultado del ejemplo, repitalo cambiando la asignación inicial por $v = 2; Con un cíclo que se repite la cantidad de veces que $v indique, quedaría:

<?php
$v = 5;
echo "El valor es: $v\n";
$v = $v * 2 + 2;
$i = 1;
while ($i <= $v) {
    echo "Ahora el valor de \$i es: $i\n";
    if ($i > 10) {
        echo "Que es mayor que diez\n";
    } else {
        echo "Que es menor o igual a diez\n";
    }
    $i = $i + 1;
}
?>

Finalmente para ejemplificar la definición y llamado de una función:

<?php
function muestra($v) {
    echo " La función muestra recibió el valor: $v\n";
    $v = $v * 2 + 2;
    $i = 1;
    while ($i <= $v) {
        echo "  Ahora el valor de \$i es: $i\n";
        if ($i > 10) {
            echo "  Que es mayor que diez\n";
        } else {
            echo "  Que es menor o igual a diez\n";
        }
        $i = $i + 1;
    }
    return $i;
}

echo "Llamando función muestra con argumento 5 para el parámetro \$v\n";
$r = muestra(5);
echo "El valor retornado fue: $r\n";
echo "Ahora llamandola con argumento 2 para el parámetro \$v\n";
$r = muestra(2);
echo "Ahora el valor retornado fue: $r\n";

?>

Lea hasta la sección 1.4 de ayudadesprog (http://structio.sourceforge.net/guias/ayudadesprog/ayudadesprog.html) en las partes referentes a PHP.

 

1.2 Interacción PHP y HTML

Para producir páginas HTML dinámicas con PHP es necesario que tenga bien instalados y configurados PHP y Apache. En tales casos puede dejar sus programas HTML+PHP en archivos con extensión .php, ubicados en un directorio utilizable por el servidor web. Por ejemplo en adJ puede crear un directorio /var/www/htdocs/ejemplos y allí crear un primer archivo PHP /var/www/htdocs/ejemplos/primer.php cuyo contenido sea:

<html>
 <head>
  <title>Volvinedo a comenza en HTML</title>
 </head>
 <body>
<?php
$v = 5;
echo "El valor es: <em>$v</em><br>";
$v = $v * 2 + 2;
echo "El <b>nuevo</b> valor es: <em>$v</em>\n";
?>
  </body>
</html>

podrá ver el resultado consultado con un navegador la dirección http://127.0.0.1/ejemplos/primer.php Alternativamente puede copiar y pegar este ejemplo y otros sencillos de HTML con PHP en http://codepad.viper-7.com Lea también "Un tutorial sencillo" de PHP en http://co.php.net/manual/es/tutorial.php

 

1.3 Interacción con PostgreSQL

Para conectarse a la base de datos que creo en la semana anterior y examinar los datos, puede emplear:

<html>
<head>
<title>Ejemplo PostgreSQL</title>
</head>
<body>
<?php

echo "Conexión ";
$con = pg_connect("host=localhost port=5432 dbname=contactos user=contactos pass
word=miclave");
if (!$con) {
    die("No pudo abrir base de datos");
}
echo "<em>establecida</em><br>";

echo "Datos: <br>";

$res =pg_query($con, "SELECT nombres, apellidos, sexo FROM persona");
if (!$res) {
    die("Error al realizar consulta");
}

while ($reg = pg_fetch_row($res)) {
    echo "Nombres: <em>{$reg[0]}</em>, Apellidos: <em>{$reg[1]}</em>, Sexo: <em>
{$reg[2]}</em>";
    echo "<br />\n";
}

pg_close($con);
?>
</body>
</html>

Uselo y después modifiquelo para que presente los datos en una tabla y lo más

Finalmente lea en la documentación oficial de PHP las funciones para realizar conexiones a bases de datos PostgreSQL: http://co.php.net/manual/es/ref.pgsql.php

 

2. Ejercicios

Para programar es indispensable practicar mucho.

  1. Realice el ejercicio 1 de la sección 1.1.7 de ayudadesprog.
  2. Realica el ejercicio 1 de la sección 1.2.4 y los ejercicios 1, 2 y 3 de la sección 1.2.5 de ayudadesprog (en PHP)
  3. Ejercicios 1 y 2 de la sección 1.3.5 de ayudadesprog
  4. Ejercicios 1 y 2 de la sección 1.4.7 y ejercicio 1 de la sección 1.4.8
  5. Pruebe el código para conectarse a la base de la sección 1.3 y después modifiquelo para que presente los datos en una tabla de forma estética usando HTML y CSS.
  6. Opcional: Lea sobre ataques XSS, explique que significa, indique como podría ocurrir uno en el ejemplo que hemos trabajo y como podría evitarse.

Publique dudas y ayudas como comentario a esta tarea.

 

3. Bibliografía

  1. Vladimir Támara Patiño. Ayuda para Desarrollo de Programas. 2006. http://structio.sourceforge.net/guias/ayudadesprog/ayudadesprog.html.
  2. PHP. Un tutorial sencillo. http://co.php.net/manual/es/tutorial.php
  3. PHP Manual http://co.php.net/manual/es/ref.pgsql.php

 

4. Términos y Condiciones Especiales

Este escrito se cede al dominio público de acuerdo a la legislación colombiana, agradeciendo se de crédito a Pasos de Jesús. 2011.  Ver https://www.pasosdejesus.org/dominio_publico_colombia.html.

Task Discussion