apuntes iaw

Upload: ramon-lozano-rodas

Post on 13-Jul-2015

326 views

Category:

Documents


1 download

TRANSCRIPT

U.T.1INSTALACINDESERVIDORESDEAPLICACIONESWEB 1.SERVIDORESWEB Cuando un usuario se conecta a Internet y solicita una pgina web a travs de su barra de direcciones,loquehaceesestablecercontactoconelordenadorquetienealmacenadaesapgina web. En este ordenador est funcionando un programa que se conoce, genricamente, como servidorweb.Esteprogramabuscalapginasolicitadaeneldiscodurodelservidoryselaenvaal cliente.Poranaloga,elclienteesunordenador(aqueldesdeelquenosconectamosaInternet)y un programa cliente (el navegador con el que nos conectamos y donde se muestra la pgina solicitada). Cuando desde un navegador solicitamos una pgina web, el ordenador no se conecta directamentealservidordedichapgina.SeconectaaunodelosservidoresDNSestablecidos.El servidor DNS contiene un directorio con todas las pginas web del mundo y las IPs de los correspondientesservidores.Aspues,elDNSbuscaenlalistalapginasolicitadayelnmerode IPcorrespondiente.Estoesloquesellamaresolverelnombre. SITIOSDINMICOS Cuandotenemosunapginaescritaqueutilizanicamentelastecnologasdelladocliente(HTML yJavaScript)sedicequeesesttica.Estosignificaquesuscontenidossonsiemprelosmismos.Si queremosquecambien,debemoshacerlonosotros,editandolapgina,paraquelosusuariosvean los nuevos contenidos. A menudoesto es imposible, debido a que hay muchas ocasiones en las queloscontenidosdebenserdependientesdeunasolicitudporpartedelusuario. Las pginas dinmicas emplean lo que se conoce como programacin en el lado del servidor. Desde el punto de vista tcnico, la principal diferencia es que una pgina esttica, cuando es llamadaporuncliente,bajaalnavegadortalcomoest,ysemuestracomoes.Cuandoelcliente llamaaunapginadinmica,existeunprocesoenelladodelservidorquecreaenesemomentola pgina,incorporandoloscontenidosqueelclientehasolicitado,ysirvelapginarecincreadaal cliente. Otro cliente que solicite la misma pgina con otros contenidos recibir un resultado diferente.Poresosehabladepginasdinmicas,porquesucontenidopuedevariarysegeneraen elservidorenelmomentodelasolicitud. 2.INSTALACINYCONFIGURACINDESERVIDORESDEAPLICACIONESWEB ANLISISDEREQUERIMIENTOS Laspginasdinmicasseprogramanempleandotecnologasdeservidor.Paraprobaryrealizarlas prcticas de este Mdulo necesitaramos tener un servidor de red que nos proporcionara los servicios necesarios. En este caso lo ideal es tener nuestro propio servidor en casa para poder implementar y configurar los servicios que necesitemos. Para ello, vamos a utilizar un solo ordenadorcomoclienteyservidor.Lanicadiferenciaesque,alllamaralaspginasascreadas, enlugardeusarunadireccindeInternetusaremosladireccindenuestrapropiamquinalocal. Luego,unavezcreadoyprobadounsitio,losubiremosalservidorremotoquenosintereseyall estardisponibleparatodoelmundo. SERVIDORWEBYSISTEMAGESTORDEBASESDEDATOS:INSTALACINYCONFIGURACINU.T.1INSTALACINDESERVIDORESDEAPLICACIONESWEB Pgina:1

Servidor Apache. El programas que emplearemos es Apache porque es el ms extendido en Internet.Estoesporqueesgratuitoyesunodelosmsrobustosqueexisten,muyseguroantelos ataquesdelaRed. IntrpretedePHP.Cuandoelusuariosolicitaunapginadesarrolladamedianteestatecnologa,el intrprete de PHP, instalado en el equipo servidor, lee el cdigo de dicha pgina y lo ejecuta.A continuacingeneraunapginaHTMLcomoresultado,yselaentregaalservidorweb,quiensela envaalcliente. Base de datos MySQL. Sirve para obtener informacin almacenada en una base de datos en el servidor.MySQLposeeunmotordedatosmuyrpidotantograbandodatos,comolocalizndolos y recuperndolos. Adems ofrece una gran seguridad sobre la integridad de los datos almacenados. Paramontarelservidorweb,elintrpretedePHPyelmotordebasesdedatosMySQLcontamos con una aplicacin llamada AppServ. Est disponible en la direccin: http://www.appservnetwork.com Pasos:

U.T.1INSTALACINDESERVIDORESDEAPLICACIONESWEB Pgina:2

SeguidamenteinstalamoselmotordebasesdedatosdeMySQL:

U.T.1INSTALACINDESERVIDORESDEAPLICACIONESWEB

Pgina:3

Sinoseinicializadurantelainstalacin,sepuedehacermanualmenteconelarchivo:

CONFIGURACINDELSERVIDOR Hayqueestablecerunpardeparmetros: Primeramentetodoslossitiosdinmicosquerealicemosdebernestaralojadosenunacarpeta especficamentecreadaalefecto,queactuarcomoservidor.Porejemplo,creamosunacarpeta llamada:C:\miswebs. Unavezcreadalaanteriorcarpeta,accedemosalacarpetaAppServydentrodeestaauna llamadaconf,laabrimosconuneditordetextoplanoysustituimoslaslneas: DocumentRoot"c:/miswebs"yunpocomsabajo TambinhayqueasegurarsequelalneaServernametienelocalhost. Seguardanloscambiosysetienequereiniciarelordenador. 3.PROCESAMIENTODECDIGO:LENGUAJESDESCRIPTENCLIENTEYSERVIDOR PGINASQUESEPROCESANENELCLIENTE.Sonlasqueseejecutanenelnavegadordelusuario. LENGUAJESWEBDECLIENTE Loslenguajesqueseutilizanparacrearestaspginassonprincipalmente:HTML,Javascript,Visual BasicScript,DHTML,CSSyAppletsdeJava. HTML.ElcdigoHTML,indicabsicamentedndecolocarcadatexto,cadaimagenocadavideoy laformaquetendrnestosalsercolocadosenlapgina. Javascript. Es el lenguaje de programacin del lado del cliente ms utilizado. Con Javascript podemos crear efectos especiales en las pginas y definir interactividades con el usuario. El navegadordelclienteeselencargadodeinterpretarlasinstruccionesJavascriptyejecutarlaspara realizarestosefectoseinteractividades,demodoqueelmayorrecurso,ytalvezelnico,conque cuentaestelenguajeeselpropionavegador. Visual Basic Script. Est basado en Visual Basic, un popular lenguaje para crear aplicaciones Windows.ElmododefuncionamientodeVisualBasicScriptparaconstruirefectosespecialesen pginas web es muy similar al utilizado en Javascript y los recursos a los que se puede acceder tambinsonlosmismos:elnavegador.

U.T.1INSTALACINDESERVIDORESDEAPLICACIONESWEB

Pgina:4

DHTML. No es precisamente un lenguaje de programacin. Ms bien se trata de una nueva capacidad de la que disponen los navegadores modernos, por la cual se puede tener un mayor control sobre la pgina que antes. DHTML nos da ms control sobre la pgina porque los navegadoresmodernosincluyenunanuevaestructuraparavisualizarenpginaswebdenominada capa.Lascapassepuedenocultar,mostrar,desplazar,etc. Para realizar las acciones sobre la pgina, como modificar la apariencia de una capa, seguimos necesitandounlenguajedeprogramacindelladodelclientecomoJavascriptoVBScript. CSS. Son las siglas de Cascading Style Sheets, en espaol Hojas de estilo en Cascada. Es una tecnologaquenospermitecrearpginaswebdeunamaneramsexacta.GraciasalasCSSsomos muchomsdueosdelosresultadosfinalesdelapgina,pudiendohacermuchascosasquenose podahacerutilizandosolamenteHTML,comoincluirmrgenes,tiposdeletra,fondos,colores... Applets de Java. Es otra manera de incluir cdigo a ejecutar en los clientes que visualizan una pginaweb.SetratadepequeosprogramashechosenJava,quesetransfierenconlaspginas webyqueelnavegadorejecutaenelespaciodelapgina. La principal ventaja de utilizar applets consiste en que son mucho menos dependientes del navegador que los scripts en Javascript, incluso independientes del sistema operativo del ordenadordondeseejecutan.Adems,JavaesmspotentequeJavascript,porloqueelnmero deaplicacionesdelosappletspodrsermayor. Como desventajas en relacin con Javascript cabe sealar que los applets son ms lentos de procesar y que tienen espacio muy delimitado en la pgina donde se ejecutan, es decir, no se mezclancontodosloscomponentesdelapginanitienenaccesoaellos.Esporelloqueconlos applets de Java no podremos hacer directamente cosas como abrir ventanas secundarias, controlarFrames,formularios,capas,etc. PGINAS WEB DEL SERVIDOR. Estas pginas descargan al servidor algunos trabajos, ofrecen respuestasinmediatasalasaccionesdelusuarioypermitenlautilizacindealgunosrecursosdela mquinalocal. Las pginas del servidor son tiles en muchas ocasiones. Con ellas se puede hacer todo tipo de aplicacionesweb.Desdeagendasaforos,sistemasdedocumentacin,estadsticas,juegos,chats, etc. Son especialmente tiles en trabajos en los que se tiene que acceder a informacin centralizada,situadaenunabasededatosenelservidor,ycuandoporrazonesdeseguridadlos clculosnosepuedenrealizarenelordenadordelusuario. Son necesarias porque para hacer la mayora de las aplicaciones web se debe tener acceso a muchos recursos externos al ordenador del cliente, principalmente bases de datos alojadas en servidoresdeInternet. LENGUAJESWEBDESERVIDOR PHP, Hypertext Preprocesor. Es un lenguaje de programacin del lado del servidor gratuito e independientedeplataforma,rpido,conunagranlibreradefuncionesymuchadocumentacin. Laspginasqueseejecutanenelservidorpuedenrealizaraccesosabasesdedatos,conexiones enred,yotrastareasparacrearlapginafinalqueverelcliente.Elclientesolamenterecibeuna pginaconelcdigoHTMLresultantedelaejecucindePHP.Comolapginaresultantecontiene nicamentecdigoHTML,escompatiblecontodoslosnavegadores.

U.T.1INSTALACINDESERVIDORESDEAPLICACIONESWEB

Pgina:5

Fue creado originalmente en 1994 por Rasmus Lerdorf, pero como PHP est desarrollado en poltica de cdigo abierto, a lo largo de su historia ha tenido muchas contribuciones de otros desarrolladores. Este lenguaje de programacin est preparado para realizar muchos tipos de aplicaciones web gracias a la extensa librera de funciones con la que est dotado. La librera de funciones cubre desdeclculosmatemticoscomplejoshastatratamientodeconexionesdered. AlgunasdelasmsimportantescapacidadesdePHPson:compatibilidadconlasbasesdedatos mscomunes,comoMySQL,mSQL,Oracle,Informix,yODBC,porejemplo.Incluyefuncionespara elenvodecorreoelectrnico,uploaddearchivos,creardinmicamenteenelservidorimgenes enformatoGIF,inclusoanimadasyunalistainterminabledeutilidadesadicionales.

CGI,CommonGatewayInterface.Eselsistemamsantiguoqueexisteparalaprogramacinde las pginas dinmicas de servidor. Actualmente se encuentra un poco desfasado por diversas razones entre las que destaca la dificultad con la que se desarrollan los programas y la pesada cargaquesuponeparaelservidorquelosejecuta. LosCGIseescribenhabitualmenteenellenguajePerl,sinembargo,otroslenguajescomoC,C++o VisualBasicpuedensertambinempleadosparaconstruirlos. ASP,ActiveServerPages.EslatecnologadesarrolladaporMicrosoftparalacreacindepginas dinmicasdelservidor.ASPseescribeenlamismapginaweb,utilizandoellenguajeVisualBasic ScriptoJscript(JavascriptdeMicrosoft). JSP,JavaServerPages.EncastellanovendraadeciralgocomoPginasdeServidorJava.Es,pues, unatecnologaorientadaacrearpginaswebconprogramacinenJava. LENGUAJEXML. XML,contodaslastecnologasrelacionadas,representaunamaneradistintadehacerlascosas, ms avanzada, cuya principal novedad consiste en permitir compartir los datos con los que seU.T.1INSTALACINDESERVIDORESDEAPLICACIONESWEB Pgina:6

trabajaatodoslosniveles,portodaslasaplicacionesysoportes.Aspues,elXMLjuegaunpapel importantsimoenestemundoactual,quetiendealaglobalizacinylacompatibilidadentrelos sistemas,yaqueeslatecnologaquepermitircompartirlainformacindeunamanerasegura, fiable,fcil.Adems,XMLpermitealprogramadorylossoportesdedicarsusesfuerzosalastareas importantescuandotrabajaconlosdatos,yaquealgunastareastediosascomolavalidacinde estos o el recorrido de las estructuras corre a cargo del lenguaje y est especificado por el estndar,demodoqueelprogramadornotienequepreocuparseporello. Vemos que XML no est slo, sino que hay un mundo de tecnologas alrededor de l, de posibilidades, maneras ms fciles e interesantes de trabajar con los datos y, en definitiva, un avance a la hora de tratar la informacin, que es en realidad el objetivo de la informtica en general. XML, o mejordicho, el mundo XML no es un lenguaje, sinovarios lenguajes, no esuna sintaxis, sino varias y no es una manera totalmente nueva de trabajar, sino una manera ms refinada que permitirque todas las anteriores se puedan comunicarentre s sinproblemas,ya quelosdatoscobransentido.XMLesinteresanteenelmundodeInternetyelebussiness,yaque existenmuchossistemasdistintosquetienenquecomunicarseentres. 4.COMPROBANDOELFUNCIONAMIENTO Paraprobarqueelservidorfunciona,creamosunarchivollamadopruebaApache.htmconelblock denotas. Apache funcionando

ParaprobarquefuncionaPHP,creamoselarchivopruebaPHP.php.

U.T.1INSTALACINDESERVIDORESDEAPLICACIONESWEB

Pgina:7

Siseejecutalaopcinvercdigofuentedelapgina:

U.T.1INSTALACINDESERVIDORESDEAPLICACIONESWEB

Pgina:8

U.T.2INSTALACINDEGESTORESDECONTENIDOS1.GESTORESDECONTENIDO.CONCEPTOS Unsistemadegestindecontenidos(eninglscontentmanagementsystem,abreviadoCMS)es un programa que permite crear y administrar contenidos, principalmente en pginas web. Consisteenunainterfazquecontrolaunaovariasbasesdedatosdondesealojaelcontenidodel sitio. El sistema permite manejar de manera independiente el contenido y el diseo, adems permitelafcilycontroladapublicacinenelsitioavarioseditores. UnCMSsiemprefuncionaenelservidorwebenelqueestalojadoelportal.Elaccesoalgestorse realiza generalmente a travs del navegador web, y se puede requerir el uso de FTP para subir contenido. Cuando un usuario accede a una URL, se ejecuta en el servidor esa llamada, se seleccionaelesquemagrficoyseintroducenlosdatosquecorrespondandelabasededatos.La pginasegeneradinmicamenteparaeseusuario,elcdigoHTMLfinalsegeneraenesallamada. Normalmentesepredefineenelgestorvariosformatosdepresentacindecontenidoparadarle laflexibilidadalahoradecrearnuevosapartadoseinformaciones. 2.TIPOSDEGESTORESDECONTENIDOSMASUTILIZADOS PlataformasdeGestindeContenidoDrupal(PHP).PoderosoCMSmuyconocidoporlacalidad desucdigoyporlaseguridadquebrinda,esestableydeactualizacincontinua,configuracin sencilla, instalacin gil, importante cantidad de mdulos y temas visuales, excepcional documentacinycomunidadactivaymuyamigable,granconceptodenodo. Mambo(PHP).CMSmuyfcildeusar,peroconposibilidadesunpocolimitadas. Joomla.EsteeselCMSmasusadoeninternet,grandesportalesdetodotiposehanmontadobajo estepoderosogestordecontenido,porsuvariedaddeplantillas,ademsdesuampliacomunidad dedesarrolladoreslibresquesacandiversosmdulosparapoderinstalarlos. TIPOSDEGESTORESDECONTENIDOPARAFOROS SMFSimpleMachinesForum,abreviadoSMF,esungestordecontenidosgratuito.Seencuentra orientadoalacreacindecomunidadesonline,teniendocomoejephpBBesunsistemadeforos gratuito basado en un conjunto de paquetes de cdigo programados en el popular lenguaje de programacin web PHP y lanzado bajo la Licencia pblica general de GNU, cuya intencin es central la gestin de foros. Escrito enteramente en PHP utiliza MySQL la de proporcionar fcilmente,yconampliaposibilidaddepersonalizacin,unaherramientaparacrearcomunidades. TIPOSDEGESTORESDECONTENIDOCMSPARABLOGS WordPress es un sistema de gestin de contenido enfocado a la creacin de blogs (sitios web peridicamenteactualizados).DesarrolladoenPHPyMySQL,bajolicenciaGPL.WordPressseha convertidoenelCMSmspopulardelablogosfera. B2EvolutionesunodelosCMSparacreacindeblogscomoalternativaaWordpress.Disponede temasypluginsvariadosalestilodelosCMSextensibles. U.T.2InstalacindeGestoresdeContenidos Pgina:1

3.FUNCIONESBSICASDEUNGESTORDECONTENIDOS

Creacindecontenidos.Sepuedengenerarcontenidosgraciasaloseditoresintegradosdelos CMS,setratadeeditoresdeltipoWYSIWYGconlosquesepuedeverelaspectofinaldel documentoamedidaqueseelabora. Gestindecontenidos.Cuandounusuariocreaundocumento,sealmacenaenunabasededatos juntoconotrasinformacionesdeinters.Asmismo,seconsignantambinlosusuariosalosque sehadadodealta,laestructuradelportal,losestilosytemasutilizados,ademsdetodala informacingeneradaapartirdelasfuncionalidadesdelCMS. Publicacindecontenidos.Cuandoelusuariodaporterminadouncontenido,puedepublicarlo enesemismomomentoobienprogramarloparaqueaparezcaenunafechaconcreta. PresentacindelCMS.Sepuedenutilizardesdecualquiernavegadorypermitenestablecerel idioma,elhusohorarioeinclusolamonedadeseada. 4.JOOMLA.REQUERIMIENTODEFUNCIONAMIENTOEINSTALACIN EsunCMSdinmicoquepermitelacreacindesitioswebparalapublicacindenoticias,difusin delainformacindecualquiertipo,portalescorporativos,sitioswebparacomercioelectrnico, etc. Es una aplicacin web que se distribuye con licencia pblica general GPL. En buena parte est escritaenPHPypuededescargarseenelsitiooficialdelproyectohttp://www.joomla.orgLoselementosbsicosparasufuncionamientoson:

BasededatosMySQL.Almacenaentablasdiferenciadastodalainformacindelsitio,as comogranpartedelaconfiguracindelsistema. MotorPHP.Ejecutardenesdebsqueda,almacenamiento,consultaymodificacinsobre la base de datos. Los datos obtenidos se transforman en pginas web que son interpretadas,mostradasporlosnavegadoresyentendiblesparalosusuarios. ServidorHTTPApache. Encuantoalaspectoyfuncionalidad,loselementosbsicosofrecidosporJoomlason: Plantillas(templates).Eslapartedelsoftwarequedeterminalaapariencia,ladisposicindelos mdulos,etc. Extensiones (mdulos y componentes) para generar formularios dinmicos; la gestin de documentos;creargalerasdeimgenesmultimedia;elcomercioelectrnico;foros,blogsychats; calendarios; servicios de directorio; boletines de noticias; el registro de datos; la publicacin de anuncios;lagestindesuscripcin. Los diferentes requerimientos de funcionamiento y ayuda estn en la pgina web http://ayuda.joomlaspanish.org/ayudajoomla

U.T.2InstalacindeGestoresdeContenidos Pgina:2

INSTALACINDEJOOMLA Unavezquesehadescargadoelpaquetedelsitiowebcorrespondienteyseextraenlosarchivos en una carpeta creada dentro de la que tenemos como localhost (UT 1, pg. 4). Realizamos los siguientespasos: U.T.2InstalacindeGestoresdeContenidos Pgina:3

Creacindelabasededatos: U.T.2InstalacindeGestoresdeContenidos Pgina:4

5.ESTRUCTURADELCMSJOOMLA LaestructuradeJoomlasecomponededospartesbiendiferenciadas:frontend(opartepblica)y backend(elcentrodeadministracin). FRONTEND.Constadelossiguienteselementos: LogoJoomla! Menconenlacesalasseccionesdelportal. Bannerpublicitario. Barradenavegacin. Menprincipal. ltimasnoticiasincorporadasenelportal. Contenidosmsvisitados. Zonadondeeladministradormuestraalgunanoticiaocomunicadodeinters. Zonacentralconnoticias. Zonadeencuestas. Zonadeusuariosenlnea. ZonadeenlacesrelacionadosconelproyectoJoomla! Formularioparaelregistrodeusuarios. Zonadesindicacin. Zonadeaccesibilidad. Todasestaszonassonconfigurables. BACKEND.Essoloaccesibleparadeterminadosperfilesdeusuario.Desdelapginaprincipaldel portalwebdeJoomla,eladministradorsepuedeconectardedosformas: 1. Proporcionandoelnombredeusuarioylacontraseadeladministradoralrellenarel formulariodeconexin. 2. SeleccionandolaopcinAdministracindelbloquederecursos.

Apartirdeestemomentoaccedemosavariosbotonesdeaccesorpidoadiferentesaccionesy unabarrademensdesplegable.

U.T.2InstalacindeGestoresdeContenidos

Pgina:5

6.PERSONALIZACINDELAINTERFAZ

PRCTICA1.PERSONALIZACINIDIOMA Conestaprcticatienesqueconseguirqueelentornoesteenidiomaespaol.Paraellotienesque hacerlospasos: 1.Descargaeinstalacindelasextensionesparaelfrontyparaelback.Ladescargalapuedes hacerdesdeladireccin:http://extensiones.joomlaspanish.org/ 2.Activacindelidiomaespaol. Elaspectofinaldebeser:

7.CONFIGURACINGLOBALYASPECTODEJOOMLA CONFIGURACINDELSITIO Metadatos.Informacinsobrelosdatosdelsitioweb.esimportantedefinirlosparaquelos motoresdebsquedapuedanlocalizarelportal. SEO(SearchEngineOptimization).Procesodeoptimizacindeunsitioyqueconsisteenaplicar diversastcnicasparaquelosbuscadoresdeinternetsitenelportalbasadoenJoomla!enlas primerasposicionesdentrodesuspginasderesultadosenfuncindetrminosyfrasesclave. U.T.2InstalacindeGestoresdeContenidos Pgina:6

CONFIGURACINDELSISTEMA Configuracindelsistema.Contienelapalabrasecretaqueeslacontraseacifradadel administrador. Parmetrosdeladepuracindeerrores.Permitendepurarelsistemaoelidioma. Parmetrosdelacach.Activanelusodelacachdelnavegadorparaagilizarelaccesoa contenidosyadescargados. Configuracindelasesin.Estableceeltiempoquedurarlasesindelosusuariosregistrados.Al cabodeesetiempo,seforzardenuevoelregistro.

U.T.2InstalacindeGestoresdeContenidos Pgina:7

CONFIGURACINDELSERVIDOR Enestepanelpodemosconfiguraraspectoscomolaposibilidaddecomprimirlaspginas, establecerparaelportalelhusohorario,asignarparmetrosbsicosdeconfiguracindelFTP, configurarlabasededatosyelservidordecorreos.

CONFIGURACINDEPERMISOS Entreotrasopcionespermiteydeniegaelregistrodelosusuariosyactivaonolascuentasdelos nuevosusuarios.

U.T.2InstalacindeGestoresdeContenidos Pgina:8

UNIDAD DE TRABAJO 3: USUARIOS Y GRUPOS. PERFILES. CONTROL DE ACCESOYSEGURIDAD. Joomla!establecedosgrandesgruposdeusuarios: Usuarios del administrador (backend): son usuarios que pueden acceder a la administracindelportal. Tipos: . Mnager o gestor: En el men Sitio tiene acceso a una parte restringida de las opcionesdelpaneldecontrol,comoelgestormultimedia.EnOpciones,puedeaccedera lostemsdemenperonocrearlosoeliminarlos..Disponedetodoslospermisosparala gestindeloscontenidos. . Administrador: Adems de todos los permisos del mnager, puede ocuparse de la gestindelosmensylosusuarios(exceptoelsperadministrador)yencargarsedela instalacindecomponentesymdulos,aunquenodelasplantillasnidelosidiomas. . Sper administrador: posee acceso total y absoluto a toda la administracin del portal.

PRCTICA1 Crearunusuarioperfilmanageryotroconperfiladministrador. Usuariosdelsitio(frontend):sonusuariosquepuedenaccederadeterminadassecciones delapartepblica. Tipos: . Registered: Puede acceder a las zonas de la parte pblica de Joomla! a las que el administradorasigneesteniveldeacceso.Eselperfildelamayorpartedelosusuarios delportal. . Author: Se le permite enviar artculos, pero no publicarlos ni tampoco editar los escritos por otros usuarios. Su tarea queda pendiente hasta que un administrador los aprueba. . Editor: Puede enviar artculos y editar los de otros usuarios, pero no puede publicarlos. .Publisher:Disponedepermisosparaenviar,modificarypublicarsusartculosolos deotrosusuarios. Aestosusuarioscabeaadirlosannimos,quienesnoseregistranenelportalytienen accesoalaspartesqueeladministradorconfiguracomopblicas(Public). PRCTICA2 Crearunusuarioconelperfil"Registered". Traducealcastellanoelnombredelmduloquepermitelaconexindelosusuarioscon cuentaenelportal.

U.T.4GESTINDEEXTENSIONESPorextensionesentendemostodoaquelloquerealizaalgunatareaenJoomla!yque,juntoalCore (coraznoncleodeJoomla!),complementanydesarrollantodalapotencialidaddelsistema.Son extensionesloscomponentes,losmdulos,losplugins,losidiomasylasplantillas(templates).

Los Componentes son quiz las aplicaciones ms importantes que juegan un papel fundamental en la gestin de contenidos de Joomla! Son pequeos programas independientesentres,queestnjuntoalncleodeJoomla!,obiensedescarganaparte, yposteriormenteseinstalandesdeelpaneldeAdministracindeJoomla!. Cada componente tiene su propia tabla en la base de datos de Joomla! y tambin sus propios archivos. Esto es precisamente lo que les da una independencia en el funcionamiento y no interfieren, en general, unos con otros. Adems, esto brinda la posibilidaddequepuedenserinstaladosodesinstaladosencualquiermomento,esdecir, el sistema permite un asincronismo temporal en la instalacin/desinstalacin de estas aplicaciones. Hay distintos tipos de componentes y de muy diversas funcionalidades (se designa el nombredeloscomponentesconelprefijo"com_"): ComponentesquefuncionanenelFrontendyenlaAdministracindeJoomla!Ejemplos: com_content,com_weblinks,com_newsfeeds,etc. Componentes que funcionan exclusivamente en la Administracin de Joomla! Ejemplos: com_frontpage,com_login,com_massmail,com_templates,etc. Componentes que funcionan exclusivamente en el Frontend, no son tan comunes, generalmentesoncreadospordesarrolladoresindependientes. Componentes que combinan su funcionamiento con mdulos, generalmente la gran mayora.Ejemplos:com_banners,com_polls,com_login,etc. Los Mdulos son aplicaciones mucho ms simples que los componentes y generalmente son una extensin o complemento de algn componente. Los mdulos muestran informacinsecundaria,simplificadaybrevequetomandelabasededatos.Perotambin tienenfuncionesmsimportantesquellevaracabo:puedenpublicarlosenlacesdelmen, recogerdatosdeaccesomedianteunformulario,etc. Los Plugins son aplicaciones que literalmente interceptan los artculos de contenido (documentosotemsdecomponentes)antesdesermostradosypublicadosenelsistema, y le agregan informacin adicional o lo alteran en forma dinmica, completando as el contenidototalquevaaserentregadoalnavegadordelusuariofinal.Lospluginspueden ser llamados mediante comandos especiales, o se pueden mostrar de forma predeterminadaparaciertoscontenidos/componentes.Originalmente,eltrminoutilizado era Mambot, y era sta la funcin que desempeaban, pero su denominacin cambia porque los plugins ofrecen posibilidades mucho ms amplias, pueden mejorar la funcionalidadenelmbitodelentornodetrabajo. LosIdiomassonpaquetesdearchivosque,unavezinstalados,permitenqueelFrontendy elBackendestexpresadoenunidiomadeterminado. Las Plantillas (Templates) deciden cmo se muestra el espacio web, tanto el Frontend comoelBackend,enelnavegadordelusuario.1

ComprenderlaestructuradelainterfazvisualdelFrontenddeJoomla!esfundamental.Paraun usuario novel significar poder situar adecuadamente los mdulos que quiere que sean visualizadosenlanavegacinquehadecidido.Peroparaunusuariomedio/avanzado,quequiera manipularplantillasdetercerosocrearlassuyaspropias,esnecesarioquesepaencadamomento cmosituarloquesevisualizarenelFrontend.

GESTINDEPLANTILLAS EnJoomlaloscontenidosvanporunladoyeldiseoporotro.Encualquiermomentopodremos modificar el diseo de todo (o parte) del sitio Web sin alterar el contenido de los artculos publicadosolaestructuradeseccionesycategoras(organizacininterna). LasplantillasenJoomlasonmuyimportantes,puesdefinirnlaubicacindepequeosprogramas (mdulos) que permitirn hacer operaciones tan importantes como acceder al sitio (login), mostrar ciertos contenidos, banners, ubicar columnas y otros elementos de nuestro sitio Web. Una plantilla bien diseada supondr prcticamente el 70% del triunfo de nuestra Web. De ah queunodelosprimerosprocesosarealizarunavezinstaladoJoomla,traslaconfiguracinbsica, sealaseleccineinstalacindeunaplantilla(yesrecomendablequestavayaaserladefinitiva, oluegotendremosmuchosproblemas) DesdeelGestordePlantillas,alqueseaccedeenelmen"Extensiones>GestordePlantillas" podremosrealizarmuchasoperacionesconlasqueyatenemosinstaladas,peroJoomla,adems permitelainstalacindenuevasplantillasquepodemosdescargargratuitamentedeInternet. POSICIONESDEMDULOSENUNAPLANTILLA Cada plantilla distribuye de forma diferente las distintas zonas de contenidos (mdulos) en diferentesposicionesdentrodelapgina.Aunqueposteriormenteveremosenotrocaptuloqu sonlos"mdulos"yparaqusirven,ahoranosinteresaconocerquecadaplantillatieneunaserie de espacios dedicados a la ubicacin de mdulos de Joomla. Esto es muy importante pues definir la ubicacin de ciertos controles y pequeos programas en nuestra pgina, como el formulariodeacceso,unmen,unaencuesta...Estaszonasestnpredefinidasenlaplantillayno pueden ser modificadas, salvo que tengamos conocimientos en el desarrollo de plantillas (PHP, xHTML,CSS...) Cadaespaciodedicadoaubicarmdulosrecibeunnombrequeloidentificarposteriormenteen el "gestor de mdulos": top, right, left, user1, user2... user32. Cada plantilla tiene sus propios "huecos" y los ubica en posiciones diferentes. En ocasiones reciben nombres similares, aunque cadaplantillapuedeseguirsupropioesquemadeposicionesdemdulos.Porejemplo,sielhueco paramdulosocupalacolumnadeladerecha,aesteespacioseledenominar"right",osiocupa lazonasuperior,seledenominar"top". UnaprcticacomneneldiseodesitiosWebconJoomlaesconocerestosespaciosparaubicar mdulos,puessonmuyimportantes.Avecesesconvenientecontarconunesquemaenpapelde laposicindeestaszonas(lopuedesdibujaramano),paraposteriormenteconocerdndesituar nuestrosmdulos.Hayalgunasplantillasqueacompaanunaimagen"JPG"conlaposicindelas zonasparamdulos. 2

EjemplodeldiseodelaplantillaBizBlue: newsflashload Positiontop1 Positiontop2 Positiontop3 .... Cada"hueco"ozonademdulospermitelainsercindeunoovariosmdulos.

PRCTICASSOBRELAINSERCINDEALGUNOSMDULOSENNUESTRAPLANTILLA PRCTICA1.Enposition3(Right2)deBizBlueponerunmduloconvisualizacindefotos aleatorias.PASOS: Buscarextensineinstalarla. Administradordemdulos.NuevoyseleccionarTipodemdulo. Ttulo,posicin,subirfotos,... PRCTICA2.Enposition4(Right3)deBizBlueponerunmdulocalendario.PASOS: Buscarextensineinstalarla. Administradordemdulos.NuevoyseleccionarTipodemdulo. Ttulo,posicin,... PRCTICA3.Enposicinnewflashload(bannersload)deBizBlueponerotromdulodefotos aleatorias.Puestoqueyaestinstaladalaextensin,pasamosdirectamenteacrearelnuevo mdulo. PRCTICA4.Quitarlogoconpropiedadesdelaplantilla. PRCTICA5.Cambiarfotodecabeceradesdeeldirectoriocorrrespondiente. PRCTICA6.CambiarelttulodelMenprincipalydelformulariodeacceso.SeaccedeaGestin deMdulosysecambiaelTtulo.

3

U.T.5GESTINDECONTENIDOS Enquordensecreanloscontenidos?Cmoempezar?ycmoseguir? UnavezqueyaestJoomlainstalado,configuradoyfuncionando,debescomenzarporordende importanciaa: 1. Definir y crear los "contenedores" de primer orden (los que engloban todo): las CATEGORAS. 2. Crear los "contenedores" de segundo orden (que pertenecen a las CATEGORAS): las SUBCATEGORAS. 3. Cargarlainformacinpertenecientesasuspropiassecciones/categoras. 4. Definir y crear la navegabilidad o "mens" (los accesos que van a tener los navegantes/usuariosaesosdocumentoswebpublicados). Lospuntos3y4(inclusolospuntos1,2,3,y4)puedeniralternndose.Peromuchosprincipiantes tratandecrearlosmensolosenlacesprimero,yluegoloscontenidos.Notardanendarsecuenta que"nosabencmohacer".Estoesunerror,elordencorrectoesas:

creacin y publicacin de categora >> creacin y publicacin de subcategora >> creacinypublicacindelosdocumentos>>construccindelmendenavegacin CONTENIDOS Desdeelpuntodevistadelagestindecontenidos,Joomla!permiteunaclasificacindeartculos de contenidos organizados dentro de categoras, y pueden ser manipulados fcilmente para modificarsuclasificacinylanavegacinqueserealizaratravsdeellos. Se puede necesitar que un determinado artculo de contenido no est definido dentro de una seccin/categora.Hablamos,portanto,decontenidosnoclasificados. Aparte, se puede decidir que haya contenidos archivados. Archivar un artculo de contenido suponedecidirquesigueactivo,peronoseencuentraclasificadodentrodelacategoraoriginal. De hecho, supone crear una estructura paralela de categoras, identificadas de igual forma, e incluso,permiterealizarvnculosenlosmensaestascategorasoartculosarchivados. Tomarbuenasdecisionesenlascategorasysubcategorasquesirvanparaclasificaryvisualizarlos contenidos es, sin duda, una de las tareas que deben ser mejor meditadas para poder tener un buensitioweb. Loscontenidospuedensercreados,editadosypublicadosdesdeelFrotnendydesdeelBackend, pero las opciones de creacin de categoras para su clasificacin, ordenacin, archivado y eliminacindebensergestionadasdesdeelBackend. MENS Lanavegacinyelaccesoalosrecursosenelsitiowebserealizanatravsdelanavegacinquese decideenlosmens.

LomensenJoomla!songruposdevnculosacategoras,artculosdecontenido,componenteso pginasexternas. Los mens son mdulos, hay distintos tipos de mens y pueden ser creados todos los que necesitemos.Inclusopuedenmostrarsediferentesmensdependiendodelapginaporlaquese est navegando. Cada men debe tener un nombre de identificacin nico usado internamente porJoomla!.Unmensloesvisibleenelsitiowebsielcorrespondientemdulomod_mainmenu esthabilitado(publicado). Joomla! utiliza un nico mdulo de men, llamado internamente mod_mainmenu. Los mens quesehancreadoenlainstalacinestnasociadosainstanciasdeestemdulo.Ycadavezquese creaoeliminaunmenseactasobrelainstanciadeeste. Pensardetenidamentequmens,conquelementosdemenydndesernaccesiblesypara quusuarios,serunapartedeterminanteenlaelaboracindenuestrositioweb,sinduda. CREACINDEUNMENENJOOMLA1.6 ElprocesodecreacindeunmenenJoomla1.6noesunatareasencilla.Enrealidad,esunade lasmscomplejas,dadoquesedebenseguirunaseriedepasosylasconfiguracionesrequierende ingresarunabuenacantidaddeparmetros,losquedebensercomprendidosensutotalidadpara obtenerbuenosresultados. Lacomplejidaddelsistemadecreacindemensderivadelaimportanciadelosmismosydela cantidaddefuncionesquecumplen.Elprocesodecreacindeunmenconstadetrespasos: 1. Crear el men, que consiste simplemente en crear el espacio, el mdulo, donde se colocarnloselementosdelmen. 2. Creacindeloselementosdemen. 3. Ubicacinypublicacindelmdulomen. Creacindelmdulomen La creacin de un nuevo men tiene como primer paso la instalacin de un mdulo de caractersticas especiales, como son los mens. Para cumplir este paso, deberemos acceder al GestordeMens,empleandoelconocorrespondientedelPaneldeControloatravsdeMens /GestordeMensdelmenprincipaldelAdministradordeJoomla1.6. Laventanaqueseapareceresunlistadodelosmensexistentes.Estelistado,comopodemos ver en la imagen de abajo, tiene en el eje vertical la lista de todos los mens que contiene la pgina.Elejehorizontalestdivididoencolumnas,quesonlassiguientes: 1. Casillasdeverificacin,mediantelascualessepuedenseleccionarunoomsmenspara realizaraccionesenbloque,comoborrar.Encasodequeserealiceunaseleccinmltiple y se emplee una accin que solo puede realizarse en un men a la vez, como editar, el menqueseabrirparalaedicinserelltimodelalistaseleccionada. 2. Ttulo y tipo de men, contenidos en la misma celda. Adems de dar la informacin mencionada, son enlaces que dirigen, el ttulo, al gestor de elementos de men con los elementos filtrados para este men en forma exclusiva, y el tipo de men dirige a la ventanadeedicindemenscorrespondienteaestemismomen. 3. Nmerodeelementosdemen,columnaqueasuvezestdivididaentrescolumnas,que informan cada una de ellas, la cantidad de elementos publicados, los elementos no publicados y la cantidad de elementos que se encuentran en la papelera. Cada uno de estos nmeros, tambin son enlaces que dirigen al gestor de elementos de men, que mostrar solo los elementos que corresponden a este men y que se encuentran en el estadodepublicacinquecorresponde.

4. Mdulos vinculados al men. Esta es otra de las novedades ms importantes con que cuenta Joomla 1.6 respecto de las versiones anteriores. Con un mismo men pueden crearsemsdeunmdulo,loquepermitequeendiferentespginas,elmenseaubicado endiferentesposiciones,comoyaveremosmsadelante.EstodotaaJoomla1.6deuna granflexibilidadenlapresentacindelaspginas. 5. Informacindelnmerodeidentificacindelmen(ID). Paracrearunnuevomen,deberemoshacerclicenelbotnNuevodelabarradeherramientas queseencuentraenlapartesuperiordellistado.Conesto,accedemosalasiguienteventana:

Enesteformulario,encontramosdoscamposobligatoriosyunoopcional.Enelprimercampose debe colocar el ttulo del men; en el segundo, el tipo de men; un ltimo campo opcional, permiteinsertarunadescripcindelmen. Creacindeelementosdemen Para crear elementos de men, podemos acceder de varias formas al gestor de elementos de men.Enprimerlugar,desdelapestaaubicadaenlapartesuperiordelgestordemens,que permiteintercambiarlasvistasconelgestordeelementosdemen.Comoyasemencionantes, tambinpuedeaccedersealoselementosdemendeunmenespecficoatravsdelttulodel mendellistadodemens. Cuandoestamoscreandoloselementosdeunmenespecfico,lavamsdirectadeaccedera ellos es la ltima. En la parte superior del listado de elementos, se encuentra un buscador que permitefiltrarlasbsquedasporniveldeacceso,estadodepublicacin,pormen,pornivelde menyporlenguaje,paraelcasodequeoptemosporeditarelementoscorrespondientesavarios mensdiferentes. Paragenerarunnuevoelementodemen,debemoscliquearenNuevo,abrindoselasiguiente ventana:

Enlaimagenvemosquelaventanaestdivididaentressecciones,laprincipal,alaizquierda,y dospestaasdesplegablesubicadasaladerecha. Enlaseccindelaizquierdaseencuentranlosdatosfundamentalesdelelemento.

El primer campo es el que podremos seleccionar el tipo de elemento. Cuando hacemos clic en Seleccionar,seabrelasiguienteventana:

Enestalistadetiposdeelementosdemen,nosencontramosconvariostiposdeelemento,que son Contactos, Feed de Noticias, Enlaces Web, Artculos, Bsquedas, Gestin de Usuarios, Wrapper(especiedeIFramequepermitemostrarotrositiowebdentrodelapgina). Hayuncampottulodelmenuncampoenelquesepuedeintroducirunalias,quepuedeser utilizado, entre otras funcionalidades, para ser utilizado en otros mens. A continuacin, un campopermitelaintroduccindenotas,queserefiereacualquieranotacinquepuedaresultar til. Enelcamposiguientesemuestraellinkdelelemento,quepuedesereditadodeformatalquese genere una URL ms amigable que las que Joomla 1.6 genera por defecto. En las listas desplegablesqueseencuentranacontinuacin,esposibleseleccionarelestadodepublicacin,el niveldeacceso,elmenalquecorresponde,elementopadreparaelcasodequesetratedeun elementodesubmen,eltargetolaformaenqueseabrirelobjetivo(mismaventana,nueva ventanaconnavegacinonuevaventanasinnavegacin). Debajoseencuentradosbotonesderadioquepermitenhacerquelapginaalaqueseaccede desdeelelementoeslapginapordefectoopginaprincipal.Estafuncinpermitemodificarla pginadeiniciodelsitio. Luegoencontramosdoslistasdesplegablesqueposibilitanseleccionarelidiomaylaplantillacon que se mostrar. Esto tambin es novedad en Joomla 1.6, y habilita a la utilizacin de varias plantillasenunmismositio,ascomomltipleslenguajes. Tiposdeelementodemen Dentrodecadatipodeelementodemen,nosencontramoscondistintostiposdepresentacin deloscontenidos.Loscontactospuedenpresentarsedelassiguientesformas: Listadodecategoras:muestraunlistadodelascategorasdecontacto. Listadecontactosenunacategora. Contactoindividual. Contactosdestacados. Losfeeddenoticiaspuedenmostrarsedelassiguientesformas: Listadetodaslascategorasdefeeddenoticias. Listadefeedsdenoticiasdeunacategora. Unfeeddenoticiasenparticular. Losenlacestambinpuedensermostradosentresformas: Listadodetodaslascategoradeenlaces. Listadeenlacesdentrodeunacategora. Envo de enlaces: muestra un formulario con el que se pueden enviar enlaces desde el frentedelapgina. Loselementosrelacionadosconlosartculosmuestranlossiguientestipos: Artculos archivados: en esta vista se muestran todos los artculos que se encuentran archivados. Artculoindividual:muestraunnicoartculocuandoseaccededesdeesteelemento. Listadodecategoras:muestratodaslascategorasdeartculos. Blogdecategora:Muestralaintroduccindelosartculosdeunacategoraenformatode blog,permitiendoconfigurarsisemostrarnenunaomscolumnas. Listadeunacategora:Muestratodoslosartculosdeunacategoraespecfica. Artculosdestacados. Crear artculo: Permite la creacin de un artculo desde el frente de la pgina. Esta funcionalidadesnuevaenJoomla1.6,yestespecialmentepensadaparalosusuariosque tenganpermisosdeautor.

Cuando se selecciona Bsqueda como tipo de elemento, lo que se muestra al hacer clic en el elemento es el listadosurgido de una bsqueda. Esto resulta especialmente tilpara presentar, porejemplo,losartculosrelacionadosconunapalabraclave. Loselementosrelacionadosconlagestindeusuarios,brindanaccesoadistintasfuncionalidades yutilidadespropiasdelosusuarios. Formulariodeaccesoparausuariosregistrados. Accesoalperfildeusuario. Pginadeedicindeperfildeusuario. Formularioderegistro. Recordatoriodenombredeusuario. Restablecimientodecontrasea. Cuando se selecciona un elemento de men tipo Wrapper, lo que aparece en la pgina es un IframedeunaURLespecificadaenlaconfiguracindelelementodemen. Los links del sistema son utilidades que permiten acceder a distintas funcionalidades, como enlacesexternosointernos,unaliasdeelementodemen(esdecir,unacopiadeunelemento contenidoenotromen)ounseparadordetexto. Otrasopciones:

AladerechadelaventanaNuevoElementodeMen,nosencontramoscondospestaasque abren dos formularios desplegables. En el primero de estos formularios se pueden introducir metadatosopcionales.Elmanejodeestoselementospuedencontribuirenelposicionamientode lapginaenbuscadores.

El primer campo corresponde a una descripcin del ttulo del enlace del men. Luego, la posibilidaddeinsertarunestiloCSSpropioalenlacedelmen.Tambinesposibleinsertaruna imagen del men, mediante el empleo de un enlace que se ubicar en el campo existente, o tambinseleccionarunaimagenubicadaenalgunadelascarpetasdelainstalacindeJoomla1.6.

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

UNIDADDETRABAJO7:INICIACINALAPROGRAMACINDEDOCUMENTOSWEB UTILIZANDOLENGUAJESDESCRIPTDESERVIDOR 1.CONCEPTOSYCLASIFICACIN PGINASWEBDINMICAS Llamaremos dinmicas a las pginas cuyos contenidos s pueden ser modificados de forma automtica o mediante la intervencin de un usuario bien sea desde el cliente y/o desde el servidor. Paraqueesasmodificacionespuedanproducirseesnecesarioquealgooalguienespecifique:qu, cmo,cundo,dndeydequformadebenrealizarse,yqueexistaotroalgooalguiencapazde acceder,interpretaryejecutartalesinstruccionesenelmomentopreciso. Igualqueocurreenlavidacotidiana,lasespecificacionesylasinstruccionesrequieren:unlenguaje paradefinirlas;unsoporteparaalmacenarlasyunintrpretecapazdeejecutarlas. Scripts Se llama script a un conjunto de instrucciones escritas en un lenguaje determinado que van incrustadas dentro de una pgina WEB de modo que su intrprete pueda acceder a ellas en el momentoenelqueserequierasuejecucin. Cuando se incrustan scripts en una pgina WEB empiezan a convivir en un mismo documento informacionesdestinadasadistintosintrpretes. Por una parte, el cdigo HTML que ha de ser interpretado por el navegador, y por la otra, los scriptsquehandeserejecutadosdependiendodellenguajeenelquehayansidoescritosporsu intrpretecorrespondiente. La manera de diferenciar los contenidos es delimitar los scripts marcando su comienzo con una etiquetadeaperturaysealandoelfinalconunaetiquetadecierre. LoquenoestcontenidoentreesasetiquetasseconsiderarcdigoHTML. La posibilidad de insertar en un mismo documento scripts desarrollados en distintos lenguajes obligaaespecificarculsehautilizadoencadacaso,paraqueenelmomentoenelquevayana serejecutadosseinvoqueelintrpreteadecuado. Paraello,dentrodelapropiaetiquetadeapertura()seinsertaunareferenciaaltipode lenguajeconestasintaxis:language="nombre" Porejemplo: ...... ...... instrucciones .. ...... indicara que las instrucciones estn escritas con la sintaxis de PHP. Por el contrario, en este otro supuesto: ...... ...... instrucciones .. ...... UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:1

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

ParaelcasoconcretodePHP,existeunasintaxisalternativa,muchomscmodayqueeslaque seusahabitualmente.Eslasiguiente:

serequivalentea. Lenguajesdelladodelservidor Unlenguajeesdelladodelservidorcuandolaejecucindesusscriptsseefecta,porinstanciade este el servidor, antes de dar respuesta a la peticin, de manera que el cliente no recibe el documentooriginalsinoelresultantedeesainterpretacinprevia. Cuando se usan estos tipos de lenguaje el cliente recibe un documento en el que cada script contenidoeneloriginalhabrsidosustituidoporlosresultadosdesuejecucin. Estoesalgoatenermuyencuenta,porque,enestecaso,losusuariosnotendrnlaposibilidadde visualizarelcdigofuente,mientrasquecuandosetratadelenguajesdelladodelclientesiempre esposiblevisualizarlosscripts,bienseadeformadirectamirandoelcdigofuentedelapgina recibidaoleyendoelcontenidodeficherosexternosvinculadosaellaquesonbastantefciles deencontrarenlacachdelnavegador. Lautilizacindeestetipodescriptsrequierequeelintrpretedellenguajeseaaccesibleestdel ladodesdeelpropioservidor.Cmoresuelvesusdudaselservidor? Dado que en unos casos el servidor debe entregar el documento original pginas estticas o pginasdinmicasenlasqueseusanlenguajesdelladodelclientemientrasqueenotroscasos pginasdinmicasusandolenguajesdelladodelservidortienequedevolverelresultadodela ejecucindelosscripts,esrazonablequetepreguntes:cmosabeelservidorloquedebehacer encadacaso?Larespuestaessimple.Esohayquedecrselo.Yseledicedeunaformabastante simple.Seindicaalponerlaextensinaldocumento. Sienlapeticinsealudeaundocumentoconextensin.htmo.htmlelservidorentenderque esapginanorequierelaintervencinpreviadeningnintrpretedesuladoyentregarlapgina tal cual. Si en esa peticin se aludiera a una extensin distinta .php, por ejemplo el servidor entenderaqueantesdeservirlapginadebeleerlayrequeriralintrpretedePHPqueejecute losscriptsdesarrolladoseneselenguaje(encasodequeloscontuviera)ydevolveraalclienteel documentoqueresultaradelaseventualesejecucionesdetalesscripts. RequisitosparaelusodellenguajePHP Deacuerdoalocomentadoenlosprrafosanterioresyenlosesquemasquetenemosladerecha, elusodellenguajePHPrequieretenerinstaladoyconfigurado: Unsoftwaredeservidor configuradoparainteractuarconelintrpretedePHPquesoporteelprotocoloHTTPyqueen nuestrocasosereldenominadoservidorApache. ElintrpretedePHP.UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:2

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

Unsoftwaredeservidordebasesdedatoscapazdesergestionadomediantefuncionespropias dePHP. UtilizaremoselservidordebasesdedatosconocidocomoMySQL.

2.INSTALACINDELEDITORDEPHP InstalacindeleditorPhpCoderPro! A lo largo del curso va a sernos de gran utilidad el uso un editor de textos que nos permita identificarlosnmerosdelneadenuestrosscriptsyquealaveznosayudemedianteresaltado detextosadepurarlasintaxis. Existen multitud de editores y podrs utilizar a tu gusto este o cualquier otro que uses habitualmente. El hecho de sugerirte este obedece a al hecho de que es gratuito, bastante completo,consumepocosrecursosysevaactualizandoperidicamente. 3.PGINASPHP Las pginas PHP pueden ser pginas web normales a las que se cambia la extensin, poniendo .phpenvezde.htm.html. Enunapginacuyonombretengaporextensin.phpsepuedeninsertarinstruccionesescritas enlenguajePHPanteponiendo. Acadaunodeestosbloquesdeinstruccioneslellamaremosunscript. No existe lmite en cuanto al nmero de scripts distintos que pueden insertarse dentro de una pgina.UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:3

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

4.SINTAXIS LaprimerainstruccinPHPqueconoceremosseresta: echo "un texto..";

LainstruccinechoseguidadeuntextoentrecomilladoharqueelPHPescribaenlapginaweb resultantelocontenidoenesacadenadetexto. Alfinaldecadainstruccindebemosinsertarsiempreunpuntoycoma(;) El(;)indicaraPHPqueloquevieneacontinuacinesunanuevainstruccin. Parafacilitarladepuracinlosscriptsnosuelenescribirsedosinstruccionesenunamismalnea.print "un texto..";

La instruccin print tiene una funcin similar no es exactamente la misma a la descrita para echo. print ("un texto..");

Esta es otra posibilidad la ms habitual de utilizar print. Aqu encerramos entre parntesis la cadena que pretendemos que aparezca impresa en la pgina web. El hecho de que utilicemos parntesisnonosevitatenerqueencerrarlacadena(texto)aimprimirentrecomillas. Comillasdentrodecomillas Existendostiposdecomillas:dobles"(SHIFT+2)ysencillas'(tecla?enminsculas). Cuando es preciso anidar comillas deben utilizarse tipos distintos para las exteriores y para las interiores. Paraqueunaetiquetaechointerpreteunascomillascomotextoynocomoelfinaldelacadena esnecesarioanteponerlesunsignodebarrainvertida(\). Enningncasoniconechoniconprintestpermitidosustituirlascomillasexteriores(lasque encierranlacadena)por\".EstasintaxissoloesvlidaparaindicaraPHPquedebeinterpretarlas comillascomouncarcterms. LaprimerapginaenPHP Observemos este cdigo fuente. Como vers, se trata de una pgina web muy simple que no contieneningnscriptPHP.Hemosguardadoesapginaconelnombreejemplo1.htmlyluegola hemosvueltoaguardarsinmodificarnadaensuscontenidoscomoejemplo1.php. Aprendiendo PHP Esta es una pgina supersimple UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:4

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

Sivisualizamosambosejemplosveremosquelosresultadossonidnticos. LosprimerosscriptPHP Editemos la pgina anterior (ejemplo1.php) y aadmosle nuestra primera etiqueta PHP guardndolacomoejemplo2.php.Esteseraelcdigofuente: Aprendiendo PHP Esta es una pgina super simple

Veamosahoraunejemploconlasdiferentesopcionesdeusodelascomillas(ejemplo3.php): Aprendiendo PHP

PRCTICA1CreaunsubdirectorioenelLOCALHOSTdetuservidoryponlecomonombrepracticas.Escribecon tu editor un script similar al ejemplo3.php utilizando print y print() en vez de echo. Guarda el documentoenlacarpetapracticasconelnombrepractica1.phpycompruebasufuncionamiento. Recuerdaqueparavisualizarlodebersescribirentunavegador:UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:5

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

http://localhost/practicas/practica1.php LNEASDECOMENTARIO Porquusarlneasdecomentario? Aprimeravistapuedenparecerintiles.Paraqurecargarlaspginasconcontenidosquenose vanaverniejecutar? Laslneasdecomentariosirvenparapoderrecordarenunfuturoquesloquehemoshechoal escribirunscriptyporquraznlohemoshechoas. Amedidaquevayamosavanzandoversqueenmuchoscasostendremosqueaplicarestrategias individualespararesolvercadaproblemaconcreto. Cuandonecesiteshacerunacorreccinounamodificacinalcabodeuntiempoversqueconfiar en la memoria no es una buena opcin. Es mucho mejor utilizar una lnea de comentario que confiarenlamemoria. Para insertar comentarios en los scripts de PHP podemos optar entre varios mtodos y varias posibilidades: Unasolalnea Bastacolocarlossmbolos//alcomienzodelalneaodetrsdelpuntoycomaquesealaelfinal deunainstruccin.Tambinsepuedeusarelsmbolo#encualquieradelasdosposiciones. Variaslneas Siuncomentariovaaocuparmsdeunalneapodremosescribir/*alcomienzodelaprimerade ellasy*/alfinaldelaltima.Laslneasintermediasnorequierendeningntipodemarca. Los comentarios para los que usemos la forma /* ... */ no pueden anidarse. Si, por error, lo hiciramos,PHPnosdarunmensajedeerror. Ensayandolneasdecomentario(ejemplo4.php) Ejemplo 4

2011/2012

Alejecutarlonosdarunerror.Estoesunamuestra,delaimportanciaquetieneelevitaranidar loscomentarios Enelejemplo4ahemosquitadoel/*quevadelantedecomentariosyel*/quevadespusde multilneaconestosyfuncionaperfectamente. Ejemplo 4a

PRCTICA2Escribe un script en el que se utilicen las funciones print, print() y echo aadiendo con los diferentesformatoslneasdecomentarioqueexpliquenlasintaxisdecadaunadelasfunciones. Gurdalocomopractica2.phpeneldirectoriopracticasycompruebasufuncionamiento. CONSTANTES Unaconstanteesunvalorunnmeroounacadenaquenovaasermodificadoalolargodel procesodeejecucindelosscriptsquecontieneundocumento. Paramayorcomodidad,acadaunodeesosvaloresseleasignaunnombre,demodoquecuando vayaaserutilizadobasteconescribirsunombre. Cuandoponemosnombreaunaconstantesedicequedefinimosesaconstante.UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:7

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

Cmodefinirconstantes? EnPHPlasconstantessedefinenmediantelasiguienteinstruccin:define("Nombre","Valor")

Los valores asignados a las constantes se mantienen en todo el documento, incluso cuando son invocadasdesdeunafuncin. Noesnecesarioescribirentrecomillaslosvaloresdelasconstantescuandosetratadeconstantes numricas. Si se realizan operaciones aritmticas con constantes tipo cadena, y su valor comienza por una letra,PHPlesasignavalorcero. Si una cadena empieza por uno o varios caracteres numricos, al tratar de operarla aritmticamentePHPconsiderarnicamenteelvalordelosdgitosanterioresalaprimeraletrao carcternonumrico. Elpuntoentrecaracteresnumricosesconsideradocomoseparadordepartedecimal. Talcomopuedesverenelcdigofuentedelejemploquetienesmsadelante,esposibledefinir constantesalasqueseasignecomovalorelresultadodeunaoperacinaritmtica. Medianteunasolainstruccinechosepuedenpresentar(enlaventanadelnavegadordelcliente) deformasimultneavariascadenasdecaracteresy/oconstantesyvariables.Bastaconponerlas unaacontinuacindeotrautilizandounacomacomoseparadorentrecadaunadeellas. Laformaanteriornoeslanicanilamshabitualdeenlazarelementosmediantelainstruccin echo. Si en vez de utilizar la coma usramos un punto (el concatenador de cadenas) conseguiramoselmismoresultado. Cuandoenlacemoselementosdistintoscadenas,constantesy/onmeroshemosdetenermuy encuentalosiguiente: Cadaunadelassucesivascadenasdebeirencerradaentresuspropiascomillas. Losnombresdeconstantesnuncavanentrecomillas. Lasinstruccionesprinttambinpermitenconcatenarcadenasenunamismainstruccin.Eneste caso solo es posible usar el punto como elemento de unin. Si pusiramos comas como hacamosconechoPHPnosdaraunerror. Veamosunejemplodeconstantes(ejemplo5.php)Constantes
Ahoraveremoslosmismosresultadosusandolafunctionprueba

2011/2012

PRCTICA3Escribe un script (gurdalo como practica3.php) en el que se definan dos constantes, una numrica y otra de cadena y en el que mediante la las opciones print y echo aparezca en la pgina web resultante un comentario sobre el tipo de cada una de ellas seguido de su valor. Intentaconseguirqueloselementosconcatenadosaparezcanenlapresentacinseparadosporun espacio. VARIABLES PodramosdecirqueesunespaciodelamemoriaRAMdelordenadorquesereservaalolargo deltiempodeejecucindeunscriptparaalmacenarundeterminadotipodedatoscuyosvalores son susceptibles de ser modificados por medio de las instrucciones contenidas en el propio programa. Nombresdevariables EnPHPtodoslosnombresdevariabletienenqueempezarporelsmbolo$. Las nombres de las variables han de llevar una letra inmediatamente despus del smbolo $ $pepe1 es un nombre vlido, pero $1pepe no es un nombre vlido. Para PHP las letras maysculasylasminsculassondistintas.Lavariable$pepeesdistintade$Pepe. Tiposdevariables En PHP no es necesario definir el tipo de variable, por lo tanto, una misma variable puede contener una cadena de caracteres en un momento del proceso y, posteriormente, un valor numrico,susceptibledeseroperadomatemticamente. Definicindevariables PHP no requiere una definicin previa de las variables. Se definen en el momento en que son necesariasyparaellobastaqueselesasigneunvalor. Lasintaxisesesta: $variable=valor; El valor puede ser una cadena (texto o texto y nmeros que no requieren ser operados matemticamente)oslounnmero.Enelprimerodeloscasoshabraqueescribirelvalorentre comillas.UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:10

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

mbitodelasvariables Losvaloresdeunavariabledefinidaencualquierpartedeunscriptsiemprequenoseadentrode unafuncinpuedenserutilizadosdesdecualquierotrapartedeesescript,exceptodesdedentro delasfuncionesquecontuvieraelpropioscriptodesdelasquepudieranestarcontenidasenun ficheroexterno.Siunavariableesdefinidadentrodeunafuncinslopodrserutilizadadentro deesafuncin. SienunafuncinaludimosaunavariableexternaaellaPHPconsideraresallamadacomosila variabletuvieravalorcero(encasodesertratadacomonmero)ounacadenavaca(""esuna cadenavaca). Igualocurrirasidesdefueradeunafuncinhiciramosalusinaunavariabledefinidaenella. Sidefinimosdosvariablesconelmismonombre,unadentrodeunafuncinyotrafuera,PHPlas considerardistintas.Lafuncinutilizarcuandoseaejecutadasuspropiosvaloressinquesus resultadosmodifiquenlavariableexterna. Variablesglobales Locomentadoanteriormente,admitealgunasexcepciones.Lasfuncionespuedenutilizarvalores de variables externas a ellas pero ello requiere incluir dentro de la propia funcin la siguiente instruccin:globalnombredelavariable; Porejemplo:global$a1; En una instruccin global pueden definirse como tales, de forma simultnea, varias variables. Bastaconescribirlosnombresdecadaunadeellasseparadosporcomas. P.ej.:global$a1,$a2,$a3; Variablessuperglobales A partir de la versin 4.1.0 de PHP se ha creado un nuevo tipo de variables capaces de comportarsecomoglobalessinnecesidaddequesedefinancomotales. Estasvariablesquenopuedensercreadasporusuario,recogendeformaautomticainformacin muyespecficaytienennombrespreasignadosquenopuedenmodificarse. Lasestudiaremosunpocomsadelante.Porahora,slocitarlosnombresdealgunasdeellas: $_SERVER,$_POST,$_GETo$_ENVsonlosdelasmsimportantes. Ejemplodelusodelasvariablesylaformadeutilizarlasenlosdiferentesmbitos(ejemplo6.php). UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:11

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

Vamos a ver el contenido de las variables


Invocando la variable desde una funcin

Ver la variable desde la funcin poniendo global
UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:12

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012


Un solo nombre y dos variables distintas

Dentro de la funcin el valor de la variable es
... pero despus de salir de la funcin vuelvo al valor original...

PRCTICA4 Escribeunscript(gurdalocomopractica4.php)enelqueunamismavariabletomedosvalores distintossinutilizarningunafuncin.Luegoaadealscriptunafuncinquepresenteesemismo nombredevariableconunvalordistintodelosanteriores,comprobandoqueestaltimaopcin nomodificelltimovalordeaquellos. CONSTANTESPREDEFINIDAS PHPdisponedealgunasconstantespredefinidasquenorequierenlainstruccin:define("Nombre","Valor")

Algunasdeellassonestas: __FILE__ Recoge el nombre del fichero que se est ejecutando y la ruta completa de su ubicacin en el servidor. __LINE__ Recoge el nmero de lnea (incluidas lneas en blanco) del fichero PHP cuyos scripts est interpretando.PuederesultarmuytilparadepurarprogramasescritosenPHP. PHP_OS Recoge informacin sobre el Sistema Operativo que utiliza el servidor en el que se est interpretandoelfichero. PHP_VERSION RecogelaversindePHPqueestsiendoutilizadaporelservidor.UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:13

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

Unejemploconconstantespredefinidas(ejemplo7.php)

PRCTICA5 Escribeunscript(gurdalocomoejercicio5.php)queconstruyaunapequeapginawebenlaque aparezcaeltexto"Estsutilizandolaversin:5.2dePHP"(incluidaslascomillasyextrayendoel nmerodeversindelaconstantepredefinidacorrespondiente).Tratadequetodaslasetiquetas HTMLqueutilicesestnrecogidasenvariablesPHP,demaneraquenoexistaningunalneaenel cdigofuentedelapginaqueestfueradelasetiquetas VARIABLESPREDEFINIDAS Lastablasdevalores Lainformacinsobrevariablesyvaloressepuedeextraerdelaconfiguracindelservidor. Existendosnombresdevariabledistintosquecompartenelmismovalor. Existenvariablesquecomienzanpor$_,yotraslohacenpor$HTTPyesoesalgomuyimportante. Enelprimercasosealudealasvariablessuperglobales,mientrasquelasotrasvariablesnotienen esecarcter. Razonesdeladuplicidad Laduplicidaddevariablessejustificaporlosiguiente:Lasvariablessuperglobalesseintrodujeron en PHP a partir de la versin 4.1.0 y no existan con anterioridad. Con muy buen criterio, los desarrolladoresPHPoptaronpormantenerlasvariablespredefinidasdelasversionesanterioresUT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:14

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

paraevitarquelosprogramadoresquemigraransusaplicacionesaestasnuevasversionesdePHP sevieranobligadosareescribirelcdigodesusscripts. Ejemplo:lassiguientesvariablesdevuelvenennmerodelaIPatravsdelaqueestaccediendo elusuarioanuestroservidor: $_SERVER['REMOTE_ADDR'] y $HTTP_SERVER_VARS['REMOTE_ADDR'] Aunque los valores de ambas variables van a ser siempre idnticos, no ocurre lo mismo con su mbito. Para qu sirven? Estas variables recogen informacin muy importante. Esta informacin ser relativaasuconfiguracin:nombre,rutas,nombresdepginas,IPdelservidor,etctera. Losdistintostipos Principalmentetenemosaquellasconvaloresdelasvariablesdedeentorno(ENV)ylasdeservidor (SERVER),pero,ademsdeellas,existenalgunasotrascuyosnombresyutilidadesson: Variablesdesesin Lasidentificaremosporlosnombres$_SESSIONopor$HTTP_SESSION_VARS. Estetipodevariableslasutilizaremoscuandohagamosmencinalusodesesiones. VariablesdelmtodoPOST Las identificaremos por los nombres $HTTP_POST_VARS o por $_POST. Este tipo de variables que utilizaremos con frecuencia recogen la informacin que se enva desde el cliente para ser utilizadaporelservidor. VariablesdelmtodoGET Las identificaremos por los nombres $HTTP_GET_VARS o por $_GET. Son muy similares a las anteriores. Laexistenciadelosdostipossejustificaporquetambinexistendostiposdemtodos(maneras) deenviardatosdesdeelclientehastaelservidor. CuandoelmtododeenvoeselllamadoGETlosdatosserecogenenvariablesdeestetipo,y,por elcontrario,siesemtodoenvofueraPOSTserecogeranenaquellas. Variablesdetransferenciadeficheros Lasidentificaremosporelnombre$HTTP_FILES_VARSopor$_FILES. Para el caso de transferencia de ficheros desde el cliente al servidor subir ficheros es necesario un procedimiento distinto de los anteriores. Ser en este caso cuando se utilicen variablesdeestetipo. EltipoGLOBALS

UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR

Pagina:15

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

A diferencia de las anteriores, las variables de este tipo disponen de una sintaxis nica $GLOBALSsinquequepaningunaotraopcin.Sufinalidadesrecogerenunatablalosnombres detodaslavariablesestablecidascomoglobalesencadamomentoascomosusvalores. OTRASVARIABLES Valoresdelasvariables Cuando hablbamos de las variables, nos referamos a su mbito y comentbamos que las variables definidas dentro de una funcin pierden sus valores en el momento en el que abandonemoselmbitodeesafuncin,esdecir,cuandofinalizasuejecucin. Decamostambinquesielmbitoenelquehubierasidodefinidafueraexternoaunafuncinlos valores slo se perderan temporalmente mientras durara la eventual ejecucin de las instruccionesdeaquellayque,unavezacabadoeseproceso,volvanarecuperarsusvalores. Bajoestascondiciones,siinvocramosrepetidamentelamismafuncinobtendramoscadavezel mismoresultado. Las posibles modificaciones que pudieran haberse efectuado (a travs de las instrucciones contenidas en la funcin) en el valor inicial de las variables, se perderan cada vez que abandonramos la funcin con lo cual, si hiciramos llamadas sucesivas, se repetiran tanto el valorinicialcomoelresultado. Variablesestticas Para poder conservar el ltimo valor de una variable definida dentro de una funcin basta con definirla como esttica. La instruccin que permite establecer una variable como esttica es la siguiente: static nombre = valor;

P.ej:silavariablefuera$ayelvalorinicialasignadofuera3escribiramos:static$a=3; Lavariableconservarelltimodelosvaloresquepudohabrseleasignadodurantelaejecucin delafuncinquelacontiene.Noretomarelvalorinicialhastaqueseactualicelapgina. Variablesdevariables Ademsdelmtodohabitualdeasignacindenombresalasvariablesponerelsigno$delantede una palabra, existe la posibilidad de que tomen como nombre el valor de otra variable previamentedefinida.Laformadehacerloseraesta:$$nombre_variable_previa; Veamosunejemplo: Supongamosquetenemosunavariablecomoesta:$color="verde"; Siahoraqueremosdefinirunanuevavariablequeutilicecomonombreelvalor(verde)queest contenido en la variable previa ($color), habramos de poner algo como esto: $$color="es horrible"; Cmopodramosvisualizarelvalordeestanuevavariable? Habratresformasdeescribirlainstruccin: print$$color;oprint${$color};otambinprint$verde; Cualquieradelasinstruccionesanterioresnosproduciralamismasalida:eshorrible.UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:16

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

Podemos preguntarnos cmo se justifica que existan dos sintaxis tan similares como $$color y ${$color}?Qupintanlasllaves?. Lautilizacindelasllavesesunaformadeevitarsituacionesdeinterpretacinconfusa. Supongamosquelasvariablestienenunnombreunpocomsraro. Porejemploque$colornosellamaassino$color[3](podraserque$colorfueraunarrayuna listadecoloresyqueestavariablecontuvieraeltercerodeellos). En este supuesto, al escribir: print$$color[3] cabra la duda de siel nmero 3 pertenece(esun ndice)alavariable$colorosiesenmerocorrespondea$$color. Conprint${$color[3]}nohabralugarparaesasdudas.Estaramosaludiendodeformainequvoca a3comondicedelavariable$color. Quocurrecuandolavariablepreviacambiadevalor? Cuandolavariableutilizadaparadefinirunavariabledevariablecambiadevalornosemodificani elnombredeestaltimanitampocosuvalor. Puedesveresteconcepto,conunpocomsdedetalle,enelcdigofuentedelejemplo. EjemplodeVariablesestticas(ejemplo8.php)

EjemplodeVariablesdevariables(ejemplo9.php)

TIPOSDEVARIABLES En PHP noes necesaria una definicin previadel tipo devariables. Segn los valores que se les vayanasignando,lasvariablespodrncambiardetipodemodoautomticoyseirnadaptando alosvaloresquecontenganencadamomento. LasvariablesenPHPpuedenserdetrestipos: Enteras(tipoInteger) Decomaflotante(tipoDouble) Cadenas(tipoString) Cualquier nmero entero cuyo valor est comprendido entre 231 ser interpretado por PHP como de tipo Integer. Si el valor de una variable es un nmero decimal o siendo entero desborda el intervalo anterior, bien por asignacin directa o como resultado de una operacin aritmtica,PHPlaconvierteatipoDouble.Cualquiervariablealaqueseleasignecomovalorel contenido de una cadena de caracteres (letras y/o nmeros delimitados por comillas) es interpretadaporPHPcomotipoString. UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR Pagina:19

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

Determinacindetiposdevariables PHPdisponedelafuncin:gettype(variable)quedevuelveunacadenadecaracteresindicandoel tipodelavariablequecontiene.Lacadenadevueltaporestafuncinpuedeser:Integer,doubleo string. Forzadodetipos PHPpermiteforzarlostiposdelasvariables.EsoquieredecirquesepuedeobligaraPHPaasignar un tipo determinado a una variable determinada, siempre que los valores que contenga estn dentrodelrangodelnuevotipodevariable.Lostipossepuedenforzartantoenelmomentode definirlavariablecomodespusdehabersidodefinida. Forzadoyasignacinsimultneadevalores Alasignarunvaloraunavariable,sepuedeforzarsutipodelasiguienteforma.Sideseamosque lavariablepaseasertipodedoublebastaconanteponerasuvalorentreparntesistalcomo seindicaunadelasexpresiones:(double),(real)o(float). Porejemplo:$a=((double)45); o $a=((float)45); o$a=((real)45);cualquieradeellasproducirael mismoefecto:convertirlavariable$aatipoDouble. ParaforzarunavariableatipoIntegerpodemosanteponerasuvalorunadeestasexpresiones: (integer),o(int).Porejemplo:$b=((integer)4.5);o$b=((int)45);produciranelmismoefecto: convertirlavariable$batipoInteger. ParaforzarunavariableatipoStringbastaconanteponerasuvalor(entreparntesis):(string). Porejemplo:$c=((string)4.5);convertiralavariable$catipoString. Forzadodetiposenvariablesyadefinidas La forma ms aconsejable de forzado de tipos en variables que ya estuvieran definidas previamente,eselusodelasiguienteinstruccin:settype(var,tipo)dondevareselnombredela variable cuyo tipo pretendemos modificar y tipo una expresin que puede contener (entre comillas) uno de estos valores: 'double', 'integer', o 'string' segn se trate de forzar a: coma flotante,entero,ocadena. Unejemplopodrasereste:settype($a,'integer')queconvertiraatipoenterolavariable$a. Laejecucindelainstruccinsettypedevuelve(dacomoresultado)unvalorquepuedeser:trueo false(10)segnlaconversinsehayarealizadoconxitoonohayapodidorealizarse. Operacionescondistintostiposdevariables PHPpermitelarealizacindeoperacionesaritmticasconcualquieradelostrestiposdevariables yadecaelresultadoaltipomsapropiado. Enlatabladeladerechapuedesveralgunosejemplos,pero,enresumen,ocurrelosiguiente: Al operar con dos enteros, si el resultado est dentro del rango de los enteros, devuelve un entero. Sialoperarcondosenteroselresultadodesbordaelrangoentero,conviertesuvalor,deforma automtica,altipocomaflotante. Aloperarunenteroconunavariabletipocomaflotanteelresultadoesdecomaflotante.

UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR

Pagina:20

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

Aloperarconunacadenalohacecomosisetrataradeunentero.Sihaycaracteresnumricosal comienzo,losextrae(hastaqueaparezcaunpuntoouncarcternonumrico)ylosoperacomo unnmeroentero. SiunacadenanocomienzaporuncarcternumricoPHPlaoperartomandosuvalornumrico comoCERO. Tiposdevariables EnelcuadrosiguientepodemosverlostrestiposdevariablesqueutilizaPHP.

Determinacindeltipodevariableutilizada DadoquePHPgestionalasvariablesdeformaautomticaymodificalostiposdeacuerdoconlos valores que va tomando durante la ejecucin del script, se pude recurrir a la funcin gettype(nombredelavariable)paradeterminareltipodelavariableactual. Enlatablasiguientetienesalgunosejemplosdeaplicacindeesafuncin. PodemosobservarenlacolumnaSintaxisqueparavisualizarelresultadoanteponemosechoa gettype.Esdecir,leindicamosaPHPquemuestreelresultadoobtenidoaldeterminareltipode variable.

Forzadodetipos

UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR

Pagina:21

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

Al modificar los tipos de variables pueden modificarse sus valores. Si forzamos a entera una variable que contenga un nmero decimal se perdera la parte decimal y la variable modificada solocontendraelvalordelaparteentera. Sitratamosdeconvertiranumricaunavariablealfanumricaelnuevovalorseracero. Aqutienesalgunosejemplosrelacionadosconlaadvertenciaanterior.

Forzadodetiposusandosettype() Aqutienesalgunosejemplosdelusodeesafuncin.Latablaestorganizadaenbloquesdetres filas que corresponden a la ejecucin de tres instrucciones y a la visualizacin del resultado de cadaunadeellas. Elresultadodesettypeprimerafilasolopodrser10segnlainstruccinsehayaejecutado conxitoonohayapodidorealizarse. Enlasegundafilacomprobamoselnuevotipodevariableobtenidamediantelaejecucindela instruccin anterior y en la tercera visualizamos los nuevos valores de la variable, que pueden habercambiadocomoconsecuenciadelcambiodetipo.

UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR

Pagina:22

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

Tiposdevariabledelosoperadoresydelosresultados La tabla siguiente contiene en cada fila los valores asignados a dos variables (A y B) y el resultadodelasumadeambas.Acontinuacinserecogenlostiposdevariabledecadaunade ellasyeldelresultado.EltipodeesteltimogeneradoporPHPestarcondicionadoporelvalor delresultadodecadaunadelasoperaciones.

UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR

Pagina:23

2RMDULO:IMPLANTACINAPLICACIONESWEB

2011/2012

UT7:INI.ALAPROG.DEDOCUMENTOSWEBUTILIZANDOLENGUAJESDESCRIPTDESERVIDOR

Pagina:24

U.T.8UTILIZANDOFORMULARIOS 1.PHPDINMICO Loquehemosvistohastaelmomento,solonoshaservidoparaescribirunaseriedescriptsPHPy ver los resultados de su ejecucin, pero an no hemos visto de qu forma se puede lograr que interactenelclienteyelservidor.Veamoscmohacerlo. Pasosprevios Quvalortieneregister_globalsentuphp.ini? Si se encuentra en OFF (comprobar con http://localhost/pruebaphp.php) se debe modificar esa directivadejndolacomoregister_globals=ONyguardarloscambios. Antesdehacerunamodificacinenphp.inienhttpd.confdesactivaelservidorApache.Cuando hayas acabado con los cambios vuelve a ponerlo en marcha (de lo contrario te aparecer el mensaje:nosepuedeencontrarelservidor)yyaarrancaratendiendoalanuevaconfiguracin. 2.ENVOATRAVSDELNAVEGADOR Laformamssimpledequeunclientepuedaenviarvaloresaunservidoresincluiresosvalores enlapropiapeticin,insertndolosdirectamenteenlabarradedireccionesdelnavegador. Formadeenvo Deber insertarse en la barra de direcciones del navegador lo siguiente: pagina.php?n1=v1&n2=v2dondepagina.phpserladireccindelapginaquecontieneelscript quehadeprocesarlosvalorestransferidos. ?esuncarcterobligatorioqueindicaquedetrsdelvanaserinsertadosnombresdevariables ysusvalores. n1,n2,etcterarepresentanlosnombresdelasvariables. =eselseparadordelosnombresdelasvariablesysusvaloresrespectivos. v1,v2,...simbolizanelvalorasignadoacadaunadelasvariables. &eselsmboloqueseparalosdistintosbloquesvariable=valor. Losnombresdelasvariablesnuncallevanelsigno$. Losvaloresdelasvariablesseannmerosocadenasnuncaseescribenentrecomillas. Algunos caracteres especiales (& por ejemplo) no pueden escribirse directamente dado que se prestanaconfusin(nosabrasiesunvalordeunavariableosisetratadeelsmbolodeunin. En esos casos es necesario sustituir en carcter por su codificacin URL que representa cada carcteranteponiendoelsigno%alvalordesucdigoASCIIexpresandoenformatohexadecimal. Sepuedenincluirtantosnombre=valorcomosedesee.Lanicarestriccineslalongitudmxima permitida por el mtodo GET (el utilizado en este caso) que se sita en torno a los 2.000 caracteres. Ejemplo10.php

Lallamadadeberahacersedelaforma: http://localhost/practicas/ejemplo10.php?a=21&b=456 Recepcindedatos Cuandoesrecibidaporelservidorlapeticindeundocumentoconextensin.phpenlaquetras el signo ? se incluyen una o varias parejas nombre = valor, los nombres de las variables y sus valoresrespectivosseincluyen,deformaautomtica,envariablespredefinidasdeltipo: $HTTP_GET_VARS['n1'] $HTTP_GET_VARS['n2'] enlasquen1,n2,...coincidenexactamenteconnombresasignadosacadaunadelasvariablesen esatransferencia. Cada una de esas variables contendr como valor aquel que hubiera recibido a travs de la peticin. Si la versin de PHP es superior a la 4.1.0, esos mismos valores se incluirn en variables superglobales del tipo $_GET de modo que en el supuesto de que la versin lo soporte los valoresdelapeticintambin(estaopcinnoexcluyelaanterior)estarandisponiblesen: $_GET['n1'] $_GET['n2'] Segnelmodoenqueestconfiguradoelphp.inipodracaberunaterceraposibilidadderegistro de esos valores. Si la directiva register_globals en el fichero php.ini est configurada con la opcinON,losvalorestransferidosdesdeelnavegadorademsdeserrecogidosenlasvariables anterioressonasignadosaotrasvariablesdeltipo:$n1,$n2,...cuyosnombressonelresultado deanteponerelsmbolo$alosnombresdelasvariablescontenidasenlapeticin. Laeleccinalahoradeescribirlosscriptsdeunouotrotipodevariabledebehacerseteniendoen cuentaque: Esta ltima sin duda la ms cmoda tiene el problema de que slo es vlida cuando register_globals=ony,adems,eslamsinseguradetodas. La superglobal $_GET tiene una sintaxis ms corta que su alternativa y, adems, aade como ventajasucondicindesuperglobal,quepermiteutilizarlaencualquiermbitosinnecesidadde declararla expresamente como global. Es la opcin del futuro. Su nico inconveniente es que puedenoestardisponibleenhostingsqueanmantienenversionesantiguasdePHP. Ejemplo11.php U.T.8UTILIZANDOFORMULARIOS Pgina:2

Lallamadatambindeberhacerse: http://localhost/practicas/ejemplo11.php?a=21&b=456 Recuerda: Los nombres de variables son distintos si se cambian maysculas y minsculas. Pon mucho cuidadoenescribirloscorrectamente. Losnombresdelasvariablespredefinidas,talescomo$HTTP_GET_VARS,$_GET,etcteravanen maysculas. Noolvidesponerpuntoycomaalfinaldecadalneadeinstrucciones. Prestaatencinalaapertura/cierredecomillasymuchamsatencinansisetratadecomillas anidadas.Enestecasoprocurausar(")paralasexterioresy(')paralasinteriores. En modo local puedes establecer las configuraciones de php.ini a tu antojo y, adems, ests utilizando una versin 5.2... de PHP que permite superglobales. Esta versin junto con la posibilidaddemodificarphp.initepermiteutilizarcualquieradelasopcionesdetransferenciade variables. Pero,sipretendespublicartuspginasutilizandounhostingajenodebescerciorartedeculessu versin de PHP no todos tienen instaladas versiones superiores a 4.1.0 y conocer la configuracindesusphp.ini. Tenencuentaqueallnovasapodermodificarlasconfiguracionesydenotenerencuentaestos aspectos,puedesverteobligadoamodificartucdigofuenteparaadecuarloalaconfiguracinde tuhosting. 3.ENVOATRAVSDEFORMULARIOS Lainteraccinclienteservidorqueacabamosdever,resultaincmodaensuusoynodemasiado esttica. Hayunasegundaopcinladeusomsfrecuentequeeslautilizacindeformularios. Los formularios no son elementos propios de PHP actan del lado del cliente y su estudio es mspropiodelmbitodeHTMLquedePHP. Ejemplo12.php U.T.8UTILIZANDOFORMULARIOS Pgina:3

Escribe tu nombre:
Escribe tu clave: solo se diferencia del anterior en que en el momento de rellenarlo se sustituyen los caracteres visualizados (no el contenido) por asteriscos //-->


Elige tu color de coche favorito:
permite optar entre varios valores posibles. Habr que repetirlos tantas veces como opciones queramos habilitar. Todos los input correspondientes a la misma opcin deben tener el mismo nombre (name) value='loquesea' deber tener un valor distinto en cada uno de ellos. Ese valor (loquesea) ser transferido a travs del formulario Si queremos que una opcin aparezca marcada (por defecto) al cargar el formulario, deberemos incluir en su etiqueta la palabra checked los contenidos de value no se visualizan en el navegador por lo que conviene incluir una descripcin de los valores despus de cerrar la etiqueta de cada input Al enviar el formulario solo se transmite el value correspondiente a la opcin seleccionada //-->

Rojo Verde Azul Elige los extras:
requiere un nombre distinto (name) y un valor (value) permite optar entre varios Esos valor (loquesea) sern transferidos a travs del formulario cuando la casilla de verificacin est marcada Si queremos que una casilla aparezca marcada (por defecto) al cargar el formulario, deberemos incluir en su etiqueta la palabra checked los contenidos de value tampoco aqu se visualizan en el navegador por lo que conviene incluir una descripcin de los valores despus de cerrar la etiqueta de cada input Al enviar el formulario solo se transmite los value Pgina:4

U.T.8UTILIZANDOFORMULARIOS

correspondiente a la opcin marcadas

//-->

Aire acondicionado
Tapiceria en piel
Llantas de aluminio
Cul es el precio mximo
que estaras dispuesto a pagar? requiere un nombre y requiere tambin una etiqueta de cierre Entre ambas -apertura y cierredeben incluirse las diferentes opciones entre las de etiquetas valor Al enviar el formulario se transmite lo contenido despus de opcin en la opcin seleccionada si dentro de una etiqueta option escribimos selected ser esa la que aparezca por defecto al cargarse el formulario//-->

Menos de 6.000 euros 6.001 - 8.000 euros 8.001 - 10.000 euros 10.001 - 12.000 euros 12.001 - 14.000 euros Ms de 14.000 euros
Escribe aqu cualquier otro comentario: