FACULTAD DE ESTUDIOS TECNOLGICOS ESCUELA DE COMPUTACIN
CICLO: 01/2014 G GU UI IA A D DE E L LA AB BO OR RA AT TO OR RI IO O # #1 1 Nombre de la Prctica: Introduccin a la Programacin web con PHP Lugar de Ejecucin: Centro de cmputo Tiempo Estimado: 2 horas con 30 minutos MATERIA: Lenguajes Interpretados en el Servidor DOCENTES: Ing. Ricardo Ernesto Elas Guandique
I. OBJETIVOS
En esta gua de prctica se pretende: 1. Conseguir que los estudiantes tengan un primer contacto con la programacin y sintaxis de PHP. 2. Desarrollar las a!ilidades necesarias para crear secuencias de comando con PHP. ". #ograr el dominio de los delimitadores y tipos de datos del lengua$e PHP. %. Dominar la &orma en que se crearn scripts PHP y del proceso para 'isuali(arlos a tra')s de un na'egador. *. #ograr la capacidad de corregir los errores detectados por el int)rprete de PHP.
II. INTRODUCCIN TERICA
Definicin de PHP PHP es+ oy en da+ un lengua$e de programacin dise,ado para desarrollar pginas -e! dinmicas que son e$ecutadas en un ser'idor -e! y+ luego+ de'ueltas en &ormato H./# al na'egador del usuario que las solicita. 0o o!stante+ en sus principios PHP &ue ms !ien un lengua$e de secuencias de comando+ guiones o scripts del lado del ser'idor desarrollado por 1asmus #erdor& en 122* con el propsito de crear un con$unto de scripts que le permitieran conta!ili(ar el n3mero de 'isitantes que accedan a su o$a de 'ida que a!a puesto en lnea para conseguir empleo o contratos de tra!a$o. De!ido a que PHP esta!a dise,ado para tra!a$ar en un am!iente -e! y que este se poda insertar directamente dentro del cdigo 456H./# propici que se 'ol'iera muy popular para procesar datos ingresados a tra')s de &ormularios. El signi&icado actual de PHP es Hypertext PreProcessor y a partir de la 'ersin %.7 es considerado todo un lengua$e de programacin y una plata&orma slida para el desarrollo de aplicaciones -e! del lado del ser'idor.
Evolucin de PHP Despu)s de alcan(ar su o!$eti'o 1asmus #erdor& li!era su cdigo+ que &ue desarrollado en lengua$e Perl primero+ y luego+ en lengua$e C. Para ese entonces se aca alusin al lengua$e como PHP89: y su signi&icado era Personal Home Page89orm :nterpreter+ siendo la 'ersin PHP89: 2.7 li!erada en 122;. En este a,o el proyecto de PHP pas de ser un proyecto personal de 1asmus #erdor& a ser un proyecto desarrollado en con$unto. En ese entonces PHP era usado en unos *7+777 dominios en :nternet+ lo que representa!a solamente el 1< del total de dominios en :nternet. #a 'ersin PHP ".7 &ue li!erada en 122= y desarrollada principalmente por dos programadores israels del :nstituto .ecnolgico de :srael 4.ecnion6 de nom!res >ndi ?utmans y @ee' @urasAy. Bna de las me$ores caractersticas de esta 'ersin era su &cil extensi!ilidad re&le$ada en la incorporacin de nue'os mdulos y soporte para tra!a$ar con una gran cantidad de !ases de datos. En su apogeo la 'ersin ".7 de PHP era utili(ada en un 17< de ser'idores en :nternet. El siguiente paso en la e'olucin de PHP &ue la creacin de un nue'o n3cleo+ escrito desde cero para me$orar su rendimiento y con'ertirse por primera 'e( en un lengua$e orientado a o!$etos. El nue'o motor &ue
Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 2 denominado @end 4acrnimo de los nom!res de sus nue'os desarrolladores Zee' y >ndy6. Esta nue'a 'ersin conocida como PHP %.7 &ue li!erada en mayo del 2777. #as nue'as prestaciones de esta 'ersin &ueron el soporte para la mayora de ser'idores -e!+ el mane$o de sesiones H..P de &orma nati'a+ &acilidades para programar utili(ando orientacin a o!$etos 4aunque mucos insisten en que esta 'ersin no es totalmente orientado a o!$etos6+ compati!ilidad con las expresiones regulares de Perl+ encriptacin+ mane$o de &ormas ms seguras para el control de las entradas de usuario. El 1" del $ulio del 277; se anunci la suspensin del soporte para la 'ersin % de PHP+ no o!stante+ se siguen li!erando me$oras para sol'entar &allos crticos a ni'el de seguridad+ es as que se lan(aron posterior a esa &eca las 'ersiones %.%.= el 1" de enero del 277= y posteriormente+ la 'ersin %.%.2 el ; de agosto del mismo a,o. #a 'ersin * de PHP &ue lan(ada el 1" de $ulio del 277%+ utili(ando el motor @end Engine 2.7 que entre otras cosas incluye: /e$or soporte para la programacin orientada a o!$etos. /e$oras en el rendimiento. /e$or soporte para /yCD#. /e$or soporte a 5/#. Coporte nati'o para CD#ite. Coporte integrado para CE>P. :teradores de datos. /ane$o de excepciones. /e$oras para la implementacin con Eracle.
0E.>: Puede consultar so!re la e'olucin de PHP en &orma detallada en el sitio o&icial de PHP en ttp:88---.pp.net o en el sitio de -iAipedia ttp:88---.-iAipedia.org.
En la actualidad se escuca y se lee muco acerca de la 'ersin F de PHP+ que toda'a no a sido li!eradaG pero que ya se pueden leer li!ros completos de esta nue'a 'ersin que estara por 'enir en prximos a,os. Entre las caractersticas que se anuncian estn: :ncorporacin de soporte para Bnicode. Eliminacin del parmetro 1E?:C.E1H?#EI>#C del pp.ini. Desaparece la caracterstica de usar />?:CHDBE.EC.
De acuerdo a las 3ltimas noticias el retraso en el lan(amiento y li!eracin de la 'ersin F de PHP se de!e principalmente a que el equipo de desarrollo decidi cam!iar el en&oque con el que se esta!a tratando las cadenas Bnicode+ lo cual a lle'ado a iniciar un nue'o planteamiento para en&rentar el pro!lema.
Utilizacin de PHP PHP se puede utili(ar para: Desarrollar aplicaciones -e! del lado del ser'idor. Este es el campo de uso ms tradicional de PHP y el que le a signi&icado una in&inidad de seguidores y adeptos. 1eali(ar scripts que se e$ecuten desde la lnea de comandos. Estos scripts se pueden e$ecutar sin la necesidad de un ser'idor -e! ni de un na'egador. Escri!ir aplicaciones de inter&a( gr&ica. Este es el campo ms nue'o en el que PHP a eco incursin+ para utili(arlo es necesario incluir la extensin PHPJ?.K que no 'iene incluida en la distri!ucin principal.
Tipo de aplicaciones que se pueden realizar con PHP PHP se puede utili(ar para crear aplicaciones de: Comercio electrnico. Educacin a distancia. 9oros de discusin. Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 3 Cistemas de ?estin de Contenidos. Ilogs. Exmenes en lnea. >plicaciones de correo electrnico.
Requerimientos para desarrollar aplicaciones con PHP Para poder reali(ar scripts de PHP en el lado del ser'idor es necesario tener instalado: El int)rprete de PHP 4C?: o mdulo6. Bn ser'idor -e! 4>pace Le! Cer'er es ideal para tra!a$ar con PHPG sin em!argo+ oy en da se puede instalar &cilmente en :nternet :n&ormation Cer'er tam!i)n6. Bn na'egador -e! 4:nternet Explorer+ Crome+ 9ire&ox+ Ca&ari y Epera son los ms di&undidos6. Bn gestor de !ases de datos 4/yCD# es la me$or opcin de !ase de datos para tra!a$ar con PHP6. Bn editor de texto+ de pre&erencia especiali(ado en sintaxis de PHP.
Sintaxis bsica! El lengua$e PHP es !astante sencillo en cuanto a su sintaxis. >lguien con experiencia en programacin con lengua$e C o Perl+ no de!era tener ning3n pro!lema de adaptacin. Cin em!argo+ ay que decir que es ms complicado que simplemente escri!ir cdigo H./#.
Delimitadores de bloque de cdi"o PHP! Existen cuatro di&erentes tipos de delimitadores de cdigo PHP. Estos son: a) Delimitadores estilo 5/#: <?php //instrucciones php ?> b) Delimitador estilo script: <script language="php"> //instrucciones php </script> c) Delimitador corto: <? //instrucciones php ?> d) Delimitador estilo >CP: <% //instrucciones php %>
Hay que mencionar que solamente los primeros dos tipos de delimitadores estn disponi!les de &orma automtica+ sin necesidad de reali(ar con&iguracin alguna en el arci'o pp.ini. #os 3ltimos dos delimitadores de!en ser a!ilitados en dico arci'o de con&iguracin. Este arci'o est en la carpeta de instalacin de PHP y de!er modi&icarlo si necesita utili(ar etiquetas cortas o las de estilo >CP y reiniciar los ser'icios del Lamp para que &uncionen.
Delimitador de sentencias! El terminador o delimitador de sentencias en PHP es el punto y coma 4G6+ el mismo que se utili(a en C8CMM. Por lo tanto+ cuando desee terminar una sentencia para iniciar otra de!e utili(ar el punto y coma. Existen dos casos en los que se puede omitir el punto y coma. Bno es cuando slo existe una instruccin PHP en el script y el otro es cuando la instruccin sea la 3ltima lnea del !loque de cdigo PHP. Ce sugiere que siempre utilice el punto y coma al &inal de cualquier instruccin+ incluso en los casos antes mencionados para e'itar cometer errores por tratar de recordar estos casos especiales. Es ms &cil recordar que siempre de!e utili(arse que recordar cuando puede omitirse.
Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 4
#omentarios! PHP utili(a los estilos de comentarios del lengua$e C8CMM y del shell de la inter&a( de comandos de Bnix y #inux. Estos son el comentario de una sola lnea N88O y el comentario de !loque N8P Q P8O+ tam!i)n utili(ados en el lengua$e C. >dems+ se puede utili(ar el comentario de una sola lnea utili(ado en el shell de Bnix y #inux+ NRO
Seamos algunos e$emplos: $% Comentario de una sola lnea T88T estilo CMM: <?php $valor = 5.2; //Este es un comentario de una sola lnea estilo C echo "El valor es: " . $valor; ?>
&% Comentario de una sola lnea TRT estilo shell: <?php $nombre = "Julio"; #Este es un comentario de una sola lnea estilo shell echo "Su nombre es:. " . $nombre; ?>
'% Comentario de !loque 4'arias lneas6 T8P Q P8T: <?php $precio = 25; $total = $precio * $POST['descuento']; /* En este caso estamos utilizando un comentario de bloque, esto quiere decir que todo este texto que est leyendo es comentario y que por tanto ser ignorado por el intrprete de PHP */ echo "El total es " . $total; ?>
Salida a pantalla! En PHP existen dos &ormas principales de mandar a imprimir texto en la 'entana de un na'egador. #a primera es utili(ando la instruccin echo y la segunda es utili(ar la &uncin printf46.
ec(o #a sentencia echo es &cil de utili(ar+ su sintaxis es la siguiente:
echo cadena_de_texto;
Donde+ cadena_de_texto puede ser un literal de cadena delimitado por comillas que pueden ser simples 4U6 o do!les 4T6. #a di&erencia ms importante es que entre comillas do!les se interpretan las 'aria!les y ciertos caracteres especiales+ incluyendo etiquetas H./#. En cam!io+ con comillas simples slo se interpretan la comilla simple y la !arra in'ertida+ por tanto+ para e'itar que sean interpretados estos caracteres de!er acer uso de secuencias de escape.
printf)% #a &uncin printf() es muco ms 'erstil que la instruccin echo. Con esta &uncin se pueden mandar a imprimir 'arios tipos de 'aria!les a la 'e(+ utili(ando cdigos de &ormato+ que indican cmo de!e ser &ormateada la 'aria!le que se desea mostrar a la salida. #a sintaxis es la siguiente:
Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 5 Donde+ cadena_de_texto es una cadena delimitada por comillas do!les que puede incluir ciertos cdigos de &ormato opcionales. Ci se desea imprimir el contenido de 'aria!les de!en especi&icarse cdigos de &ormato para &ormatear la salida adecuadamente. #os cdigos de &ormato ms importantes son:
Elemento Tipo de variable <s Cadena de caracteres. <d 03mero sin decimales. <& 03mero con decimales. <c Carcter >CC::. >unque existen otros tipos+ estos son los ms importantes.
*ariables #as 'aria!les en PHP se de&inen anteponiendo el sm!olo dlar 4V6 al nom!re de la 'aria!le. > di&erencia de otros lengua$es+ PHP posee una gran &lexi!ilidad a la ora de operar con 'aria!les. En e&ecto+ cuando de&inimos una 'aria!le asignndole un 'alor+ PHP le atri!uye un tipo. Ci por e$emplo de&inimos una 'aria!le entre comillas+ la 'aria!le ser considerada de tipo cadena: $variable = "5"; //esto es una cadena
>ora !ien+ si en el script se reali(a una operacin matemtica con esta 'aria!le+ no se lan(ar ning3n mensa$e de error sino que la 'aria!le cadena ser con'ertida automticamente en num)rica al incluirla en una expresin que in'olucre un operador matemtico: <?php $cadena = "5"; //esto es una cadena $entero = 3; //esto es un entero echo $cadena + $entero ?>
Este script dar como resultado T=T. #a 'aria!le cadena con 'alor de "5", a sido asimilada como entero 4aunque su tipo sigue siendo cadena6 para poder reali(ar la operacin matemtica. Del mismo modo+ podemos operar entre 'aria!les tipo entero y real. 0o de!emos preocuparnos de nada+ PHP se encarga durante la e$ecucin de interpretar el tipo de 'aria!le necesario para el !uen &uncionamiento del programa.
Cin em!argo+ si ay que tener cuidado en no cam!iar may3sculas por min3sculas en el identi&icador de la 'aria!le+ ya que+ en este sentido+ PHP es sensi!le. Con'iene por lo tanto+ tra!a$ar ya sea siempre en may3sculas+ o siempre en min3sculas para e'itar este tipo de malentendidos a 'eces muy di&ciles de locali(ar. Durante las prcticas de la!oratorio se con'endr que los nom!res de variables se digitarn siempre en min+sculas y las constantes en ma,+sculas.
*ariables predefinidas de PHP Estas son 'aria!les que estn disponi!les para cualquier script PHP que se e$ecute en un ser'idor -e! con el mdulo PHP instalado. >lgunas de ellas pueden ser muy 3tiles para o!tener in&ormacin del cliente o del mismo ser'idor. El comportamiento y disponi!ilidad de estas 'aria!les depende del ser'idor so!re el que se est)n e$ecutando+ espec&icamente de su con&iguracin+ de la 'ersin de PHP y de otros &actores. > partir de la 'ersin %.1.7 PHP dispone de un con$unto de matrices prede&inidas que contienen 'aria!les del ser'idor -e!+ 'aria!les del entorno y 'aria!les de entrada del usuario. Estas matrices son automticamente glo!ales o+ tam!i)n llamadas+ superglo!ales. Entre estas matrices se pueden mencionar:
-./012/S+ es una matri( asociati'a que contiene una re&erencia a cada 'aria!le disponi!le en el m!ito de las 'aria!les glo!ales del script. #a &orma de acceder a las 'aria!les es utili(ando el nom!re de las 'aria!les glo!ales entre comillas 4do!les o simples6 como ndice de la matri(. Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 6
-3SER*ER+ es una matri( asociati'a que contiene in&ormacin como ca!eceras+ rutas y u!icaciones de scripts. #as entradas de esta matri( se crean en el ser'idor -e!. 0o ay garanta alguna de que el ser'idor 'aya a pro'eer estos 'alores realmente. Dentro de las entradas que pueden encontrarse en esta matri( se pueden mencionar: UPHPHCE#9U: que proporciona el nom!re del arci'o de script e$ecutndose actualmente+ relati'o a la ra( del documento. UCE1SE1H>DD1U: que proporciona la direccin :P del ser'idor -e! en el que se est e$ecutando el script actual. UCE1SE1H0>/EU: que proporciona el nom!re del ser'idor -e! !a$o el que est siendo e$ecutado el script actual. Ci se e$ecuta en un ost 'irtual de'ol'er el nom!re de&inido para tal ost. UCC1:P.H9:#E0>/EU: que proporciona la ruta a!soluta del nom!re del script que est siendo e$ecutado actualmente.
Existen mucas ms entradas para la matri( VHCE1SE1 que pueden consultar en el manual o&icial de PHP.
-3.ET+ que es una matri( asociati'a que contiene 'aria!les proporcionadas al script por medio del m)todo H..P ?E.. Esto signi&ica que cuando de&ine que las 'aria!les de un &ormulario sern pasadas por el m)todo ?E.+ es en esta matri( donde se almacenarn sus 'alores de acuerdo al nom!re que asign al control de &ormulario H./#.
-3P0ST+ es una matri( asociati'a que contiene las 'aria!les pasadas al script a tra')s de m)todo H..P PEC.. >l igual que VH?E.+ cuando se de&ine que el m)todo de paso de 'alores pro'enientes de un &ormulario ser PEC.+ la matri( contendr dicos 'alores y para tener acceso a ellos de!er usar como lla'e de la matri( el nom!re que le dio al control de &ormulario.
-3#0045E+ es una matri( asociati'a que contiene las 'aria!les pasadas al script mediante cooAies H..P.
-3SESS506+ es una matri( asociati'a que contiene las 'aria!les de sesin disponi!les en el script actual.
-3RE7UEST+ es una matri( asociati'a que contiene cualquiera de los contenidos de las matrices superglo!ales VH?E.+ VHPEC. y VHCEEK:E.
Existen otras matrices superglo!ales que se de$an como in'estigacin al estudiante.
E$emplo: <?php $cad = "El script que estás ejecutando: " . $_SERVER['PHP_SELF'] . ". "; $cad .= "En el servidor: " . $_SERVER["SERVER_NAME"] . ".<br>"; echo "<h3>" . $cad . "</h3>"; ?>
#onstantes! Sintaxis Ce puede de&inir una constante utili(ando la &uncin de&ine46. Bna 'e( de&inida+ no se puede modi&icar ni eliminar. Clo se puede de&inir como constantes 'alores escalares 4!oolean+ integer+ &loat y string6. Para o!tener el 'alor de una constante 3nicamente es necesario especi&icar su nom!re. > di&erencia de las 'aria!les+ no se tiene que especi&icar el pre&i$o V. .am!i)n se puede utili(ar la &uncin constant46+ para o!tener el 'alor de una constante+ en el caso de que queramos expresarla de &orma dinmica Bsa la &uncin getHde&inedHconstants46 parar o!tener una lista de todas las constantes de&inidas.
Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 7 6ota8 /as constantes , las variables )"lobales% se encuentran en un espacio de nombres distinto! Esto implica que por e9emplo TRUE , -TRUE son diferentes!
Cuando se utili(a una constante que toda'a no a sido de&inida+ PHP asume que se est re&iriendo al nom!re de la constante en s. Ce lan(ar un a'iso si esto sucede. Bsa la &uncin de&ine46 para compro!ar la existencia de dica constante. Estas son las di&erencias entre constantes y 'aria!les: #as constantes no son precedidas por un sm!olo de dlar 4V6 #as constantes solo pueden ser de&inidas usando la &uncin46 de&ine + nunca por simple asignacin #as constantes pueden ser de&inidas y accedidas sin tener en cuenta las reglas de alcance del m!ito. #as constantes no pueden ser rede&inidas o eliminadas despu)s de esta!lecerseG y #as constantes solo puede al!ergar 'alores escalares
Tratamiento de cadenas Existen tres &ormas de asignar cadenas a una 'aria!le en PHP+ que son: delimitndolas entre comillas do!les+ entre comillas simples y usando delimitadores tipo Perl 4HereDoc6: Para asignar a una 'aria!le una cadena usando comillas dobles de!e acer una declaracin de este tipo: $cadena = "Esta es la informacin de mi variable";
Para mostrar el 'alor de una 'aria!le pueden usarse la instruccin echo o la &uncin print(): echo $cadena //obtendramos: Esta es la informacin de mi variable; echo "Esta es la informacin de mi variable"; //dara el mismo resultado
>lgo importante con respecto a los delimitadores de comillas do!les es que interpretan 'aria!les si son colocadas dentro de comillas do!les. En terminologa de programacin+ se dice que son interpoladas. Por e$emplo: <?php $cadena1 = "Aplicaciones"; $cadena2 = " Prcticas de Software II"; $cadena3 = "Materia: $cadena1 $cadena2"; echo $cadena3 //El resultado es: Aplicaciones Prcticas de Software II ?>
.am!i)n podemos introducir 'aria!les dentro de nuestra cadena lo cual nos puede ayudar muco en el desarrollo de nuestros scripts. #o que 'eremos no es el nom!re+ sino el 'alor que almacena la 'aria!le: <? $a=55; $mensaje = "Tengo $a aos"; echo $mensaje //El resultado es: "Tengo 55 aos" ?>
Puede ser que en lugar de imprimir el 'alor de la 'aria!le+ lo que se desee es imprimir el nom!re mismo de la 'aria!le. >l colocarlo entre comillas do!les+ como se i(o en el e$emplo anterior+ no sera posi!le. #a 3nica solucin sera encerrarlo entre comillas simples o utili(ar cdigo o secuencias de escape en la cadena delimitada por comillas do!les. Como se muestra a continuacin: Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 8 <? $a=55; $mensaje = "Tengo \$a aos"; echo $mensaje //El resultado es: "Tengo 55 aos" ?>
Ci se usan comillas simples de!e reali(ar una instruccin como la siguiente: $cadena = 'Coloque ac su cadena';
Para poder mostrar una comilla simple dentro de una cadena delimitada por comillas simples de!e utili(arse una secuencia de escape colocando el sm!olo de !arra in'ertida antes de ella. >s: $cadena='Todos lo llamaban \'el mesas\''; #os 3nicos caracteres que de!en escaparse cuando se encierran entre comillas simples son la comilla simple y la !arra in'ertida. Etra &orma de delimitar cadenas es mediante el uso de la sintaxis (eredoc ):;;;:%. De!e indicarse un identi&icador despu)s de la secuencia WWW+ luego la cadena+ y luego el mismo identi&icador para cerrar la cita. <? $frase = <<<ANILLOS "Hay muchos vivos que merecen la muerte y hay muchos muertos que merecen la vida, quin eres t para impartir ese derecho?" Gandalf. ANILLOS; echo $frase; ?> El identi&icador de cierre de!e comen(ar en la primera columna de la lnea. >simismo+ el identi&icador usado de!e seguir las mismas reglas que cualquier otra etiqueta en PHP: de!e contener solo caracteres al&anum)ricos y de su!rayado+ y de!e iniciar con un caracter noJdgito o de su!rayado. Bnos aspectos importantes a considerar acerca de esta sintaxis son: #a lnea con el identi&icador de cierre no puede contener otros caracteres+ excepto qui(s por un puntoJyJ coma 4G6. Esto quiere decir en especial que el identi&icador no de!e usar sangra+ y no de!e a!er espacios o ta!uladores antes o despu)s del puntoJyJcoma. Es importante tam!i)n notar que el primer caracter antes del identi&icador de cierre de!e ser un salto de lnea+ tal y como lo de&ina su sistema operati'o. Esto quiere decir Xr en /acintos+ por e$emplo.
#di"os o secuencias de escape En PHP+ al igual que en otros lengua$es existen ciertos caracteres que generan pro!lemas cuando se encuentran dentro de cadenas+ de!ido a que dentro del lengua$e se interpretan de alguna &orma especial. Para poder 'isuali(ar correctamente dicos caracteres en una operacin de salida se utili(an secuencias de escape que in'olucran dicos caracteres especiales. #a siguiente ta!la muestra 'arios de estos caracteres especiales con su correspondiente secuencia de escape: Secuencia de escape Si"nificado X! Espacio acia atrs 4backspace6 X& Cam!io de pgina 4form feed6 Xn Cam!io de lnea 4line feed6 Xr 1etorno de carro 4carriage return6 Xt .a!ulacin ori(ontal XX Iarra in'ersa 4backslash6 XU Comilla simple Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 9 XT Comilla do!le XV Carcter dlar 4V6 XRRR Carcter >CC:: octal 4R: 7J;6 XxRR Carcter >CC:: exadecimal 4R: 7J96
0peradores #os operadores son sm!olos especiales que se utili(an en los lengua$es de programacin para poder reali(ar operaciones con las expresiones. Como lo que se o!tiene en dicas operaciones es un 'alor+ el resultado tam!i)n ser una expresin. #os operadores se pueden clasi&icar como: unarios 4que operan so!re un 3nico 'alor o expresin6+ !inarios 4que operan so!re dos 'alores o expresiones6 y ternarios 4que consta de tres 'alores o expresiones6 En PHP existen di'ersos tipos de operadores y se pueden clasi&icar de la siguiente manera: aritm)ticos+ lgicos+ de cadena+ de e$ecucin+ de comparacin+ de asignacin+ de incremento8decremento+ etc.
0peradores aritm<ticos Con los operadores que permiten reali(ar operaciones num)ricas so!re las 'aria!les y expresiones. Ce muestran en la siguiente ta!la:
Smbolo Nombre Ejemplo Resultado + Adicin $a + $b Suma de $a y $b. - Substraccin $a - $b Diferencia entre $a y $b. * Multiplicacin $a * $b Producto de $a y $b. / Divisin $a / $b ociente de $a y $b. ! Mdulo $a ! $b "esto de $a dividido por $b.
De!e tener en cuenta que el operador de di'isin N8O de'uel'e un n3mero con punto &lotante en todos los casos+ incluso cuando los dos operandos son enteros.
0peradores l"icos #os operadores lgicos se utili(an para reali(ar comparaciones entre expresiones. Pueden com!inarse para &ormar expresiones de comparacin ms comple$as. #os operadores lgicos de PHP se muestran en la siguiente ta!la: Smbolo Nombre Ejemplo Resultado and # $a and $b TRUE si tanto $a como $b son TRUE. or $ $a or $b TRUE si cual%uiera de $a o $b es TRUE. &or $ e&clusivo '(or) $a &or $b TRUE si $a o $b es TRUE* pero no ambos. + ,o + $a TRUE si $a no es TRUE. -- # $a -- $b TRUE si tanto $a como $b son TRUE. .. $ $a .. $b TRUE si cual%uiera de $a o $b es TRUE.
0peradores de cadena Estos operadores se utili(an en com!inacin con 'aria!les o expresiones de cadena. #os dos operadores 'lidos en PHP para operar con cadenas son el operador de concatenacin que se representa con un sm!olo de punto 4.6 y el operador de asignacin so!re concatenacin+ representado por un punto seguido de un sm!olo de igual que 4.Y6. Sea la siguiente ta!la:
Smbolo Nombre Ejemplo Resultado . oncatenacin $var/012ola 34 $var501mundo14 $saludo0$var/ . $var54 Se imprimir en pantalla: Hola mundo Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 10 Smbolo Nombre Ejemplo Resultado .0 oncatenacin y asi6nacin $var/012ola mundo 14 $var/.07cruel y perverso74 Se imprimir en pantalla: Hola mundo cruel y perverso 60T28 0bserve que no debe olvidar colocar espacios en blanco al terminar o al comenzar la subcadena para que no queden palabras unidas!
0peradores de comparacin Ce utili(an para 'eri&icacin de condiciones en ciertas expresiones+ so!re todo en expresiones condicionales. En la siguiente ta!la se muestra la lista completa de ellos:
0peradores de asi"nacin Existe un solo operador !sico de asignacin+ que se lee Nse asigna aO y no Nes igual aO+ como podra parecer. >dems de este operador de asignacin existen operadores com!inados con operador de asignacin que tam!i)n se mostrarn en esta parte. Sea la siguiente ta!la:
0peradores de e9ecucin PHP soporta un operador de e$ecucin: las comillas in'ertidas 4ZZ6. [0ote que no se trata de comillas sencillas\ PHP intentar e$ecutar el contenido entre las comillas como si se tratara de un comando del int)rprete de comandosG su salida ser de'uelta 4es decir+ no ser simplemente 'olcada como salidaG puede ser asignada a una 'aria!le6. E$emplo: <?php $salida = `ls - al`; echo "<pre>$salida</pre>"; ?>
0peradores de incremento=decremento Estos operadores son+ en realidad+ una me$ora a los operadores aritm)ticos de adicin y sustraccin+ para el caso muy particular en que uno de los operandos sea la unidad. Existen 'ariantes para este operador dependiendo si primero se ace la asignacin y luego el incremento8decremento o 'ice'ersa. Seamos la Smbolo Nombre Ejemplo Resultado 00 86ual $a 00 $b TRUE si $a es i6ual a $b. 000 8d9ntico $a 000 $b TRUE si $a es i6ual a $b* y son del mismo tipo. 'P2P : o superior) +0 Diferente $a +0 $b TRUE si $a no es i6ual a $b. ;< Diferente $a ;< $b TRUE si $a no es i6ual a $b. +00 ,o id9nticos $a +00 $b TRUE si $a no es i6ual a $b* o si no son del mismo tipo. 'P2P : o superior) ; Menor %ue $a ; $b TRUE si $a es estrictamente menor %ue $b. < Mayor %ue $a < $b TRUE si $a es estrictamente mayor %ue $b. ;0 Menor o i6ual %ue $a ;0 $b TRUE si $a es menor o i6ual %ue $b. <0 Mayor o i6ual %ue $a <0 $b TRUE si $a es mayor o i6ual %ue $b. Smbolo Nombre Ejemplo 0 Se asi6na a $a 0 32ola1 .0 oncatenacin y asi6nacin $a .0 3 mundo1 +0 Adicin y asi6nacin $a += $b -0 Sustraccin y asi6nacin $a -= $b *0 Multiplicacin y asi6nacin $a *= $b /0 Divisin y asi6nacin $a /= $b !0 Mdulo y asi6nacin $a %= $b Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 11 siguiente ta!la:
III. MATERIALES Y EQUIPO
Para la reali(acin de la gua de prctica se requerir lo siguiente: 6o! Requerimiento #antidad 1 ?ua de prctica R1: :ntroduccin a la programacin -e! con PHP 1 2 Computadora con LampCer'er y PHP Designer instalado 1 " /emoria BCI o disco &lexi!le 1
IV. PROCEDIMIENTO
:0D:C>C:E0EC: 1. Para reali(ar la primera gua de prctica de!e estar consciente que para poder 'er las pginas con cdigo PHP+ primero de!e ecar a andar el programa que se utili(ar como ser'idor -e!. Para ello e$ecute el LampCer'er+ que incluye el ser'icio necesario para poner en &uncionamiento el >pace. 2. #os arci'os creados con el editor Cu!lime .ext o PHP Designer 277; de!en guardarse en una u!icacin especial+ conocida como carpeta -e!+ que es donde se almacenan todas las pginas que sern administradas por el ser'idor -e!. Esta carpeta en la instalacin del LampCer'er es ---. I3squela en la carpeta -amp+ dentro de ella estar u!icada la carpeta ---. ". Como ocuparemos para todo el ciclo esta carpeta+ ser !uena idea crear una carpeta para la materia+ que llamaremos lis 4#engua$es :nterpretados en el Cer'idor6. En esta carpeta almacenaremos en una carpeta por prctica+ cada uno de los scripts que 'ayamos a reali(ar durante las prcticas de la!oratorio de este ciclo.
E9ercicio >$8 Smbolo Nombre Finalidad ++$var Pre-incremento 8ncrementa el valor de $var en / y lue6o retorna el nuevo valor de $var $var++ Post-incremento "etorna primero el valor actual de $var y despu9s incrementa este valor en / --$var Pre-decremento Decrementa el valor de $var en / y lue6o retorna el nuevo valor de $var $var-- Post-decremento "etorna primero el valor actual de $var y despu9s decrementa este valor en / Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 12 1. Btilice Cu!lime.ext o el PHP Designer 277; para digitar el siguiente cdigo que mostrar cmo se inserta cdigo PHP dentro de un documento -e! reali(ado con lengua$e H./#: >rci'o 1: parte(tmlp(p!p(p <!DOCTYPE html> <html lang="es"> <head> <title>Scripts con (X)HTML y PHP</title> <script type="text/javascript" src="js/modernizr.custom.lis.js"></script> <!-- Definiendo una hoja de estilo local --> <link type="text/css" rel="stylesheet" media="screen" href="css/htmlphp.css"> </head> <body> <!-- Parte de la pgina web generada con HTML --> <section id="html"> <article> <p> <!DOCTYPE html><br /> <html><br /> ... </p> <p>Parte de HTML normal.</p> <p> </html> </p> </article> </section> <?php //Parte de la pgina generada con lenguaje PHP echo "<section id=\"php\">\n"; echo "<article>\n"; echo "<p><?php<br />"; echo "...<br />"; echo "Parte con PHP.</p>"; echo "<p>?></p>"; echo "\n</article>\n"; echo "</section>\n"; ?> </body> </html>
>rci'o 2: (tmlp(p!css body { background-image:url(../img/brickwall.jpg); background-color:Bisque; /* rgb(255,228,196) o #FFE4C4 */ background-repeat:repeat-x; font-size:16px; margin-top:14%; margin-left:8%; margin-right:8%; }
#php { background:OrangeRed; border-radius:0.5em; margin:1em auto; Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 13 width:80%; }
2. ?uarde el primer arci'o con el nom!re parte(tmlp(p!p(p en la carpeta predeterminada para los documentos -e! de su ser'idor -e! >pace. En una instalacin predeterminada del LampCer'er de!era ser: C:X-ampX---. Ci usted modi&ic esta carpeta de!e asegurarse de que sea en la carpeta correcta de los documentos -e!.
". Para 'isuali(ar el resultado en el na'egador 'eri&ique que est) iniciado el ser'idor -e! >pace. Ci lo est de!er o!ser'ar en el rea de estado de la !arra de tareas de Lindo-s 4donde aparece la ora6 el icono del ?ampServer en &uncionamiento:
%. >!ra su na'egador pre&erido y digite en la !arra de direccin la siguiente B1#: http://localhost/lis/ciclo012014/guias/guia1/ejercicio1/partehtmlphp.php Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 14
*. E!ser'e la pgina PHP que aca!a de cargarse en el na'egador y 'eri&ique que el resultado es el esperado. Es recomenda!le que 'eri&ique en todos los na'egadores disponi!les: Crome+ 9ire&ox+ :nternet Explorer+ Ca&ari y Epera
60T28 De a(ora en adelante solamente se le proporcionar el cdi"o HT@/ combinado con PHP que debe di"itarA para volver a car"ar una p"ina en el nave"ador ,a sabe cules deben ser los pasos a se"uir! /o mismo ser con cualquier otro arc(ivo adicional como (o9a de estiloA "uin o secuencia de comando de BavaScriptA etc!
E9ercicio >&8 Primer arc(ivo8 delimitadores!p(p <!DOCTYPE html> <html lang="es"> <head> <title>Delimitadores de código PHP</title> <link type="text/css" rel="stylesheet" href="css/delimitadores.css" /> <script type="text/javascript" src="js/modernizr.custom.lis.js"></script> </head> <body> <h1>Esto es HTML</h1> <?php echo "<section class=\"left\">\n"; echo "<article>\n"; echo "<p class=\"xmltag\">"; echo "Este texto está escrito en PHP, utilizando las etiquetas más "; echo "usuales y recomendadas para delimitar el código PHP, que son: "; echo "<?php ... ?>.<br>\n"; echo "</p>"; echo "</article>\n"; echo "</section>\n"; Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 15 ?> <script language="php"> echo "<section class=\"right\">\n"; echo "<article>\n"; echo "<p class=\"htmltag\">"; echo "A pesar de que estas lneas estn escritas dentro de un script PHP, "; echo "Estn enmarcadas dentro de etiquetas HTML: "; echo "<script> ... </script>"; echo "</p>"; echo "</article>\n"; echo "</section>\n"; </script> <? echo "<section class=\"left\">\n"; echo "<article>\n"; echo "<p class=\"shorttag\">"; echo "Este texto también está escrito con PHP, utilizando las etiquetas "; echo "cortas, <br>\n que son: <? ... ?>"; echo "</p>"; echo "</article>\n"; echo "</section>\n"; ?> <% echo "<section class=\"right\">\n"; echo "<article>\n"; echo "<p class=\"asptag\">"; echo "Este texto está escrito en PHP, como los dos ejemplos anteriores. "; echo "Sin embargo, se ha delimitado con etiquetas estilo ASP: "; echo "<% ... %>.<br>\n"; echo "</p>"; echo "</article>\n"; echo "</section>\n"; %> <section class="paragraph"> <article> <p> Usted está en la libertad de decidir cuál de estos delimitadores utilizará en sus scripts PHP. Sin embargo, la recomendación es utilizar siempre el primer tipo de delimitadores, conocido como delimitador estilo XML, a menos que no tenga otra opción. </p> </article> </section> </body> </html>
h1 { text-align:center; font-family:"Bookman Old Style"; font-weight:900; font-size:22pt; color:Lavender; border:outset 10px Lavender; Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 16 background-color:DarkViolet; }
p { font-family:"Franklin Gothic Demi"; font-size:12pt; color:#9D873B; }
0E.>: Cuando e$ecute el segundo e$ercicio en el na'egador+ notar algo raro+ parte del cdigo no es interpretado correctamente. Esto ya se coment en la :ntroduccin terica de la gua y en la presentacin so!re introduccin al lengua$e PHP. >cuda a este recurso para acer &uncionar los delimitadores de cdigo PHP que no estn operando. En las imgenes que se muestran a continuacin notar cmo se 'e la pgina antes y despu)s de a!ilitar am!os estilos de delimitadores. Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 17
E9ercicio >'8 El si"uiente e9emplo muestra cmo opera PHP los distintos tipos de datos que mane9a )enterosA flotantesA cadenas , booleanos% , el uso de constantes ocupando variables locales definidas directamente en el cdi"o! Primer arc(ivo8 tiposdatos!p(p <!DOCTYPE html> <html lang="es"> <head> <title>Conversión de cadenas</title> <link type="text/css" rel="stylesheet" media="screen" href="css/conversion.css" /> <script type="text/javascript" src="js/modernizr.custom.lis.js"></script> </head> <body> <?php define("SALTO", "\n"); $cad = "10 metros"; $str = "3D"; $val = 20.5; $num = 7;
Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 20
E9ercicio >C8 Este e9emplo muestra el uso de los distintos tipos de operadores de cadenaA en especial el delimitador conocido como HERE D0#! Primer arc(ivo8 cadenas!css body { background:rgb(210,210,210) url(../img/redwall.gif) repeat-x fixed; margin-top:100px; }
p { font-family:Georgia; font-weight:600; font-size:12pt; color:Brown; }
Se"undo arc(ivo8 cadenas!p(p <!DOCTYPE html> <html lang="es"> <head> <title>Tipos de datos en PHP</title> <link type="text/css" rel="stylesheet" media="screen" href="css/cadenas.css" /> <script language="JavaScript" type="text/javascript" src="js/modernizr.custom.lis.js"></script> </head> <body> <?php $title = "Tipos de datos en PHP"; printf("<header>"); printf("<h1>$title</h1><hr />"); printf("</header>"); //Ejemplos con nmeros enteros $a = 536; # nmero decimal $a = -258; # un nmero negativo $a = 0123; # nmero octal (equivalente al 83 decimal) $a = 0x12; # nmero hexadecimal (equivalente al 18 decimal) echo "<p>$a<br />\n"; //Ejemplos con nmeros con parte decimal Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 21 $a = 1.579; $a = 1.2e3; echo $a."</p><br />\n"; //Ejemplos con cadenas de texto $proverbio = <<<PRO <I> "Aquel que pregunta es un tonto por un momento, pero el que no pregunta, permanecer tonto para siempre." </I> PRO; $str = <<<EOD <article> <p> Este es un ejemplo de cadena expandiendo mltiples lneas usando sintaxis de documento incrustado, conocida tambin como sintaxis HERE DOC usada en el lenguaje Perl.<br> $proverbio. </p> </article> EOD; $str4 = "<header>\n"; $str4 .= "<span>Este es el curso de "; $str4 .= "Lenguajes Interpretados en el Cliente.</span>\n"; printf("<h3>Bienvenida: %s</h3>\n</header>", $str4); echo "<section>\n"; echo "<article>\n"; echo $str; echo "</article>\n"; echo "</section>\n"; ?> </body> </html>
E9ercicio >F8 El si"uiente e9emplo muestra el uso de las diversas variables predefinidas de PHPA al"unas de ellas conocidas como matrices super"lobales , otras como variables de servidor! Primer arc(ivo8 varpredefinidas!p(p <!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8" /> <title>Variables predefinidas</title> <link type="text/css" rel="stylesheet" href="css/predefinidas.css" media="screen" /> <script type="text/javascript" src="js/modernizr.custom.lis.js"></script> Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 23 </head> <body> <?php printf("<div id=\"contenedor\">\n"); printf("<header>\n"); printf("<img src=\"img/bg-header.png\" alt=\"Variables predefinidas\" title=\"Variables predefinidas\"\n"); printf("</header>\n"); printf("<section>\n"); printf("<article>\n"); printf("<p>En esta pgina se ilustrar cmo se utilizan algunas variables predefinidas\n"); printf("en el lenguaje PHP. Estas variables estn disponibles para cualquier script\n"); printf("que se ejecute y las utilice.</p>\n"); printf("<p>El valor de estas variables depender del servidor sobre el que se ejecuten, \n"); printf("de la versin de este y de la configuracin que tenga.</p>\n"); printf("<h3>Ejemplos de utilizacin:</h3>\n"); printf("<ul>\n<li>El nombre del servidor donde se est ejecutando este script es: <b><i>\$_SERVER['SERVER_NAME'] = %s</i></b></li>\n", $_SERVER['SERVER_NAME']); printf("<li>El directorio raz de documentos en el servidor web es: <b><i>\$_SERVER['DOCUMENT_ROOT'] = %s</i></b></li>\n", $_SERVER['DOCUMENT_ROOT']); printf("<li>El software que est utilizando es: <b><i>\$_SERVER['SERVER_SOFTWARE'] = %s</i></b></li>\n", $_SERVER['SERVER_SOFTWARE']); printf("<li>El protocolo que se est utilizando para ver esta pgina es: <b><i>\$_SERVER['SERVER_PROTOCOL'] = %s</i></b></li>\n", $_SERVER['SERVER_PROTOCOL']); printf("<li>El puerto de la mquina usado por el servidor web para la comunicacin HTTP es: <b><i>\$_SERVER['SERVER_PORT'] = %s</i></b></li>\n", $_SERVER['SERVER_PORT']); printf("<li>La direccin IP de su computadora es: <b><i>\$_SERVER['REMOTE_ADDR'] = %s</i></b></li>\n", $_SERVER['REMOTE_ADDR']); printf("<li>La ruta del script actual en el servidor es: <b><i>\$_SERVER['SCRIPT_NAME'] = %s</i></b></li>\n", $_SERVER['SCRIPT_NAME']); printf("<li>La ruta absoluta del script que se est ejecutando actualmente: <b><i>\$_SERVER['SCRIPT_FILENAME'] = %s</i></b></li>\n", $_SERVER['SCRIPT_FILENAME']); printf("<li>La cadena de consulta de la peticin de la pgina (si existe) es: <b><i>\$_SERVER['QUERY_STRING'] = %s</i></b></li>\n", $_SERVER['QUERY_STRING']); printf("<li>La URI que se emple para acceder a la pgina es: <b><i>\$_SERVER['REQUEST_URI'] = %s</i></b></li>\n", $_SERVER['REQUEST_URI']); printf("<li>El puerto empleado por el equipo del usuario para comunicarse con el servidor es: <b><i>\$_SERVER['REMOTE_PORT'] = %s</i></b></li>\n", $_SERVER['REMOTE_PORT']); printf("<li>El idioma definido por el navegador de tu computadora es: <b><i>\$_SERVER['HTTP_ACCEPT_LANGUAGE'] = %s</i></b></li>\n", $_SERVER['HTTP_ACCEPT_LANGUAGE']); printf("<li>Ests viendo esta pgina en un navegador: <b><i>\$_SERVER['HTTP_USER_AGENT'] = %s</i></b></li>\n", $_SERVER['HTTP_USER_AGENT']); printf("<li>El puerto de comunicacin con el servidor de la computadora que ests utilizando es: <b><i>\$_SERVER['REMOTE_PORT'] = %s</i></b></li>\n", $_SERVER['REMOTE_PORT']); printf("<li>La ubicacin y el nombre del archivo que contiene el script que ests ejecutando es: <b><i>\$_SERVER['PHP_SELF'] = %s</i></b></li>\n</ul>", $_SERVER['PHP_SELF']); printf("</article>\n"); printf("</section>\n"); printf("</div>\n"); ?> </body> </html>
Se"undo arc(ivo8 predefinidas!css #contenedor { Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 24 margin: 0 auto; width: 86%; }
E9ercicio >G8 Este e9ercicio muestra el uso de una instruccin condicional simpleA basada en el (ec(o de si una persona que compra un boleto para el cine es estudiante o no para aplicarle un descuento en la compra de dic(o boleto! Primer arc(ivo8 estudiante!(tml <!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8" /> <title>Cálculo de precio</title> <link type="text/css" rel="stylesheet" href="css/estudiante.css" /> </head> <body> <header> <h1>Entrada al cine</h1> </header> <section> <article> <form name="frmcalculo" action="estudiante.php" method="POST"> <fieldset> <legend>Datos del estudiante:</legend> <label for="edad">Edad:</label> <input type="text" name="edad" id="age" maxlength="2" class="txt" pattern="\d{1,2}" required /><br /> <label for="pelicula">Película:</label> <input type="text" name="pelicula" id="movie" maxlength="100" class="txt" required /><br /> <label for="estudiante">Estudiante:</label><br /> <input type="radio" name="estudiante" value="Si" checked="checked" class="radio" /> Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 25 <label class="radio">Si</label> <input type="radio" name="estudiante" value="No" class="radio" /> <label class="radio">No</label><br /> <input type="submit" name="enviar" value="Calcular" class="boton" /> <input type="reset" name="reset" value="Restablecer" class="boton" /> </fieldset> </article> </form> </section> </body> </html>
input { background-color:#FAFAFA; border:1px solid #999; color:#000; display:block; float:right; Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 27 font:normal 0.8em Garamond; width:200px; }
table#datos td.dato { border:1px solid rgb(225,190,25); Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 28 padding:5px; text-align:center; }
* html legend { position:relative; top:-0.9em; z-index:10; }
E9ercicio >H8 Este +ltimo e9emplo ilustrar cmo obtener los datos in"resados en un formulario , procesarlos con un script PHP sencillo queA de momentoA no utilizar nin"una validacin del lado del servidorA solamente validacin del lado del cliente con BavaScript que ,a conoce! En posteriores prcticas abordaremos ese tema! Primer arc(ivo8 in"resodatos!(tml <!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8" /> <title>Formulario de ingreso de datos</title> <link type="text/css" rel="stylesheet" media="screen" href="css/forms.css" /> <script type="text/javascript" src="js/validacion.js"></script> <script type="text/javascript" src="js/modernizr.custom.lis.js"></script> </head> <body> <header> <h1>Ingreso de datos</h1> </header> <section> <article> <form action="procesar.php" method="POST"> <label>Cliente:</label> <input type="text" name="client" onkeypress="return charsOnly(this, event)" /> <label>Producto:</label> <input type="text" name="product" /> <label>Precio:</label> <input type="text" name="price" onkeypress="return numbersOnly(this, event)" /> <label>Cantidad:</label> <input type="text" name="quantity" onkeypress="return integersOnly(this, event)" /> <input type="submit" value="Enviar" name="submit" class="submit" /> </form> </article> </section> </body> </html> Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 29
Se"undo arc(ivo8 forms!css body { font-size: 16px; }
#hor-zebra .thead th { Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 32 padding: 10px 8px; color: #fcec33; font:Bold 12px "Lucida Sans Unicode", Helvetica, Sans-Serif; } #hor-zebra .odd { background: #e8edff; }
7uinto arc(ivo8 validacion!9s // Dejar pasar nicamente nmeros enteros y bloquear cualquier otra caracter function integersOnly(field, event){ var key, keychar; //showChar(event); //Mostrar la tecla presionada if(window.event) //Todos los navegadores menos Netscape 4.0 o inferior key = window.event.keyCode; else if(event) //Netscape 4.0 o inferior key = event.which; else return true; keychar = String.fromCharCode(key); // Comprobar caracteres especiales como espacio en blanco // luego comprobar nmeros if((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 13) || (key == 27)) return true; else if((("0123456789").indexOf(keychar) > -1)){ window.status = ""; return true; } else{ window.status = "Este campo solo acepta nmeros"; return false; } }
// Dejar pasar nicamente nmeros enteros y el punto decimal, si se ha // ingresado una sola vez en el campo de formulario function numbersOnly(field, event){ var key, keychar; //showChar(event); //Mostrar la tecla presionada if(window.event) //Todos los navegadores menos Netscape 4.0 o inferior key = window.event.keyCode; else if(event) //Netscape 4.0 o inferior key = event.which; else return true; keychar = String.fromCharCode(key); // Comprobar caracteres especiales como espacio en blanco // luego comprobar nmeros if((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 13) || (key == 27) || (key == 190)) return true; else if((("0123456789.").indexOf(keychar) > -1)){ window.status = ""; return true; } else{ window.status = "Este campo solo acepta nmeros"; return false; } }
Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 33 // Dejar pasar nicamente caracteres del alfabeto function charsOnly(field, event){ var key, keychar; //showChar(event); //Mostrar la tecla presionada if(window.event) //Todos los navegadores menos Netscape 4.0 o inferior key = window.event.keyCode; else if(event) //Netscape 4.0 o inferior key = event.which; else return true; keychar = String.fromCharCode(key); // Comprobar caracteres especiales como espacio en blanco, retroceso if((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 13) || (key == 27) || (key == 32) || (key == 239)) return true; else if((("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~").indexOf(keyc har) > -1)){ window.status = ""; return true; } else{ window.status = "Este campo solo acepta letras del alfabeto"; return false; } }
V. DISCUSIN DE RESULTADOS
$% 1ealice un script PHP que muestre mediante la utili(acin de 'aria!les sus datos personales: nom!re completo+ lugar de nacimiento 4departamento y pas+ si es extran$ero6+ edad y carnet de la uni'ersidad. /uestre estos datos en una ta!la utili(ando la sintaxis HE1E DECC. &% Celeccione un script+ que no sea ninguno de los dos primeros+ y modi&quelo para que todo el cdigo H./# sea generado con instrucciones eco+ tal y como en el e$emplo * 4tmlcod.pp6. '% Cree una pgina que muestre en una ta!la H./# Equi'alencias entre = monedas di&erentes. #a columna de la dereca de!e mostrar una cantidad en la moneda !ase y la columna de la i(quierda el equi'alente en la otra moneda. 1ealice clculos utili(ando de&inicin de constantes y 'aria!les para o!tener la con'ersin. Cus monedas !ase de!en ser constantes y las equi'alencias tienen que almacenarse en 'aria!les para generar la ta!la.
VI. INVESTIGACIN COMPLEMENTARIA
$% :n'estigue las constantes de PHP conocidas como constantes prede&inidas o NmgicasO y las constantes para el tratamiento de errores que !rinda el lengua$e. /uestre en una ta!la de dos columnas la constante y su utilidad. Por e$emplo:
EH>## .odos los errores y ad'ertencias soportados.
&% :n'estigue todas las &unciones que dispone PHP para determinar el tipo de una 'aria!le. Haga una ta!la con dos columnas+ una con la sintaxis de la &uncin y otra con la descripcin. Por e$emplo: a. boolean is_numeric($arg) De'uel'e true si la 'aria!le es un n3mero o una cadena num)rica o &also en otro caso. Gua #1: Introduccin a la programacin web con PHP Lenguajes Interpretados en el Servidor 34
VII. BIBLIOGRAFA
1. .im Con'erse 8 Cte'e Cuering. #> I:I#:> DE PHP F y /yCD#. Editorial >naya /ultimedia. 1a. Edicin. /adrid+ Espa,a. 2772. 2. ?il 1u!io+ 9rancisco ]a'ier 8 Silla'erde+ Cantiago >lonso. C1E>C:^0 DE C:.:EC LEI CE0 PHP *. 1ra. Edicin. Editorial /c?ra-JHill8:nteramericana. /adrid+ Espa,a 277F. ". Lelling+ #uAe 8 .omson+ #aura. DEC>11E##E LEI CE0 PHP _ /yCD#. .raduccin de la "ra Edicin en ingl)s. Editorial >naya /ultimedia. /adrid+ Espa,a 277*. %. ?uti)rre(+ >!raam 8 Ira'o+ ?in)s. PHP * > .1>S`C DE E]E/P#EC. 1ra. Edicin. Editorial >l&aomega. /)xico+ $unio 277*. *. ]on Coggesall. #> I:I#:> DE PHP *. 1ra. Edicin. Editorial >naya /ultimedia. /adrid+ Espa,a 277*. F. Doyle+ /att. 9B0D>/E0.EC PHP P1aC.:CE. 1ra Edicin. Editorial >naya /ultimedia. /adrid+ Espa,a. 2717.