Programación Web con PHP

Eduardo Ayala Sánchez http://edwmx.netne.net

 

 

1. Repaso de HTML Básico
1.1 Introducción
• HTML es un lenguaje de marcado de hipertexto y significa, por  sus siglas en inglés, (hyper text markup language).  • HTML no es un lenguaje de programación como lo es Java, C+ +, Delphi, etc. HTML es un sistema de códigos que permite crear  páginas web. • Este lenguaje está hecho de etiquetas y atributos que trabajan  conjuntamente para dar alguna característica específica a la  página web; el navegador interpreta dichas etiquetas y atributos y  las despliega en la pantalla.

 

 

1.2 Estructura Básica
• La estructura de las etiquetas y atributos hacen uso de los  picoparéntesis < >, de tal forma que el navegador pueda  reconocer las instrucciones de HTML y no confundirlas con el  contenido que desplegará la página.  • Para indicar el final de la instrucción se utiliza la misma  etiqueta pero añadiendo una diagonal. • Ejemplo: <TITLE>Mi primera página</TITLE>.

 

 

1.2 Estructura Básica (Cont.)
• La estructura principal de una página web está conformada  por las siguientes etiquetas: <HTML> <HEAD> <TITLE> </TITLE>  </HEAD> <BODY> </BODY> </HTML>  Empieza un documento HTML Zona de cabecera Zona de título Termina zona de título Termina zona de cabecera Zona de cuerpo del documento Termina zona de cuerpo del documento Termina documento HTML

 

 

</title> </head> <body > Mi primer documento HTML </body> </html>     .Ejemplo: <html> <head> <title> Mi primer ejemplo.

  Las etiquetas que se utilizan con mayor frecuencia para dar  formato al texto son: <B> </B> Texto en negrilla <I> </I> Texto en itálica <U> </U> Texto subrayado <P> Etiqueta de párrafo <BR> Etiqueta para introducir saltos de línea <BLOCKQUOTE></BLOCKQUOTE>  introducir sangría <FONT> </FONT> Fuente     . sin embargo.3 Texto • Para incluir texto en una página basta teclear éste entre las  etiquetas <BODY> y </BODY>. podemos hacer  uso de etiquetas para mejorar la apariencia de la información.1.

 a continuación  mostramos los atributos de esta etiqueta.1. FACE = "x" Para definir el tipo de letra (este tipo de letra  deberá estar precargado en la computadora del usuario de lo  contrario no se verá esta fuente y la máquina ocupara otra). COLOR = "x" SIZE = "x" Color de la fuente  Tamaño de la letra.) • Los atributos que permiten hacer modificaciones sobre la  tipografía se incluyen en la etiqueta <FONT>.     .3 Texto (Cont.

Ejemplo: <html> <head> <title> Modificando el texto. </title> </head> <body bgcolor=“yellow” text=“white”> Este es un texto sin formato <br>Introduje un salto de línea<br> <i> Texto en italica </i><br> <b> Texto en negrillas </b><br> <u> Texto subrayado </u><br> <blockquote> Con sangria </blockquote> </body> </html>     .

1.  • A las ligas que se encuentran en un mismo sitio se le llaman  absolutas. • La etiqueta para hacer los enlaces o ligas es la siguiente: <a> </a>  insertar liga y tiene varios atributos. ya sean de un mismo sitio. entre ellos HREF y TARGET. o bien.  hacia otro lado en Internet.     .4 Ligas • El uso de ligas caracteriza a las páginas web ya que permite  enlazar diferentes páginas. las que se encuentran fuera de éste se llaman  relativas.

mx">Universidad Autónoma  Metropolitana</a> Cuando una página es muy extensa podemos crear enlaces  entre ella misma. para ello es necesario utilizar dos ligas.uam. <a href="#Palabraclave">Ir hacia palabra </a> <a name="Palabraclave"></a>     .1.) • HREF <a href="http://www.4 Ligas (Cont. La  primera indica la palabra a la cual saltará el texto y la segunda  sirve para identificar dicha palabra como un "ancla".

TARGET="_blank"  se desplegará en una ventana nueva TARGET="_Parent" se desplegará en la ventana original TARGET="_self"  se desplegará en la misma ventana TARGET="nombre_de_frame" se desplegará en la ventana  indicada (se utiliza cuando empleamos frames)     .) • TARGET El atributo target se utiliza para indicar la ventana en la cual se  desplegará el contenido de la liga que se ha activado.1.4 Ligas (Cont.

 middle y bottom  (arriba. El atributo ALIGN tiene tres opciones: top.     .jpg"> Inserta imágenes • Algunos de los atributos de las imágenes son: WIDTH="X" HEIGHT="X" ALIGN="X" Ancho de la imagen. Altura de la imagen. respectivamente). abajo y enmedio.1.5 Imágenes • La etiqueta para insertar imágenes en un documento es: <IMG SRC=“imagen. Alineamiento de la imagen.

Ejemplo: <html> <head> <title> Modificando una Imagen </title> </head> <body> <img src=“imagen.jpg” width=300 height=300 align=“middle”> </body> </html>     .

 ya sea texto. imágenes. Para  indicar el final de una fila se utiliza la etiqueta </tr>. por  medio de <td> y </td>.1. etc.  • Las celdas se introducen entre las etiquetas <tr></tr>.6 Tablas • La etiqueta para construir las tablas es la siguiente:  <table> </table>  Insertar tabla • Para comenzar una fila usaremos la etiqueta <tr>. ligas.     . Podemos  agregar tantas filas como queramos en una misma tabla. En las celdas podemos insertar  diferente tipo de contenido.

) • Los atributos más comunes de la etiqueta <table> son:  WIDTH="X"  HEIGHT ="X"  BORDER ="X"  ALIGN="X"  CELLPADDING="X"  CELLSPACING="X" ancho de la tabla alto de la tabla ancho del borde de la tabla alineamiento de la tabla espacio entre el contenido de una celda espacio entre los bordes de la tabla • La etiqueta <td> también posee atributos que permiten distribuir el  contenido de la celda o el tamaño de la misma.1. Dichos atributos  son: WIDTH="X"  HEIGHT ="X"  ALIGN="X"  VALIGN="X"    ancho de la celda alto de la celda alineación del contenido de la celda alineación vertical del contenido   .6 Tablas (Cont.

Ejemplo: <html> <head> <title> Modificando una Tabla </title> </head> <body> <table border cellspacing=“10”> <tr> <td>cell1</td> <td>cell2</td> </tr> <tr> <td>cell3</td> <td>cell4</td> </tr> </table> </body> </html>     .

1. Al  definir los frames no es necesario incluir las etiquetas de la  estructura básica de un documento HTML.X%" ROWS="X%.7 Frames • Para trabajar con frames es necesario definirlos primero y  esto lo hacemos por medio de un nuevo documento HTML en  donde indicaremos el tamaño de cada una de las ventanas  que necesitaremos y la manera en que irán distribuidos. siendo x un  tamaño predeterminado   COLS="X%.X%"   . siendo x un  tamaño predeterminado dividir la pantalla en determinado  número de renglones . FRAMESET define como irán distribuidos los frames dividir la pantalla en determinado  número de columnas .

Ejemplo: <frameset cols=“40%.uam.mx" name=principal> </frameset>     .izt.60%"> <frame src=“http://www.izt.mx"> <frame src=“http://turing.uam.

    .M.Ejercicios • Agregar una tabla con 3 celdas. en la  celda número 2 agregar una liga que te lleve a la página de la  U. Dividir la pantalla en dos en la cual las dos partes  muestren los mismos enlaces. • Crear una página que muestre tres enlaces a distintas  paginas. y que esta liga la despliegue en una ventana nueva y  el la celda numero 3 agregar una frase con letra Arial 12 color  azul en italicas. la primer parte "Hacer la  apertura en otra ventana" y la segunda "Hacer la apertura en  la misma ventana". y agregar una imagen en la  celda número 1 con un ancho y alto de 100 pixeles.A.

2. JSP o ColdFusion • Originariamente (1994): "Personal Home Page"   Actualmente: "PHP: Hipertext Preprocessor" • Los scripts PHP están incrustados en los documentos HTML y  el servidor los interpreta y ejecuta antes de servir las páginas al  cliente • El cliente no ve el código PHP sino los resultados que produce     . Otros  lenguajes similares son ASP. Iniciación a PHP 2.1  Conceptos básicos Lenguajes de script • PHP es un lenguaje de script del lado del servidor.

    .2.1  Conceptos básicos (Cont.) • PHP es lo que llamamos un  lenguaje de programación del lado  del servidor. esto significa que el  código se interpreta en el servidor  y no en el ordenador del usuario.

2.2  Nuestro primer PHP Algunas Ventajas • Embebido (embedded) en una página html • Multiplataforma (GNU/Linux. Mac OS) • Independiente del Sistema Operativo! • Fácil de aprender • Muchos recursos en la Web     . Windows.

2. /* … */ (varias líneas ) y // (una  línea)     ..2  Nuestro primer PHP (Cont. • Comentarios: como en C.) Ideas Básicas • PHP es sensible a las mayúsculas • ¿Cómo se incrusta en la página web? <?PHP . como en C. ?> • <?= expresión ?> equivale a <? echo expresión ?> • Las instrucciones se separan con un ..

echo “Hola “.2  Nuestro primer PHP (Cont. “mundo”.) Sintaxis básica • Para imprimir: echo y print • echo: muestra una o más cadenas echo cadena1 [.     . • print: muestra una cadena print cadena. print“Hola “ . print“Hola mundo”. “mundo”. echo “Hola mundo”.2. cadena2…].

Ejemplo: <HTML> <HEAD> <TITLE>Mi primer programa en PHP</TITLE> </HEAD> <BODY> <?PHP print(“<P>Hola mundo</P>”). ?> </BODY> </HTML>     .

) Código generado <HTML> <HEAD> <TITLE>Mi primer programa en PHP</TITLE> </HEAD> <BODY> <P>Hola mundo</P> </BODY> </HTML>     .Ejemplo: (Cont.

$exite = true.2.43. //Una variable de tipo integer.3 Variables • Los nombres de variables comienzan con el signo $ y son  sensibles a mayúsculas y minúsculas • En PHP no es necesario definir el tipo antes de utilizarla. $nombre = "juan". //Una variable de tipo double. $sueldo = 758. las  mismas se crean en el momento de emplearlas.     . //Una variable de tipo string. //Una variable boolean. Las variables se  declaran cuando se le asigna un valor $dia = 24.

 por lo que se pueden leer desde el interior de una  funcion sin tener que pasarlas como parametro. otra particularidad de las constantes es que son  globales.3 Variables (Cont.) • Para que una variable sea accesible desde cualquier parte de  nuestro script php. • Una constante es como una variable pero con la diferencia que  una vez toma un valor este no puede variar durante la ejecucion  del script.2. la definiremos cómo global de la siguiente  manera: global $miVariableGlobal = 'Hola'.'valor de mi constante'). define ('miConstante'.     .

"<br>". echo "Variable double: “. $sueldo = 758. echo "Variable string: “. $nombre = "juan".Ejemplo: <html> <head> <title>Variables</title> </head> <body> <?php $dia = 24.$nombre.$sueldo. echo "Variable entera: “."<br>". ?> </body> </html>     .43."<br>".$dia. echo "Variable boolean: “.$exite. $exite = true.

Ejemplo: Algunos tips <? $dia=10. echo $fecha. $fecha="Hoy es $dia". echo $miVariable. ?>     . ?> <? $nombreVariable = "miVariable". $$nombreVariable = "Hola".

print("El valor de x es <i>$x<i>") 6. print("El valor de y es <i>$y</i><br />". $x = -1. 5. $suma = x + y. <br /> 7. tu  edad y la ciudad dónde naciste.Ejercicios • Hacer un programa en PHP que escriba tu nombre (en negrita). • Hacer un programa en PHP que escriba el resultado de la suma de  dos variables (x = ­35 e y = 100). ?>. • Detectar los 7 errores: 1. 3.     . $y = 9. print("La suma es <b><i>$suma</i></b><br />"). 4. 9. <?php 2. 8.

• Módulo (%) ­ Devuelve el resto de dividir el primer operando  entre el segundo. Operadores en PHP 3. • Adición (+) ­ Devuelve la suma de los dos operandos que recibe  el operador. • División (/) ­ Devuelve el cociente en valor flotante de los  operandos.Este operador es muy útil para saber si un  número es múltiple de otro     . • Substracción (­) ­ Devuelve la diferencia entre el primer y el  segundo operando.3.1  Aritméticos y de Asignación Se trata de operadores binarios en todos los casos ya que  requieren dos operandos para funcionar correctamente. • Multiplicación (*) ­ Devuelve el producto de los operandos.

"<br>".$b. echo $a. echo $a * $b. echo $a / $b. ?>     ."<br>"."<br>"."<br>".Ejemplo: <?php $a = 8. $a++."<br>"."<br>". echo $a . echo $a . $b = 3."<br>"."<br>". echo $a += 1.= $b. echo $b. $b--."<br>". echo $a *= 2. echo $a + $b.

3. • Menor que (<) ­ Devuelve 1 si el primer operando es mas  pequeño que el segundo. • No idénticos (!==) ­ Devuelve 1 si son distintos o de tipo  diferente. • Menor o igual que (<=) ­ Devuelve 1 si el primer operando es  mas pequeño o igual que el segundo. • Idéntico (===) ­ Devuelve 1 si los operandos son iguales y  del mismo tipo.2  Comparación • Igual (==) ­ Devuelve 1 si los operandos son iguales aunque  sean de tipo distinto.     . • Mayor que (>) ­ Devuelve 1 si el primer operando es mas  grande que el segundo. • Mayor o igual que (>=) ­ Devuelve 1 si el primer operando es  mas grande o igual que el segundo. • Diferente (!= o <>) ­ Devuelve 1 si los operandos són  distintos.

  evalúa una condición. ?> • Operador Control de Errores: Este operador que se  representa con el signo arroba (@).) • El operador de comparación ternario es el '?:'. este operador. que puede ser una operación de  comparación binaria y si se cumple ejecuta el segundo  operando.3.2  Comparación (Cont. permite evitar que se  imprima en la página de resultado un error producido por la  ejecución del código PHP en una línea determinada:     . de lo contrario ejecuta el tercero: <? echo ($variable == 1) ? 'Vale 1' : 'Vale mas de uno'.

3 Lógicos • Los operadores de Lógica nos permiten crear expresiones  mas complejas para evaluar nuestras estructuras de control.3. Y (&& o and) ­ Devuelve 1 si ambos operandos són 1 O (|| o or) ­ Devuelve 1 si algún operando es 1 O exclusivo (xor) ­ Devuelve 1 si solo 1 operando es 1     .  permitiéndonos enlazar varias operaciones de comparación  con los diferentes operadores boléanos.

"<br>". ".((1 == 1) || (2 != 2)). ".!((1 == 1) && (2 != 2)).((1 == 1) or (2 != 2))."<br>". "."<br>".!((1 == 1) and (2 != 2)).Ejemplo: <? echo echo echo echo echo ?> "1: "2: "3: "4: "5: "."<br>".     .((1 == 1) xor (2 != 2))."<br>". ".

 calcular su área y su  perímetro. . . y. y mostrar los resultados por pantalla. y += 2. y = −2 + x­­. • Suponiendo la declaración previa: x = 7. calcular el valor de la  variable y tras evaluar cada una de las siguientes asignaciones . .Ejercicios • Tener una base y una altura de un rectángulo. y = (y == x). y = y++ − x. .     .

Instrucciones en PHP 4.4. esta nos permite dar otra  condición por si no se ha cumplido la primera. despues de elseif  podemos volver a usar else con normalidad     .1  Condicionales • La estructura if nos permite ejecutar un bloque de acciones si  se cumple una determinada condicion. de lo contrario nos permite  ejecutar otro bloque de acciones identificado por la sentencia  else. es la senténcia elseif. • Hay otra senténcia que usamos a menudo para unir mas de un  condicional if.

} else { echo 'La variable tiene otro valor'. } ?>     .Ejemplo: <? $var1 = 2. if($var1 == 1){ echo 'La variable vale 1'. } elseif($var1 == 2){ echo 'La variable vale 2'.

<? switch ($i) { case 0: echo "Variable en valor bajo". programando en PHP. case 1: echo "Variable en valor alto". break. }   ?>   . default: echo "La variable no es binária".4.1  Condicionales (Cont. pero el código resultante será confuso y difícil de modificar en el  futuro para eso utilizamos la estructura switch.) • En muchas ocasiones. podríamos usar una sucesión de condicionales  if. en este caso. break. nos encontramos que  queremos hacer una u otra acción dependiendo del valor de una  variable.

// Incrementamos la variable } ?>     . <? $var1 = 0. cuando deje  de cumplirse. $var1++. la  condición se cumple mientras no de resultado 0 y esta formada por  operaciones PHP. sobretodo por operaciones lógicas y de  comparación. while($var1 < 10){ echo "\$var1 = $var1<br>".2 Bucles • El bucle while esta instrucción nos permite efectuar un bloque de  acciones mientras se cumpla una determinada condición.4. se continuará ejecutando el resto del código PHP.

 así. $var1++. } while ($var1 < 10). este bucle se ejecutará siempre una  vez mas que while si tienen la misma condición: <? $var1 = 0.) • El bucle do while es en su esencia igual al bucle while con la  diferéncia de que ejecuta las acciones antes de comprobar la  condición.4. consiguiendo que se ejecuten las acciones una vez si la  condición retorna 0 o FALSE. do { echo "\$var1 = $var1<br>". ?>     .2 Bucles (Cont.

2 Bucles (Cont.4. $var1 < 10. } ?>     . cuando devuelve 0 o FALSE  se continua ejecutando el código de después del for ­ acción ­ Se ejecuta en cada bucle y debe modificar la variable de la  condición <? for ($var1 = 0.) • El bucle for nos permite ejecutar un determinado bloque de acciones  un número determinado de veces. $var1++){ echo "\$var1 = $var1".) y que serán: ­ acción inicial ­ Inicializa la variable de control del bucle ­ condición ­ Se evalúa en cada iteración. a esta estructura le pasaremos tres  parámetros que separaremos por punto y coma (.

"clave 2" => "elemento 2" ). ?> •Una vez definido el vector. sus  elementos estarán identificados por un número ( empezando por 0 ) o  una clave que se puede definir así: <?php $vector = array ( "clave 1" => "elemento 1". "elemento 2" ).­.­ Vectores en PHP • Se define el arreglo <?php $vector = array ( "elemento 1". ?>     . podemos acceder a sus elementos.

­.) • Para acceder a un elemento usaremos [ y ] con su clave ( "clave 1" o  0 ) <?php echo $vector[0].// elemento 1 echo $vector['clave 1'].­ Vectores en PHP (Cont.// elemento 1 ?>      .

Ejemplo:
<?php $vector = array ( "elemento 1", "elemento 2" ); // Añadimos "elemento 3" al final $vector[] = "elemento 3"; // Añadimos un elemento con clave "clave 3" $vector['clave 3'] = "elemento 4"; // Cambiamos el texto al elemento 3 ( 2 contando el 0 ) $vector[2] = "elemento N"; // Borramos el 'clave 3'; unset ( $vector['clave 3'] ); print_r ($vector); ?>
   

4.2 Bucles (Cont.)
• El bucle foreach nos permite iterar para cada elemento de un  vector, su sintaxis es sencilla, solo hay que indicar el identificador de la  matriz, la expresion as y seguidamente la variable que identificará el  valor del elemento: <? $vector = array("uno", "dos", "tres"); foreach ($vector as $valor) { echo "Valor: $valor<br>"; } ?>

 

 

Ejemplo:
<? $vector = array( "uno" => 1, "dos" => 2, "tres" => 3, "diecisiete" => 17 ); foreach($vector as $indice => $valor) { print "\$vector[$indice] => $valor.\n"; } ?>

 

 

4.3 Salida
Hasta ahora hemos usado la instrucción echo para realizar salida a  pantalla, esta instrucción es bastante limitada ya que no nos permite  formatear la salida. En esta página veremos la instrucción printf que  nos da mucha más potencia.  Sentencia printf.    <?php printf(cadena formato, variable1, variable2...); ?> %s %d %f %c
 

Cadena de caracteres. Número entero. Número con decimales. Carácter ASCII.
 

} printf("</table>"). ?>     . for ($i=0.Ejemplo: <?php $var="texto".$i++) { printf("<tr><td>%d</td></tr>".$num).$var. $num=3.$num.2f</b> <br>".$i).$num.$i<10. printf("<TABLE BORDER=1 CELLPADDING=20>"). printf("Puede fácimente intercalar <b>%s</b> con números con diferentes formatos: <b>%d %f %.

6. 2. Divide una cadena en varias usando un  carácter separador.     . Devuelve una subcadena de otra. cadena2. 4. Nos devuelve el número de carácteres de una  cadena. 3. 5.4 Manejo de Cadenas 1.cadena).  empezando por inicio y de longitud. Elimina los saltos de línea y los espacios finales de  una cadena. Reemplaza la cadena1 por  la cadena2 en el texto.­ str_replace(cadena1. inicio.4. longitud). cadena2).­ chop(cadena). Busca la cadena2 dentro de cadena1  indicándonos la posición en la que se encuentra.­ strpos(cadena1. texto).­ strlen(cadena).­ split(separador.­ substr(cadena.

3)."<br><br>"."<br>".").   ?>   . echo substr("Devuelve una subcadena de otra". como verde es la hierba."rojo"."Esto es una prueba")."<br>".$i++) echo $palabras[$i]."<br><br>". echo str_replace("verde".9. if (chop("Cadena \n\n ") == "Cadena") echo "Iguales<br><br>"."Un pez de color verde.$palabras[$i]. $palabras=split(" ". echo strpos("Busca la palabra dentro de la frase". "palabra").Ejemplo: <?php echo strlen("12345")."<br>". for($i=0.

 Luego mostrar si tiene 1. • Generar un valor aleatorio entre 1 y 100. Utilizar la sentencia elseif. Luego  mostraremos un mensaje si es menor o igual a 5 o si es mayor a 5. 9. tanto espacio y coincidir”  imprimir en pantalla una lista con la longitud de cada palabra     .10). tantos siglos. • Visualizar la tabla de multiplicar de los numeros 3. • Crear una matriz de tamaño 3x3 con dígitos del 1 al 9 en su interior  posteriormente desplegar en pantalla una tabla de tamaño 3x3 con los  dígitos de la matriz. Sugerencia:  Utilizar las sentencias for o while.Ejercicios • Generar un valor aleatorio comprendido entre 1 y 10. 6. • Del texto “tantos mundos.  Sugerencia: Utilizar el operador ternario ‘?:’ recuerda utilizar la función  $valor=rand(1.2 o  3 dígitos.

5. $argumento_2) { // Codigo de la funcion } ?>     .1 Funciones • Para declarar una función utilizamos la expresión function  seguida del nombre que queremos dar a la función. veamos un ejemplo: <? function miFuncion ($argumento_1. los argumentos que recibe la  función y finalmente y entre corchetes el código que esta debe  ejecutar. a  continuación y entre paréntesis. Funciones 5.

 la debemos llamar como una función  prefabricada de PHP.) • Llamado de una función. veamos este ejemplo: <? function saludo($nombre.1 Funciones (Cont. Una vez creada la función.$momento){ return "Hola $nombre buenas $momento". • Valor de retorno Es interesante saber que las funciones pueden devolver un valor al  lugar donde las llamamos. } echo saludo("Pepe".5."tardes"). ?>     . por su nombre pasando los argumentos que  necesita. esto se hace gracias a la instrucción return  seguida del valor de retorno.

?>     .Ejemplo: • Por defecto los parámetros se pasan por valor • Paso por referencia: <? function incrementa (&$a) { $a= $a+ 1. print $a. incrementa ($a). incrementa ($a). } $a=1.

• Media.$b){ return ($a+$b)/2.phtml <? function mediaAritmetica($a. de manera que  luego podemos incluir esta librería en distintas páginas y disponer de  esas funciones fácilmente. } ?>     .5. nos permiten agrupar  varias funciones y variables en un mismo archivo.2 Librerías • El uso de librerías es tremendamente útil.

?> </body> </html>     .4). echo “La media es: $mediaAritmetica”.Ejemplo: <html> <head> <title>Media Aritmetica</title> </head> <body> <? include(“Media. $mediaAritmetica = mediaAritmetica(6.phtml”).

• Genera una función que reciba como parámetro 2 números y regrese  el resultado de la suma. Sugerencia utilizar paso de parámetros por referencia. multiplicación y división de ambos  números.Ejercicios • Genera una función que reciba como parámetro 2 números y regrese  el resultado de la suma de ambos para posteriormente mostrarlos en  pantalla. resta. • Incluye una función dentro de un archivo php. que imprima la tabla de  multiplicar del numero que se le pase por parámetro y agrégala como  librería en otro archivo php donde se ejecutara     .

$edad = $_GET[“age”].php?name=TuNombre&age=TuEdad <? $nombre = $_GET[“name”].’<br>’. Ejemplos prácticos 6. ?>     .6. echo ‘y tienes ’.$nombre.’ años cumplidos’.$edad.1 Enlace Externo • Para pasar variables por la URL de la pagina se utiliza el  símbolo ? De la siguiente manera: pagina. echo ‘Tu eres ’.

 esta será asimismo la direccion que verá el usuario una  vez enviados los datos method ­ Define la manera en que són enviados los datos del  formulario. que le permiten  enviar informacion a nuestro servidor donde la podremos tratar  por ejemplo con PHP.7. Procesado de formularios 7.1 Envió y recepción • Un formulario es un entorno de interacción con el visitante de  una página web. en su interior encontramos un seguido de  campos de formulario editables por el usuario. enctype ­ Define como encriptar los datos del formulario.     . no es  frecuente usarlo. pudiendo ser GET ( Datos visibles en la barra de  direccion ) o POST. • Atributos de la etiqueta de formulario action ­ Define la direccion del programa que tratará los datos  enviados.

Ejemplo: <html> <head> <title>Mi Formulario</title> </head> <body> <form method="POST" action=“form2.php"> Nombre<br> <input type="text" name=“name" size="20"> <br><br>Texto<br> <textarea rows="2" name=“text" cols="20"></textarea> <br><br> <input type="submit" value="Enviar" name=“send"> <input type="reset" value="Restablecer" name=“new"> </form> </body> </html>     .

2 Método GET y POST • Al enviar un formulario HTML. • Estos datos. $_GET y $_POST de manera  respectiva. • POST ­ Los datos del formulario són enviados al servidor como datos  de la petición. dependiendo del method del  formulario: • GET ­ Los datos del formulario són enviados al servidor a través de  los encabezados HTTP. los datos del formulario se envían  utilizando uno de los siguientes métodos. podemos recojerlos desde nuestra aplicación PHP  utilizando los arrays superglobales.7. los datos són enviados al servidor  Web y este es capaz de procesarlos y realizar un seguido de acciones  en función de los datos introducidos. estos datos són visibles en la URL.     .

$_POST[‘text’]. else echo “Tu nombre es: ”. echo “y tu texto fue: ”.Ejemplo:  <? form2. ?>     .$_POST['name'].php if (!isset($_POST['name'])||$_POST['name']=="") die("Error!! El nombre no tiene ningún valor!"). echo “<br><br />”.

7. si el asunto es muy largo se te abreviará con ..      . (tres puntos) . ?> • Destinatario  El destinatario de un email será el email donde se enviará el email. asunto.3 Envió de EMail PHP nos ofrece la posibilidad de enviar emails de una manera sencilla  y fácil..  Este campo es obligatorio ya que sin email no podrá enviar el  mensaje. para ello el lenguaje nos proporciona la instrucción mail( )   <?php mail(destinatario. texto del mensaje).  • Asunto  Este campo no es obligatorio ya que si no lleva asunto aparece (sin  asunto).

7. pero por lógica deberías de escribir algo. menos \x. \n y \r. \n = salto de línea  \t = sangría  \r = vuelta de línea     .) • Cuerpo del Mensaje o Contenido  En el contenido del mensaje escribirás el motivo del email.. es decir no se ejecutará nada  solo será texto. No es  obligatorio. Hay tres códigos \t. El mensaje será una línea de texto .3 Envió de Email (Cont.

echo “\nExito!! El email se ha enviado”. mail($email.$asunto. $asunto = “Hola!!”. }   ?>   .com”.Ejemplo: <html> <head> <title>Envio de un email</title> </head> <body> <form method="POST" action=$PHP_SELF> <input type="submit" value="Enviar" name=“send”> </form> </body> </html> <? if(isset($_POST[‘send’])){ $email = “tuemail@mail. $texto = “Este es el texto del mail”.$texto).

 su edad en cursivas indicando si es o no mayor  de edad y su foto en un tamaño de 150x150 pixeles • Escribe un formulario para enviar un correo electrónico que contenga  email del destinatario. en la primera pedir el  nombre. al dar click en el botón ‘enviar’ que aparezca en otra pagina su  nombre en negritas.     . Validar que sea obligatorio una dirección de correo  electrónico y un asunto antes de enviar el correo e indicar que el  correo se envió exitosamente. y en la tercera ingresar la URL de su  foto.Ejercicios • Escribe un formulario con 2 cajas de texto para ingresar números y  un botón que diga ‘suma’ y cuando se presione dicho botón aparezca  una liga debajo de el que te lleve a otra pagina donde se muestre el  resultado en el siguiente formato: Operando1+Operando2 = Resultado • Escribe un formulario con 3 cajas de texto. en la segunda la edad. asunto y texto este ultimo utilizando un control  textarea.

1 ¿Qué son? • Una sesión es la secuencia de páginas que un usuario visita en  un sitio web. • Utilizaremos sesiones para almacenar una serie de variables en  el servidor relacionándolas ( gracias a una variable pasada por  cookie o por URL ) con un usuario concreto para que estén  disponibles en diferentes páginas de nuestro sitio web.8. podremos leerla  desde todas las páginas de nuestra web mientras la sesión no se  destruya.     . Desde que entra en el sitio.  • Una vez almacenada una variable de sessión. Sesiones 8. hasta que lo abandona.

 podremos trabajar con sesiones como si de cualquier  otro vector se tratara: <?php // Inicializamos sesion session_start(). // Guardamos una variable $_SESSION['nombre'] = 'Fernando Díaz'. ?>     .2 Inicialización • Guardar una variable El soporte para sesiones de PHP nos permite inicializar facilmente una  sesión utilizando session_start y gracias al vector superglobal  $_SESSION.8.

} ?>     .) • Leer una variable guardada Esto lo haremos simplemente inicializando la sesión y con el mismo  vector $_SESSION. usaremos isset cómo con cualquier otra variable. // Comprobamos si existe la variable if ( isset ( $_SESSION['nombre'] ) ) { // Si existe echo $_SESSION['nombre'].8. para ver si existe una variable de sesión  determinada.: <?php // Inicializamos sesion session_start().2 Inicialización (Cont. } else { // Si no existe echo 'desconocido'.

 pero  además podemos eliminar la sesión con session_destroy: <?php // Inicializamos sesion session_start().) • Borrar una variable Podemos borrar una variable de sesión usando la función unset. // Borramos la variable unset ( $_SESSION['nombre'] ) { // Borramos toda la sesion session_destroy().2 Inicialización (Cont. ?>     .8.

3 Un ejemplo • Descarga el archivo ejemplo de la siguiente pagina: http://edwmx.netne.net     .8.

headers already sent by (output started at /home/session. no dejes espacios ni antes del inicio del script.     .  Simplemente por la existencia de una línea en blanco. Para probarlo crea una línea en blanco o  con cualquier cosa antes de <?php.8. Te ahorrará muchos disgustos.    • Te encontrarás un error de este tipo: Warning: Cannot send session cookie . ni después de  la finalización.php:2) in /home/session.4 Error común  • Uno de los errores más comunes cuando se utilizan sesiones es  dejar líneas en blanco antes de la inicialización de PHP o enviar  alguna salida a la pantalla.php on line 4    • PHP está informando de que no puede activar los cookies en el  navegador del usuario. porque las cabeceras ya han sido enviadas. Como medida  práctica.

5 Carrito de Compras  <?php session_start(). }else{ foreach($itemsEnCesta as $k => $v){ if ($item==$k){ $itemsEnCesta[$k]+=$cantidad.8. } } if (!$encontrado) $itemsEnCesta[$item]=$cantidad. $item=$_POST['item']. if ($item){ if (!isset($itemsEnCesta)){ $itemsEnCesta[$item]=$cantidad. session_register('itemsEnCesta'). $itemsEnCesta=$_SESSION['itemsEnCesta'].   ?>   . $cantidad=$_POST['cantidad']. $encontrado=1. } } $_SESSION['itemsEnCesta']=$itemsEnCesta.

} } ?> </body>   </html>   .8."?".5 Carrito de Compras (Cont.$SID?>" method="post"> Dime el producto <input type="text" name="item" size="20"><br> Cuantas unidades <input type="text" name="cantidad" size="20"><br> <input type="submit" value="Añadir a la cesta"><br> </form> <? if (isset($itemsEnCesta)){ echo'El contenido de la cesta de la compra es:<br>'.)  <html> <body> <form action="<?=$PHP_SELF.$k.'<br>'.$v.' ud: '. foreach($itemsEnCesta as $k => $v){ echo 'Artículo: '.

 Nota: Solo debes de tener un archivo PHP     .Ejercicios • Implementa el carrito de compras modificando el archivo ejemplo.  para que de esta manera solo puedas agregar productos a la cesta si  has iniciado sesión.

9. • Para usar esta función se tienen que usar delimitadores. aquí  usaremos slashes ( / ) es decir: / ( expresión ) / [modificadores]     .9. estas son algunas: • preg_match() : Encuentra coincidencias en una cadena a partir  de una expresión regular. Expresiones Regulares EE.RR. en PHP se  pueden usar muchas funciones.1 ¿Qué son? • Las expresiones regulares son cadenas de caracteres que  forman un patrón y expresan un texto más extenso.

}else{ echo "No coincide". $string)){ echo "Coincide".     . if( preg_match($patron. } ?> • El modificador "i". logra que no se haga la distinción entre  mayúsculas y minúsculas. $string = "casa“.Ejemplo: <?php $patron = "/ca/".

 buscar el signo de $ . ahí que anteponer un  backslash antes ( \$ ). "casa" . solo  mostrara una coincidencia a las palabras que inicien con "ca" . "oca" . si a  nuestro ejemplo cambiamos el patrón a: $patron = "/^ca/“ .     . dará solo coincidencia en "ca"  ya que expone un inicio y un fin de cadena.   • Si queremos buscar una cadena con un carácter especial. etc y por ultimo  • Si lo cambiamos a: $patron "/^ca$/“ .2 Patrones  • ^ Representa el principio de un patrón y $ representa el final.tomara solo las que terminen en  "ca" . por  ejemplo una cantidad.. •Si lo cambiamos a: $patron = "/ca$/“ .  "campo" etc.9. "coca" .

 por ejemplo: •  *  + ? • El signo * . el "?" es lo mismo.     . es muy general.2 Patrones (Cont. $string = "Caaaaaaaaaaa".9. solo que coincide si esta presente 0 o  1 vez y por ultimo "+" . coincide si esta presente 1 o mas veces. toma lo que le precede y coincide si esta  presente 0 o mas veces $patron = "/^Ca*/".) • Existen ciertos caracteres que son como comodines. • Coincidiría.

    . Sugerencia utilizar la  sentencia elseif.Ejercicios • Encontrar una expresión regular que valide si una palabra tiene o no   2b’s consecutivas • Encontrar una manera de validar si una palabra tiene o no  2a’s  consecutivas pero que termine en a siempre.

Fin del Curso Programación Web con PHP Eduardo Ayala Sánchez http://edwmx.net     .netne.

Sign up to vote on this title
UsefulNot useful