Proyectos Web 3 Introduccion Php

2,495 views

Published on

Curso de Proyectos Web

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,495
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
279
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Proyectos Web 3 Introduccion Php

  1. 1. Instituto Superior Tecnológico Público“Francisco de Paula Gonzáles Vigil”Carrera Profesional de Computación e Informática<br />“PROYECTOS WEB&quot;<br />Tema 3:Lenguaje PHP<br />Lic. José Luis Ponce Segura<br />jlponcesg@hotmail.com<br />www.redtacna.net<br />
  2. 2. Introducción a PHP<br />Lenguajes de script<br />PHP es un lenguaje de script del lado del servidor. Otros lenguajes similares son ASP, JSP o ColdFusion<br />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<br />El cliente no ve el código PHP sino los resultados que produce<br />
  3. 3. Introducción a PHP<br />¿Cómo funciona PHP?<br />Cliente<br />(navegador)<br />Servidor web<br />PáginaHTML<br />PáginaHTML<br />internet<br />&lt;P&gt;Hola, Ana&lt;/P&gt;<br />
  4. 4. Introducción a PHP<br />¿Cómo funciona PHP?<br />Cliente<br />(navegador)<br />Servidor web<br />PáginaPHP<br />PáginaHTML<br />PáginaHTML<br />internet<br />Intérprete<br />PHP<br />&lt;?PHP<br /> $nombre = &quot;Ana&quot;;<br /> print (&quot;&lt;P&gt;Hola, $nombre&lt;/P&gt;&quot;);<br />?&gt;<br />&lt;P&gt;Hola, Ana&lt;/P&gt;<br />
  5. 5. Introducción a PHP<br />Breve historia de PHP<br />Creado por Rasmus Lerdorf para uso personal en 1994<br />PHP = Personal Hypertext Processor<br />Versión actual: PHP 5<br />Es un módulo que se añade al servidor web y fue concebido inicialmente para Apache<br />¿Por qué PHP?<br />Por sus ventajas: es potente, fácil de aprender, de libre distribución, permite el acceso a bases de datos y otras funcionalidades orientadas a la red<br />Dispone de abundante soporte en la Web<br />
  6. 6. Introducción a PHP<br />Requisitos<br />Servidor web Apache (www.apache.org)<br />con el módulo PHP (www.php.net)<br />y la base de datos MySQL (www.mysql.com) si se desea crear páginas dinámicas<br />Otras utilidades<br />Herramientas para la gestión de MySQL, como PHPMyAdmin (www.phpmyadmin.net)<br />Editores de PHP, como DevPHP (www.sourceforge.net) o Eclipse (www.eclipse.org)<br />Manuales de PHP y MySQL<br />
  7. 7. Lenguaje PHP básico<br />Sintaxis básica<br />Tipos de datos<br />Variables<br />Constantes<br />Expresiones y operadores<br />Estructuras de control<br />Funciones<br />Tablas<br />Bibliotecas de funciones<br />
  8. 8. Sintaxis básica<br />PHP es sensible a las mayúsculas<br />¿Cómo se incrusta en la página web?<br />&lt;?PHP ... ?&gt;<br /> recomendado, siempre disponible<br />&lt;?= expresión ?&gt;<br /> equivale a &lt;? echo expresión ?&gt;<br />Las instrucciones se separan con un ; como en C. La marca final ?&gt; implica un ;<br />Comentarios: como en C, /* … */ y //<br />
  9. 9. Sintaxis básica<br />Para imprimir: echo y print<br />echo: muestra una o más cadenas<br />echo cadena1 [, cadena2…]; // no es una función<br />echo “Hola mundo”;<br />echo “Hola “, “mundo”;<br />print: muestra una cadena<br />print cadena; // no es una función<br />print “Hola mundo”;<br />print “Hola “ . “mundo”;<br />
  10. 10. Sintaxis básica<br />Ejemplo:<br />&lt;HTML&gt;<br />&lt;HEAD&gt;<br />&lt;TITLE&gt;Mi primer programa en PHP&lt;/TITLE&gt;<br />&lt;/HEAD&gt;<br />&lt;BODY&gt;<br />&lt;?PHP<br />print (“&lt;P&gt;Hola mundo&lt;/P&gt;”);<br />?&gt;<br />&lt;/BODY&gt;<br />&lt;/HTML&gt;<br />
  11. 11. Sintaxis básica<br />Uso de para generar código HTML legible<br />a) Sin <br />print (“&lt;P&gt;Párrafo 1&lt;/P&gt;”);<br />print (“&lt;P&gt;Párrafo 2&lt;/P&gt;”);<br />Código PHP<br />&lt;P&gt;Párrafo 1&lt;/P&gt;&lt;P&gt;Párrafo 2&lt;/P&gt;<br />Código HTML<br />Párrafo 1<br />Párrafo 2<br />Salida<br />
  12. 12. Sintaxis básica<br />Uso de para generar código HTML legible<br />b) Con <br />print (“&lt;P&gt;Párrafo 1&lt;/P&gt; ”);<br />print (“&lt;P&gt;Párrafo 2&lt;/P&gt; ”);<br />Código PHP<br />&lt;P&gt;Párrafo 1&lt;/P&gt;<br />&lt;P&gt;Párrafo 2&lt;/P&gt;<br />Código HTML<br />Párrafo 1<br />Párrafo 2<br />Salida<br />
  13. 13. Sintaxis básica<br />Inclusión de ficheros externos:<br />include()<br />require()<br />Ambos incluyen y evalúan el fichero especificado<br />Diferencia: en caso de error include() produce un warning y require() un error fatal<br />Se usará require() si al producirse un error debe interrumpirse la carga de la página<br />Ejemplo:<br />
  14. 14. Sintaxis básica<br />&lt;HTML&gt;<br />&lt;HEAD&gt;<br /> &lt;TITLE&gt;Título&lt;/TITLE&gt;<br />&lt;?PHP<br />// Incluir bibliotecas de funciones<br /> require (&quot;conecta.php&quot;);<br /> require (&quot;fecha.php&quot;);<br /> require (&quot;cadena.php&quot;);<br /> require (&quot;globals.php&quot;);<br />?&gt;<br />&lt;/HEAD&gt;<br />&lt;BODY&gt;<br />&lt;?PHP<br /> include (&quot;cabecera.html&quot;);<br />?&gt;<br />// Código HTML + PHP<br />. . .<br />&lt;?PHP<br /> include (&quot;pie.html&quot;);<br />?&gt;<br />&lt;/BODY&gt;<br />&lt;/HTML&gt;<br />
  15. 15. Tipos de datos<br />PHP soporta 8 tipos de datos primitivos:<br />Tipos escalares: boolean, integer, double, string<br />Tipos compuestos: array, object<br />Tipos especiales: resource, NULL <br />El tipo de una variable no se suele especificar. Se decide en tiempo de ejecución en función del contexto y puede variar<br />Funciones de interés:<br />La función gettype() devuelve el tipo de una variable<br />Las funciones is_type comprueban si una variable es de un tipo dado:<br />is_array(), is_bool(), is_float(), is_integer(), is_null(), is_numeric(), is_object(), is_resource(), is_scalar(),<br />is_string()<br />La función var_dump() muestra el tipo y el valor de una variable. Es especialmente interesante con los arrays<br />
  16. 16. Tipos de datos<br />Tipo integer (números enteros)<br />27, -5, 0<br />Tipo double (números reales)<br />1.234, -5.33<br />Tipo boolean (lógico)<br />Valores: true, false (insensibles a las mayúsculas)<br />El 0 y la cadena vacía tienen valor false<br />
  17. 17. Tipos de datos<br />Tipo string:<br />Las cadenas se encierran entre comillas simples o dobles:<br />‘simples’: admite los caracteres de escape ’ (comilla simple) y (barra). Las variables NO se expanden<br />“dobles”: admite más caracteres de escape, como , , , $, ”. Los nombres de variables SÍ se expanden<br />Ejemplos:<br />$a = 9;<br />print ‘a vale $a ’;<br /> // muestra a vale $a <br />print “a vale $a ”;<br /> // muestra a vale 9y avanza una línea<br />print “&lt;IMG SRC=‘logo.gif’&gt;”;<br /> // muestra &lt;IMG SRC=‘logo.gif’&gt;<br />print “&lt;IMG SRC=”logo.gif”&gt;”;<br /> // muestra &lt;IMG SRC=“logo.gif”&gt;<br />Acceso a un carácter de la cadena:<br />La forma es $inicial = $nombre{0};<br />
  18. 18. Variables<br />Las variables siempre van precedidas de un $<br />El nombre es sensible a las mayúsculas<br />Comienzan por letra o subrayado, seguido de letras, números o subrayado<br />Variables predefinidas:<br />$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,<br />$_ENV, $_REQUEST, $_SESSION<br />Ámbito: globales al fichero (excepto funciones) o locales a una función<br />Ejemplo:<br />$valor = 5;<br />print “El valor es: “ . $valor . “ ”;<br />print “El valor es: $valor ”; // ojo: comillas dobles<br />Resultado:<br /> El valor es: 5<br />
  19. 19. Variables<br />Variables variables<br />Se pueden crear nombres de variables dinámicamente<br />La variable variable toma su nombre del valor de otra variable previamente declarada<br />Ejemplo:<br /> $a = &quot;hola&quot;;<br /> $$a = &quot;mundo&quot;;<br />print &quot;$a $hola &quot;;<br />print &quot;$a ${$a}&quot;;<br /> Resultado:<br /> hola mundo<br /> hola mundo<br />
  20. 20. Variables<br /><ul><li>Ejemplo de variables variables: página internacionalizada (1)</li></ul>&lt;?PHP<br /> $mensaje_es=&quot;Hola&quot;;<br /> $mensaje_en=&quot;Hello&quot;;<br /> $idioma = &quot;es&quot;;<br /> $mensaje = &quot;mensaje_&quot; . $idioma;<br /> print $$mensaje;<br />?&gt;<br />
  21. 21. Variables<br /><ul><li>Ejemplo de variables variables: página internacionalizada (2)</li></ul>&lt;?PHP<br /> $mensaje_es=&quot;Hola&quot;;<br /> $mensaje_en=&quot;Hello&quot;;<br /> $idioma = &quot;en&quot;;<br /> $mensaje = &quot;mensaje_&quot; . $idioma;<br /> print $$mensaje;<br />?&gt;<br />
  22. 22. Constantes<br />Definición de constantes:<br />define (“CONSTANTE”, “hola”);<br />print CONSTANTE;<br />No llevan $ delante<br />Sólo se pueden definir constantes de los tipos escalares (boolean, integer, double, string)<br />
  23. 23. Expresiones y operadores<br />Operadores aritméticos: +, -, *, /, %, ++, --<br />Operador de asignación: = operadores combinados: .=, +=, etc $a = 3; $a += 5;  a vale 8 $b = “hola ”; $b .= “mundo”;  b vale “hola mundo” Equivale a $b = $b . “mundo”;<br />Operadores de comparación: ==, !=, &lt;, &gt;, &lt;=, &gt;= y otros<br />Operador de control de error: @. Antepuesto a una expresión, evita cualquier mensaje de error que pueda ser generado por la expresión<br />Operadores lógicos: and (&&), or (||), !, xor and/&& y or/|| tienen diferentes prioridades<br />Operadores de cadena: concatenación: . (punto) asignación con concatenación: .=<br />
  24. 24. Expresiones y operadores<br />Precedencia de operadores (de mayor a menor):<br />++, --<br />*, /, %<br />+,-<br />&lt;, &lt;=, &gt;, &gt;=<br />==, !=<br />&&<br />||<br />and<br />or<br />
  25. 25. Estructuras de control<br />Estructuras selectivas:<br />if-else<br />switch<br />Estructuras repetitivas:<br />while<br />for<br />foreach<br />
  26. 26. Estructuras de control<br />Estructura selectiva if-else<br />Mismo comportamiento que en C <br />Las sentencias compuestas se encierran entre llaves<br />elseif puede ir todo junto<br />if (condición)<br /> sentencia<br />if (condición1)<br /> sentencia 1<br />else if (condición2)<br /> sentencia 2<br />...<br />else if (condición n)<br /> sentencia n<br />else<br /> sentencia n+1<br />if (condición)<br /> sentencia 1<br />else<br /> sentencia 2<br />
  27. 27. Estructuras de control<br />Ejemplo de estructura selectiva if-else:<br />&lt;?PHP<br /> if ($sexo == ‘M’)<br /> $saludo = &quot;Bienvenida, &quot;;<br /> else<br /> $saludo = &quot;Bienvenido, &quot;;<br /> $saludo = $saludo . $nombre;<br /> print ($saludo);<br />?&gt;<br />
  28. 28. Estructuras de control<br />Estructura selectiva switch<br />switch (expresión)<br />{<br /> case valor_1:<br /> sentencia 1<br /> break;<br /> case valor_2:<br /> sentencia 2<br /> break;<br /> …<br /> case valor_n:<br /> sentencia n<br /> break;<br /> default<br /> sentencia n+1<br />}<br />Mismo comportamiento que en C, sólo que la expresión del case puede ser integer, float o string<br />
  29. 29. Estructuras de control<br />Ejemplo de estructura selectiva switch:<br />switch ($extension)<br />{<br /> case (&quot;PDF&quot;):<br /> $tipo = &quot;Documento Adobe PDF&quot;;<br /> break;<br /> case (&quot;TXT&quot;):<br /> $tipo = &quot;Documento de texto&quot;;<br /> break;<br /> case (&quot;HTML&quot;):<br /> case (&quot;HTM&quot;):<br /> $tipo = &quot;Documento HTML&quot;;<br /> break;<br /> default:<br /> $tipo = &quot;Archivo &quot; . $extension;<br />}<br />print ($tipo);<br />
  30. 30. Estructuras de control<br />Estructura repetitiva while<br />while (condición)<br /> sentencia<br />Mismo comportamiento que en C<br />
  31. 31. Estructuras de control<br />Ejemplo de estructura repetitiva while:<br />&lt;?PHP<br /> print (&quot;&lt;UL&gt; &quot;);<br /> $i=1;<br /> while ($i &lt;= 5)<br /> {<br /> print (&quot;&lt;LI&gt;Elemento $i&lt;/LI&gt; &quot;);<br /> $i++;<br /> }<br /> print (&quot;&lt;/UL&gt; &quot;);<br />?&gt;<br />
  32. 32. Estructuras de control<br />Estructura repetitiva for<br />for (inicialización; condición; incremento)<br /> sentencia<br />Mismo comportamiento que en C<br />
  33. 33. Estructuras de control<br />Ejemplo de estructura repetitiva for:<br />&lt;?PHP<br />print (&quot;&lt;UL&gt; &quot;);<br />for ($i=1; $i&lt;=5; $i++)<br />print (&quot;&lt;LI&gt;Elemento $i&lt;/LI&gt; &quot;);<br />print (&quot;&lt;/UL&gt; &quot;);<br />?&gt;<br />
  34. 34. Funciones<br />Ejemplo:<br />function suma ($x, $y)<br />{<br /> $s = $x + $y;<br />return $s;<br />}<br />$a=1;<br />$b=2;<br />$c=suma ($a, $b);<br />print $c;<br />
  35. 35. Funciones<br />Por defecto los parámetros se pasan por valor<br />Paso por referencia:<br />function incrementa (&$a)<br />{<br /> $a = $a + 1;<br />}<br />$a=1;<br />incrementa ($a);<br />print $a; // Muestra un 2<br />
  36. 36. Funciones<br />Argumentos por defecto<br />functionmuestranombre ($titulo = &quot;Sr.&quot;)<br />{<br />print &quot;Estimado $titulo: &quot;;<br />}<br />muestranombre ();<br />muestranombre (&quot;Prof.&quot;);<br />Salida:<br />Estimado Sr.:<br />Estimado Prof.:<br />
  37. 37. Funciones<br />Los argumentos con valores por defecto deben ser siempre los últimos:<br />functionmuestranombre ($nombre, $titulo= &quot;Sr.&quot;)<br />{<br />print &quot;Estimado $titulo $nombre: &quot;;<br />}<br />muestranombre (“Fernández”);<br />muestranombre (“Fernández”, &quot;Prof.&quot;);<br />Salida:<br />Estimado Sr. Fernández:<br />Estimado Prof. Fernández:<br />
  38. 38. Arrays = Tabla<br />¿Qué es un array?<br />Un array es sencillamente una tabla de valores.<br />Cada uno de los elementos de esa tabla se identifica por medio de un nombre (común para todos) y un índice (que diferenciaría a cada uno de ellos).<br />La sintaxis que permite definir elementos en un array es la siguiente:<br />$nombre[indice]<br />El índice puede ser un número(habría que escribirlo dentro del corchete sin comillas), una cadena (que habría que poner en el corchete encerrada entre comillas sencillas –&apos;–).<br />Cuando los índices de un array son números se dice que es escalar mientras que si fueran cadenas se le llamaría arrayasociativo.<br />
  39. 39. Arrays Unidimensionales<br />Arrays Escalares<br />Los elementos de un array escalar puede escribirse con una de estas sintaxis:<br />$a[]=valor ó $a[xx]=valor<br />En el primero se asigna los índices de forma automática, éste es un valor entero y empieza por el 0 (CERO).<br />En el segundo de los casos, seremos nosotros quienes pongamos (xx) el número correspondiente al valor del índice.<br />Arrays Asociativo<br />Los elementos de un array asociativo pueden escribirse usando la siguiente sintaxis:<br />$a[&apos;indice&apos;]=valor<br />En éste caso estamos obligados a escribir el nombre del índice que habrá de ser una cadena y debe ponerse entre comillas.<br />Tanto en este supuesto como en el anterior, es posible –y bastante frecuente– utilizar como índice el contenido de una variable. El modo de hacerlo sería:<br />$a[$ind]=valor<br />En este caso, sea cual fuere el valor de la variable $ind, el nombre de la variable nunca se pone entre comillas.<br />
  40. 40. Arrays Unidimensionales&lt;&lt; Escalares y Asociativos &gt;&gt;<br />$a[0]=“Domingo”<br />$a[“Primero”]=“Domingo”<br />
  41. 41. Arrays Bidimensionales<br />Arrays Escalares<br />Los elementos de un arraybidimensional escalar pueden escribirse usando una de estas sintaxis:<br />$a[][]=valor ó $a[xx][]=valor<br />$a[][xx]=valor ó $a[xx][yy]=valor<br />Arrays Asociativo<br />Los elementos de un array asociativo se pueden escribir usando la siguiente sintaxis:$a[&quot;indice1&quot;][&quot;indice2&quot;]=valor<br />
  42. 42. La función Array<br />$a= array (índice 0 =&gt; valor, ..... , índice n =&gt; valor,);<br />Por ejemplo:$z=array (0 =&gt; 2,1 =&gt; &quot;Pepe&quot;,2 =&gt; 34.7,3 =&gt; &quot;34Ambrosio&quot;,);producirá igual resultado que:$z[0]=2;$z[1]=&quot;Pepe&quot;;$z[2]=34.7;$z[3]=&quot;34Ambrosio&quot;; <br />
  43. 43. La función Array<br />$a= array (índice 0 =&gt; valor, ..... , índice n =&gt; valor,);<br />La función array() permite escribir arrays de cualquier dimensión utilizando la técnica de anidado. Ejemplo de array escalar:$z[0][0]=34;$z[0][1]=35;$z[0][2]=36;$z[1][0]=134;$z[1][1]=135;$z[1][2]=136;podríamos hacerlo así:$z=array( 0 =&gt; array (0 =&gt; 34, <br /> 1 =&gt; 35, 2 =&gt; 36,), 1 =&gt; array (0 =&gt; 134, 1 =&gt; 135, 2 =&gt; 136,) );<br />El anidado sucesivo permitiría generar arrays de cualquier dimensión. Ejemplo de array asociativo:$z[&quot;a&quot;][&quot;A&quot;]=34;$z[&quot;a&quot;][&quot;B&quot;]=35;$z[&quot;a&quot;][&quot;C&quot;]=36;$z[&quot;b&quot;][&quot;A&quot;]=134;$z[&quot;b&quot;][&quot;B&quot;]=135;$z[&quot;b&quot;][&quot;C&quot;]=136;que podría definirse también de esta forma: $z=array(&quot;a&quot; =&gt; array (&quot;A&quot; =&gt; 34, &quot;B&quot; =&gt; 35, &quot;C&quot; =&gt; 36, ), &quot;b&quot; =&gt; array (&quot;A&quot; =&gt; 134, &quot;B&quot; =&gt; 135, &quot;C&quot; =&gt; 136,) );<br />
  44. 44. Bibliotecas de funciones<br />Existen muchas bibliotecas de funciones en PHP<br />Algunos ejemplos:<br />Funciones de manipulación de cadenas<br />Funciones de fecha y hora<br />Funciones de arrays<br />Funciones de ficheros<br />Funciones matemáticas<br />Funciones de bases de datos<br />Funciones de red<br />Algunas bibliotecas requieren la instalación de componentes adicionales<br />Todas las funciones de biblioteca están comentadas en la documentación de PHP<br />
  45. 45. Bibliotecas de funciones<br />Funciones de manipulación de cadenas<br />explode()<br />Divide una cadena en subcadenas<br />arrayexplode (stringseparator, stringstring [, intlimit]) <br />rtrim(), ltrim(), trim()<br />Eliminan caracteres a la derecha, a la izquierda o por ambos lados de una cadena<br />stringrtrim ( stringstr [, stringcharlist]) <br />strstr()<br />Busca la primera ocurrencia de una subcadena<br />strtolower() / strtoupper()<br />Convierte una cadena a minúscula / mayúscula<br />strcmp() / strcasecmp()<br />Compara dos cadenas con/sin distinción de mayúsculas<br />strlen()<br />Calcula la longitud de una cadena<br />
  46. 46. Bibliotecas de funciones<br />Funciones de fecha y hora<br />date()<br />Formatea una fecha según un formato dado<br />Ejemplo:<br /> $fecha = date (&quot;j/n/Y H:i&quot;);<br />print (&quot;$fecha&quot;);<br /> Resultado:<br /> 26/9/2005 17:36<br />strtotime()<br />Convierte una fecha en un timestamp de UNIX<br />Ejemplo:<br /> $fecha = date (&quot;j/n/Y&quot;, strtotime(“5 april 2001&quot;));<br />print (&quot;$fecha&quot;);<br /> Resultado:<br /> 5/4/2001<br />
  47. 47. Bibliotecas de funciones<br />Funciones de arrays<br />array_count_values()<br />Calcula la frecuencia de cada uno de los elementos de un array<br />array_search()<br />Busca un elemento en un array<br />count()<br />Cuenta los elementos de un array<br />sort(), rsort()<br />Ordena y reindexa un array (r=decreciente)<br />ksort(), krsort()<br />Ordena por claves un array (r=decreciente)<br />
  48. 48. Formularios<br />Acceso a formularios HTML desde PHP<br />El formulario de PHP<br />Subida de ficheros al servidor<br />Validación de los datos de un formulario<br />
  49. 49. Acceso a formularios desde PHP<br />Desde PHP se puede acceder fácilmente a los datos introducidos desde un formulario HTML<br />Veámoslo con un ejemplo simple<br />
  50. 50. Acceso a formularios desde PHP<br />Fichero uno.php<br />&lt;HTML&gt;<br />&lt;BODY&gt;<br />&lt;FORM ACTION=”dos.php” METHOD=”POST”&gt;<br /> Edad: &lt;INPUT TYPE=”text” NAME=”edad”&gt;<br /> &lt;INPUT TYPE=”submit” VALUE=”aceptar”&gt;<br />&lt;/FORM&gt;<br />&lt;/BODY&gt;<br />&lt;/HTML&gt;<br />Fichero dos.php<br />&lt;HTML&gt;<br />&lt;BODY&gt;<br />&lt;?PHP<br />print (“La edad es: $edad”);<br />?&gt;<br />&lt;/BODY&gt;<br />&lt;/HTML&gt;<br />
  51. 51. Acceso a formularios desde PHP<br />
  52. 52. Acceso a formularios desde PHP<br />A partir de PHP 4.2.0, el valor por defecto de la directiva de PHP register_globals es off<br />Esto tiene una gran importancia sobre los formularios, ya que no es posible acceder a las variables enviadas de la manera anterior (como variables globales). En su lugar hay que utilizar la variable predefinida de PHP $_POST, escribiendo $_POST[‘edad’] en lugar de $edad<br />Se puede poner register_globals = on en el fichero de configuración php.ini, pero no es recomendable por motivos de seguridad. Una alternativa que permite hacer mínimos cambios en el código ya existente es la siguiente:<br /> $edad = $_POST[‘edad’];<br />
  53. 53. Acceso a formularios desde PHP<br />Fichero uno.php<br />&lt;HTML&gt;<br />&lt;BODY&gt;<br />&lt;FORM ACTION=”dos.php” METHOD=”POST”&gt;<br /> Edad: &lt;INPUT TYPE=”text” NAME=”edad”&gt;<br /> &lt;INPUT TYPE=”submit” VALUE=”aceptar”&gt;<br />&lt;/FORM&gt;<br />&lt;/BODY&gt;<br />&lt;/HTML&gt;<br />Fichero dos.php<br />&lt;HTML&gt;<br />&lt;BODY&gt;<br />&lt;?PHP<br /> $edad = $_POST[‘edad’];<br /> print (“La edad es: $edad”);<br />?&gt;<br />&lt;/BODY&gt;<br />&lt;/HTML&gt;<br />
  54. 54. Acceso a formularios desde PHP<br />Acceso a los diferentes tipos de elementos de entrada de formulario<br />Elementos de tipo INPUT<br />TEXT<br />RADIO<br />CHECKBOX<br />BUTTON<br />FILE<br />HIDDEN<br />PASSWORD<br />SUBMIT<br />Elemento SELECT<br />Simple / múltiple<br />Elemento TEXTAREA<br />
  55. 55. Acceso a formularios desde PHP<br />TEXT<br />Introduzca la cadena a buscar:<br />&lt;INPUT TYPE=&quot;text&quot; NAME=&quot;cadena&quot; VALUE=&quot;valor por defecto&quot; SIZE=&quot;20&quot;&gt;<br />&lt;?PHP<br /> $cadena = $_POST[‘cadena’]; <br /> print ($cadena);<br />?&gt;<br />
  56. 56. Acceso a formularios desde PHP<br />RADIO<br />Sexo:<br />&lt;INPUT TYPE=&quot;radio&quot; NAME=“sexo&quot; VALUE=“M“ CHECKED&gt;Mujer<br />&lt;INPUT TYPE=&quot;radio&quot; NAME=“sexo&quot; VALUE=“H&quot;&gt;Hombre<br />&lt;?PHP<br /> $sexo = $_POST[‘sexo’];<br /> print ($sexo);<br />?&gt;<br />
  57. 57. Acceso a formularios desde PHP<br />CHECKBOX<br />&lt;INPUT TYPE=&quot;checkbox&quot; NAME=&quot;extras[]&quot; VALUE=&quot;garaje&quot; CHECKED&gt;Garaje<br />&lt;INPUT TYPE=&quot;checkbox&quot; NAME=&quot;extras[]&quot; VALUE=&quot;piscina&quot;&gt;Piscina<br />&lt;INPUT TYPE=&quot;checkbox&quot; NAME=&quot;extras[]&quot; VALUE=&quot;jardin&quot;&gt;Jardín<br />&lt;?PHP<br /> $extras = $_POST[‘extras’];<br /> $n = count ($extras);<br /> for ($i=0; $i&lt;$n; $i++)<br /> print (“$extras[$i]&lt;BR&gt; ”);<br /> //foreach ($extras as $extra)<br /> //print (“$extra&lt;BR&gt; ”);<br />?&gt;<br />
  58. 58. Acceso a formularios desde PHP<br />BUTTON<br />&lt;INPUT TYPE=&quot;button&quot; NAME=“actualizar&quot; VALUE=&quot;Actualizar datos&quot;&gt;<br />&lt;?PHP<br />$actualizar = $_POST[‘actualizar’];<br /> if ($actualizar)<br /> print (&quot;Se han actualizado los datos&quot;);<br />?&gt;<br />
  59. 59. Acceso a formularios desde PHP<br />FILE<br />&lt;FORM ACTION=&quot;procesa.php&quot; METHOD=&quot;post“<br /> ENCTYPE=&quot;multipart/form-data&quot;&gt;<br /> &lt;INPUT TYPE=&quot;file&quot; NAME=&quot;fichero&quot;&gt;<br />&lt;/FORM&gt;<br />
  60. 60. Acceso a formularios desde PHP<br />HIDDEN<br />&lt;?PHP<br /> print(“&lt;INPUT TYPE=’hidden’ NAME=’username’ VALUE=’$usuario’&gt; ”);<br />?&gt;<br />&lt;?PHP<br /> $username = $_POST[‘username’];<br /> print ($username);<br />?&gt;<br />
  61. 61. Acceso a formularios desde PHP<br />PASSWORD<br />Contraseña: &lt;INPUT TYPE=&quot;password&quot; NAME=&quot;clave&quot;&gt;<br />&lt;?PHP<br /> $clave = $_POST[‘clave’]; <br /> print ($clave);<br />?&gt;<br />
  62. 62. Acceso a formularios desde PHP<br />SUBMIT<br />&lt;INPUT TYPE=&quot;submit&quot; NAME=&quot;enviar&quot; VALUE=&quot;Enviar datos&quot;&gt;<br />&lt;?PHP<br /> $enviar = $_POST[‘enviar’];<br /> if ($enviar)<br /> print (&quot;Se ha pulsado el botón de enviar&quot;);<br />?&gt;<br />
  63. 63. Acceso a formularios desde PHP<br />SELECT simple<br />Color:<br />&lt;SELECT NAME=“color&quot;&gt;<br /> &lt;OPTION VALUE=“rojo&quot; SELECTED&gt;Rojo<br /> &lt;OPTION VALUE=“verde&quot;&gt;Verde<br /> &lt;OPTION VALUE=“azul&quot;&gt;Azul<br />&lt;/SELECT&gt;<br />&lt;?PHP<br /> $color = $_POST[‘color’];<br /> print ($color);<br />?&gt;<br />
  64. 64. Acceso a formularios desde PHP<br />SELECT múltiple<br />Idiomas:<br />&lt;SELECT MULTIPLE SIZE=&quot;3&quot; NAME=&quot;idiomas[]&quot;&gt;<br /> &lt;OPTION VALUE=&quot;ingles&quot; SELECTED&gt;Inglés<br /> &lt;OPTION VALUE=&quot;frances&quot;&gt;Francés<br /> &lt;OPTION VALUE=&quot;aleman&quot;&gt;Alemán<br /> &lt;OPTION VALUE=&quot;holandes&quot;&gt;Holandés<br />&lt;/SELECT&gt;<br />&lt;?PHP<br /> $idiomas = $_POST[‘idiomas’];<br /> $n = count ($idiomas);<br /> for ($i=0; $i&lt;$n; $i++)<br /> print (“$idiomas[$i]&lt;BR&gt; ”);<br /> //foreach ($idiomas as $idioma)<br /> //print (“$idioma&lt;BR&gt; ”);<br />?&gt;<br />
  65. 65. Acceso a formularios desde PHP<br />TEXTAREA<br />Comentario:<br />&lt;TEXTAREA COLS=“50&quot; ROWS=“4&quot; NAME=&quot;comentario&quot;&gt;<br />Este libro me parece ...<br />&lt;/TEXTAREA&gt;<br />&lt;?PHP<br /> $comentario = $_POST[‘comentario’];<br /> print ($comentario);<br />?&gt;<br />
  66. 66. El formulario de PHP<br />La forma habitual de trabajar con formularios en PHP es utilizar un único programa que procese el formulario o lo muestre según haya sido o no enviado, respectivamente<br />Ventajas:<br />Disminuye el número de ficheros<br />Permite validar los datos del formulario en el propio formulario<br />Procedimiento:<br />si se ha enviado el formulario:<br /> Procesar formulario<br />si no:<br /> Mostrar formulario<br />fsi<br />
  67. 67. El formulario de PHP<br />Esquema de funcionamiento:<br />a)<br />b)<br />si se ha enviado el formulario:<br /> Procesar formulario<br />si no:<br /> Mostrar formulario<br />fsi<br /><ul><li>La 1ª vez que se carga la página se muestra el formulario (a)
  68. 68. La 2ª vez se procesa el formulario (b)</li></li></ul><li>El formulario de PHP<br />Para saber si se ha enviado el formulario se acude a la variable correspondiente al botón de envío. Si este botón aparece de la siguiente forma en el formulario HTML:<br />&lt;INPUT TYPE=&quot;SUBMIT&quot; NAME=&quot;enviar“ VALUE=&quot;procesar&quot;&gt;<br /> entonces la condición anterior se transforma en:<br />if (isset($enviar))<br /> o bien<br />if ($enviar == “procesar”)<br />

×