PHP y MySQL. Aplicaciones Web: programación PHP I (quinta parte)

Anuncio
mailxmail - Cursos para compartir lo que sabes
PHP y MySQL. Aplicaciones Web:
programación PHP I (quinta
parte)
Autor: Johnny Zulca Mamani
1
mailxmail - Cursos para compartir lo que sabes
Presentación del curso
Programación de aplicaciones Web con PHP y MySQL. Ahora estudiaremos el
Lenguaje de programación PHP. Aprende ahora las formas de escribir las etiquetas
PHP. Estudiaremos los formularios Web y PHP, las variables, los tipos de datos de
variables y el manejo de archivos.
2
mailxmail - Cursos para compartir lo que sabes
1. Librería Online. PHP y HTML, etiquetas PHP
Lenguaje de programación PHP
La Aplicación "Librería Online"
Tenemos claro el funcionamiento de una página Web dinámica. La información se
encuentra almacenada de manera ordenada en una base de datos conocida como
MySQL. Sabemos que esta base de datos es la manera ideal de ordenar información,
y en ella esta todo el contenido de nuestra página Web. Conoceremos las sentencias
básicas de PHP, potente lenguaje del lado del servidor especialmente diseñado para
la creación de páginas Web y que puede incluirse fácilmente dentro del código HTML.
Por el lado del cliente tenemos un usuario que, vía Internet visita nuestra página
Web. Para ello utiliza un navegador preparado para recibir páginas Web en HTML. El
problema es en como hacer que se entiendan ambos. Sabemos que nuestra base de
datos utiliza un lenguaje llamado SQL, que no tiene nada que ver con la página
HTML estándar que nuestro explorador necesita para mostrar al usuario. Para
intermediar entre ambos es para lo que esta PHP, diseñado para este propósito y
que puede incluirse con suma sencillez dentro de código HTML.
PHP y HTML, etiquetas PHP
Para insertar un script PHP dentro de cualquier documento HTML, solo es necesario
ingresar las etiquetas de PHP, todo lo que vaya entre estas etiquetas es código en
PHP, y será interpretado por el servidor Web, devolviendo los resultados que
deseamos, las instrucciones se separan con ";"
<?
etiquetas PHP que código será interpretado como código PHP y lo que esta fuera
será interpretado como código HTML
?>
Hay varias formas o modos de escribir las etiquetas de PHP:
1 . <? etiquetas cortas ?> el utilizado requiere, configurar en el archivo "config de
php"
2. <?php etiquetas estilo XML?>
3. <script language='php'>etiquetas estilo script</script>
4. <% etiquetas estilo ASP %>
Práctica 1: miprimerscript.php - Mi primer script
<html>
<head>
<title>Ejemplo de PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php echo 'Mi primer script PHP'; ?>
</body>
3
mailxmail - Cursos para compartir lo que sabes
</html>
4
mailxmail - Cursos para compartir lo que sabes
2. Declaraciones y formularios web en PHP
Declaraciones en PHP
echo: imprime la cadena "string" en el navegador ( ; ) para separar declaraciones o
bien llamado instrucciones en HTML los espacios fuera de las etiquetas no se toman
en cuenta comentarios:
- "/*" comentario multilínea "*/"
- // comentario de una sola línea
Formularios Web y PHP
<form name="frmbusqueda" action="procesar.php" method="post">
cajas de texto, botones, listas, opciones
</form>
Vamos acceder a cada uno de los datos del formulario en el script de php por medio
de una variable de cada objeto texto. Para reconocer las variables en PHP,
anteponiéndole el signo de "$" seguido del nombre de la variable.
$variable -> es una variable (estilo corto)
Cuando accedemos a los datos de los campos de texto por medio de variables lo
podemos hacer de dos modos:
- (corto) utilizamos para la variable el mismo nombre de los campos de texto del
formulario HTML, no necesitamos declarar las variables en el código por que son
pasadas dentro del post-código (pasar las variable dentro de procedimientos)
- (largo) mediante la recuperación de valores almacenados en Arrays y existen dos
tipos dependiendo del método que hayamos usado para enviar el formulario si es el
método POST o GET POST, iniciar una nueva secuencia GET, añadir dentro de una
página ya existente los nuevos datos.
5
mailxmail - Cursos para compartir lo que sabes
3. Variables del modo largo
Las variables del modo largo describen lo siguiente:
$HTTP_POST_VARS[""], $HTTP_GET_VARS[""]
$_POST, $_GET
PHP es sensitiva a minúsculas y mayúsculas, se ejecuta mas rápido este modo de
variables.
Práctica 2: Formulario de envio de datos, procesar.php - Procesar orden
formulariocontacto.html
<form name="frmContacto" action="procesar.php" method="post">
<table>
< t r > < t d c o l s p a n =" 2 " ><h 2 >In g rese sus datos</h2> </td> </tr >
<tr><td>Nombres:</td>
<td><input type="text" name="nombres" size="20"/></td></tr>
<tr><td>Apellidos:</td>
<td><input type="text" name="apellidos" size="20"/></td></tr>
<tr><td>Comentario:</td><td></td></tr>
<tr><td colspan="2"><textarea name="comentario" rows="4"
cols="30"></textarea></td></tr>
<tr><td colspan="2"><input type="reset"
value="limpiar"/>  <input type="submit" value="¡enviar
ya!"/></td></tr>
</table>
</form>
procesar.php
<h4>Datos procesados con exito</h4>
<?
echo "<b>Su nombre es: </b>".$_POST["nombres"]."<br>";
echo "<b>Sus apellidos: </b>".$_POST["apellidos"]."<br>";
echo "<b>Su comentario es: </b>".$_POST["comentario"]."<br>";
?>
6
mailxmail - Cursos para compartir lo que sabes
4. Variables y tipos de datos de variables
Variables
Una variable es un símbolo para recuperar otros datos que pueden estar en un
campo de texto u otros datos el nombre de cada variable se llama identificadores
(letras, números, _), no pueden empezar con un dígito, son case sensitive se declara
una variable también cuando se inicializa la misma.
$mivariable1;
$mivariable2 = "texto de la variable 2"
Existen 2 tipos de variables, las variable locales que solo pueden ser usadas dentro
de funciones y las variables globales que tienen su ámbito de uso fuera de las
funciones, podemos acceder a una variable global desde una función con las
instrucción global nombre_variable;.
Tipos de dato de variables
De acuerdo a que datos se asignada a una variable se adapta a los tipos de datos
siguientes: (integer, double, string, arrays, objetos "almacenar instancias de clases")
- Tipo de dato boleano
$activo = True; / $activo = False; expresa un valor de verdad
- Tipo de dato Enteros
$a = 1200; / $a = -125; numero decimales, numero negativos
- Enteros punto Flotante
$a = 1.254; o también llamados (double)
- Cadenas
$mensaje = "Esto es una prueba"; se especifican usando uno de dos tipos de
delimitadores ( " ) , ( ` )
Algunos atributos más
- typecase se utiliza para forzar a un tipo de dato una variable (tipo)
- Los literales son datos por si mismo
7
mailxmail - Cursos para compartir lo que sabes
5. Variables predefinidas
Variables Predefinidas
PHP proporciona una gran cantidad de variables predefinidas a cualquier script que
se ejecute. De todas formas, muchas de esas variables no pueden estar
completamente documentadas ya que dependen de sobre que servidor se este
ejecutando, la versión y configuración de dicho servidor: estas pueden ser:
Superglobales:
8
mailxmail - Cursos para compartir lo que sabes
9
mailxmail - Cursos para compartir lo que sabes
6. Variables php yStrings. Constantes
variables.php - algunas variables predefinidas
<?
echo "página actual <b>".$_SERVER["PHP_SELF"]."</b><br>";
echo "nombre del servidor <b>".$_SERVER["SERVER_NAME"]."</b><br>";
echo "documento raíz <b>".$_SERVER["DOCUMENT_ROOT"]."</b><br>";
echo "documento que me llamo
<b>".$_SERVER["HTTP_REFERER"]."</b><br>";
echo "dirección IP que me esta viendo
<b>".$_SERVER["REMOTE_ADDR"]."</b><br>";
echo "host <b>".$_SERVER["REMOTE_HOST"]."</b><br>";
echo "cabecera actual <b>".$_SERVER["HTTP_USER_AGENT"]."</b>";
?>
Strings (cadena de caracteres)
Un string es una cadena de caracteres ya sea solo letras, números o en conjunto. En
los strings se pueden hacer concatenaciones con el uso del operador "." (punto). Las
cadenas de caracteres se pueden especificar usando uno de los dos tipos de
delimitadores ( " ) y ( ` ).
$a = "Hola";
$b = $a . "Mundo"; //$b contiene "Hola Mundo"
Constantes
Las constantes es un identificador que se utilizan para almacenar un valor simple y
ese valor ya no se puede cambiar, solo se pueden definir como constantes valores
escalares (bolean, integer, float, string). Para obtener el valor de una constante solo
es necesario especificar su nombre, las constantes pueden ser accedidas sin tener
en cuenta el alcance del ámbito y no pueden ser redefinidas o eliminadas después
de establecerse.
define("$nombre_var","Ha sido reemplazado"), ejemplo
define("CONSTANTE","Hello World");
echo CONSTANTE; //el resultado es "Hello World"
10
mailxmail - Cursos para compartir lo que sabes
7. Operadores
Operadores
Operadores matemáticos:
Operadores de comparación:
Operadores lógicos:
11
mailxmail - Cursos para compartir lo que sabes
8. Sentencias condicionales
Sentencias Condicionales
Las sentencias condicionales nos permiten ejecutar o no ciertas instrucciones
dependiendo del resultado de evaluar una condición.
Las más frecuentes son la instrucción "if" y la instrucción "switch".
Sentencia if ... else
if(expresion) sentencias; //primera forma de escribirlo
if(expresion) {sentencias;} //segunda forma de escribirlo
if(expresion) { //tercera forma de escribirlo
sentencias;
}else{
sentencias;
}
Sentencias if ... elseif ... else
if(expresion) { //cuarta forma de escribirlo
sentencias;
}elseif(expresion){
sentencias;
}else{
sentencias;
}
Sentencias switch ... case
switch(expresion){
case expresión1:
sentencias1;
break;
case expresión2:
sentencias2;
break;
}
12
mailxmail - Cursos para compartir lo que sabes
9. Uso de operadores, Sentencias condiciones y
Switch. Práctica
Práctica 3-4: Uso de Operadores, Sentencias Condicionales y Switch (Envío de datos
de una orden de pedido calcular costo total pedido, tipo de cliente)
miOrderform.htm: Formulario de orden de pedido
<form action="procesarorden.php" method="post">
<table border=0 cellpadding="2" cellspacing="0">
<tr bgcolor=#cccccc>
<td width=150>Libro</td><td align="center">Cantidad</td></tr>
<tr>
<td>ActionScript</td>
<td align=center><input type="text" name="actionqty" size="3"
maxlength="3"></td></tr>
<tr>
<td>Photoshop</td>
<td align=center><input type="text" name="photoqty" size="3"
maxlength="3"></td></tr>
<tr>
<td>Flash MX </td>
<td align=center><input type="text" name="flashqty" size="3"
maxlength="3"></td></tr>
<tr>
<td>¿Cómo nos conoció</td>
<td><select name="find">
<option value = "a">Soy un cliente habitual</option>
<option value = "b">Anuncios de Televisión</option>
<option value = "c">Informaciones en internet</option>
<option value = "d">Me lo aconsejó un amigo</option>
</select>
</td></tr>
<tr>
<td colspan="2" align=center><br><input type="submit" value="Enviar
Pedido"></td></tr>
</table>
</form>
procesarorden.php: script php que procesa orden de pedido
13
mailxmail - Cursos para compartir lo que sabes
10. Estructuras de control
Estructuras de Control
Los bucles o bien llamado estructuras de control nos permiten iterar conjuntos de
instrucciones, es decir repetir la ejecución de un conjunto de instrucciones mientras
se cumpla una condición.
Sentencia while
while(condicion)
{
instrucciones a ejecutar;
}
Ejemplo:
$i = 0;
while($i<10)
{
echo "El valor de i es " . $i . "<br>";
$i++;
}
Sentencias do ... while
do
{
instrucciones a ejecutar;
} while(condicion)
Ejemplo:
$i = 0;
do
{
echo "El valor de i es " . $i . "<br>";
$i++;
} while($i<10)
Sentencias for
for (inicial ; condicion; contador)
{
instrucciones a ejecutar;
}
Ejemplo:
for ($i=0;$i<10;$i++)
{
14
mailxmail - Cursos para compartir lo que sabes
echo "l valor de i es " . $i . "<br>";
}
15
mailxmail - Cursos para compartir lo que sabes
11. Break, Continue. Manejo de archivos
Break, Continue
Estas dos instrucciones se introducen dentro de la estructura y nos sirven
respectivamente para escapar del bucle o saltar a la iteración siguiente. Resulta
práctico en algunas ocasiones.
Exit: Nos permiten terminan el script php
Práctica 5 - uso de las estructuras de control (bucles)
bucle_while.php
<h2>Lista de categorias (uso de while)</h2>
<?
$i = 1;
echo "<select name=categorias>\n";
while($i<=5)
{
echo "<option value=$i>Categoria$i</option>\n";
$i++;
}
echo "</select>";
?>
bucle_for.php
<h2>Cuadros de texto (uso de for)</h2>
<?
for($i=1;$i<=5;$i++)
{
echo "caja de texto $i <input type=\"text\" name=\"text$i\" value=\"\"
size=\"25\" /><br>\n";
}?
>
Manejo de Archivos
Posiblemente en nuestras tareas de programación nos surja la necesidad de obtener
datos de un fichero o bien crear uno. PHP nos provee una extensa gama de
funciones de acceso a ficheros.
Aquí lo que veremos son las funciones básicas; abrir (fopen), cerrar (close), leer
(fgets) y escribir (fputs). Esas 4 funciones nos serán útiles para la mayoría de
problemas que necesitamos resolver con respecto al acceso de ficheros.
16
mailxmail - Cursos para compartir lo que sabes
12. Lenguaje PHP. Funciones básicas (primera parte)
fopen(archivo. modoacceso)
Con esta función abrimos el fichero, bien local o una dirección de Internet (http:// o
ftp://). La función fopen nos devuelve un valor numérico (indicador de archivo) de
tipo integer que nos servirá para hacer referencia al archivo abierto, con fopen
podemos abrir ficheros de los siguientes modos:
El código es el siguiente:
if(!fopen("http://www.ciberaula.com/", "r")){
echo "El archivo no se puede abrir\n";
exit;
}
fgets (indicador_archivo, longitud)
La función fgets nos devuelve una cadena con la longitud específica del fichero al
que apunta el indicador de archivo.
$archivo = fopen("data.txt", "r");
if($archivo)
{
while(!feof($archivo))
{
$linea = fgets($archivo, 255);
echo $linea;
}
} fclose($archivo);
La funcion feof devuelve True si el puntero de lectura/escritura se encuentra al final
del fichero y False en caso contrario.
fputs(indicador_archivo, cadena)
17
mailxmail - Cursos para compartir lo que sabes
fputs(indicador_archivo, cadena)
La función fputs escribe una cadena en el fichero indicado. Para escribir en un
archivo este debe haber sido previamente abierto. La función fputs devuelve True si
se ha escrito con éxito, en caso contrario devuelve False.
$archivo = fopen("data.txt", "w");
if($archivo){
fputs($archivo, "Hola Mundo");
} fclose($archivo);
fclose(indicador_archivo)
Con esta función cerramos el fichero que nos marca el indicador de archivo,
devuelve True si el fichero se cierra correctamente y False sino se ha podido cerrar.
18
mailxmail - Cursos para compartir lo que sabes
13. Lenguaje PHP. Funciones básicas (segunda parte)
file_exists(fichero)
Esta función devuelve True si el archivo especificado existe y False en caso contrario.
if(file_exists("data.txt")){
echo "El fichero existe";
}else{
echo "El fichero no existe";
}
copy(origen, destino)
La función copy copia un fichero de un lugar (origen) a otro (destino), devuelve True
si la copia ha tenido éxito y False en caso contrario.
if(copy("data.txt","/tmp/data.txt"))
{
echo "El fichero ha sido copiado con exito";
}
else{
echo "El fichero no se ha podido copiar";
}
filesize(fichero): Tamaño del archivo
unlink(fichero): Elimina un archivo
Práctica 6: - manejo de archivos; abrir leer y escribir en un archivo contador.phpimplementar un contador utilizando archivos
<?
$archivo = "contador.txt";
//abrir archivo como lectura y escritura y para sobre escribirlo
$fp = fopen($archivo, "r");
$contador = fgets($fp, 16);
fclose($fp);
echo "Usted es el Vistante Nº ".$contador;
$contador++;
$fp = fopen($archivo, "w");
fwrite($fp, $contador, 16);
fclose($fp);
?>
19
mailxmail - Cursos para compartir lo que sabes
14. Lenguaje PHP. Funciones básicas (tercera parte)
Vamos a ver el caso de subir archivos desde un formulario. Para ello utilizaremos la
etiqueta < i n p u t > del tipo <type ="file">. El formulario debe usar el método
<method=" post"> de envío de datos y el atributo
<enctype="multipart/form-data">, así por ejemplo.
<form enctype="multipart/form-data" action="subirarchivo.php"
method="post">
<input name="archivo" type="file">
<input type="submit" value="Subir Archivo">
</form>
Cuando el formulario es enviado, PHP detectara automáticamente que se esta
subiendo un archivo y lo colocara en un directorio temporal en el servidor. Dicho
directorio será el que este indicado en el archivo php.ini, o en su defecto en el
directorio temporal del sistema.
Cuando PHP detecta que se esta subiendo un archivo crea varias variables con el
prefijo del nombre del archivo pero con distintas terminaciones. La variable
terminada en _name contiene el nombre original del archivo, la terminada en _size
el tamaño en bytes de este y la variable terminada en _type nos indicará el tipo de
archivo si este es ofrecido por el navegador.
Si el proceso de subida no ha sido correcto la variable archivo tomara el valor none y
_size será 0 y si el proceso ha sido correcto, pero la variable terminada en _size da
0, quiere decir que el archivo a subir supera el tamaño máximo indicado por
MAX_FILE_SIZE en el archivo php.ini.
Una vez subido el archivo, lo primero que debemos hacer es moverlo a otro lugar
pues sino se hace nada con el, cuando acabe la ejecución de la pagina se borrara.
Tipos de Archivos:
"image/jpeg",
"image/gif",
"application/zip",
"application/pdf",
"application/msword",
"application/vnd.ms-excel",
"image/png",
"text/plain",
"text/php",
"text/asp",
"text/css",
"image/pjpeg",
"application/x-shockwave-flash"
20
mailxmail - Cursos para compartir lo que sabes
15. Subida de archivos al servidor. Práctica
Aquí el ejemplo
Práctica 7: - Subida de archivos al servidor
subir_archivo.html - Formulario para subir archivos
<form action="upload.php" method="post" enctype="multipart/form-data">
<b>Enviar un nuevo archivo: </b>
<br>
<br>
<input name="userfile" type="file">
<br>
<br>
<input type="submit" value="Enviar">
</form>
<?
$folder="upload/"; //destino del archivo por ejemplo el directorio upload/
$nombre_File = $_FILES['userfile']['name'];
$size_File = $_FILES['userfile']['size'];
$tipo_File = $_FILES['userfile']['type'];
$temp_File = $_FILES['userfile']['tmp_name'];
echo "<h3>Datos del archivo a subir</h3>";
echo "Nombre Archivo ".$nombre_File."<br>";
echo "Tamaño Archivo ".$size_File."<br>";
echo "Tipo Archivo ".$tipo_File."<br>";
if(file_exists($folder))
{
if(!move_uploaded_file($temp_File,$folder.$nombre_File))
{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
else
{
echo "El archivo ha sido cargado correctamente.";
}
}?
>
- Subida de multiples archivos al servidor
NOTA: Con este capítulo hemos llegado al final del curso.
21
Descargar