Guía PHP para Desarrollo Web
Guía PHP para Desarrollo Web
1. INTRODUCCION:
PHP es un lenguaje de programación de uso general de código del lado del servidor
originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los
primeros lenguajes de programación del lado del servidor que se podían incorporar
directamente en el documento HTML en lugar de llamar a un archivo externo que
procese los datos. El código es interpretado por un servidor web con un módulo de
procesador de PHP que genera la página Web resultante. PHP ha evolucionado por lo
que ahora incluye también una interfaz de línea de comandos que puede ser usada en
aplicaciones gráficas independientes. Puede ser usado en la mayoría de los servidores
web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo.
Fue creado originalmente por Rasmus Lerdorf en 1995. Actualmente el lenguaje sigue
siendo desarrollado con nuevas funciones por el grupo PHP.2 Este lenguaje forma
parte del software libre publicado bajo la licencia PHP, que es incompatible con la
Licencia Pública General de GNU debido a las restricciones del uso del término PHP.3
2. OBJETIVOS:
3. EQUIPOS Y MATERIALES:
▪ Computadora personal.
▪ Programa phpDesigner 8 correctamente instalado.
▪ Apuntes de los ejercicios resueltos en la clase.
• Encender el computador.
• Crear carpeta donde guardará sus scripts (proyectos, paquetes, librerías, etc.).
• Crear una carpeta en la unidad D:\ con su apellido paterno. Esta carpeta será el
workspace (área de trabajo) donde estarán almacenados sus proyectos.
• Ejecutar el aplicativo phpDesigner 8.
• Codificar los algoritmos desarrollados en clase.
• Guardar (copiar) la carpeta de sus proyectos a su memoria flash (USB), como
respaldo.
5. BIBLIOGRAFIA IMPRESCINDIBLE:
ASPECTOS BASICOS
a. INTRODUCCION
Actualmente la red de Internet, compuesta por páginas web, sirve de soporte a una
gran cantidad de sistemas de información y comunicaciones que engloban áreas tan
importantes como la investigación, el comercio electrónico, la visualización de
información, el correo electrónico.
Las páginas web son textos ASCII escritos en HTML (Hypertext Markup Language),
que se transfieren entre los servidores de WWW y los navegadores mediante el
protocolo HTTP (Hypertext Transfer Protocol).
Cuando comenzó la World Wide Web, los sitios web ofrecían páginas estáticas, es
decir, que a efectos del usuario, el único proceso realizado era el de visualización de
sus contenidos por parte del navegador del cliente.
• Las páginas del lado del servidor, permiten modificar los contenidos antes de
enviarlos al cliente. Las primeras fueron CGI (Common Gateway Interface) que
implementan páginas web activas en el servidor, capaces de leer lo que le
enviaba un cliente al servidor a través de un formulario, o escribir en la página
del cliente.
PHP es capaz de realizar determinadas acciones de una forma fácil y eficaz sin tener
que generar programas programados en un lenguaje distinto al HTML. Esto se debe
a que PHP ofrece un extenso conjunto de funciones para la explotación de bases de
datos sin complicaciones. Es por esto, que levanta un mayor interés con respecto a
los lenguajes pensados para los CGI.
PHP fue desarrollado originalmente por Rasmus Ledford en 1994 como un CGI
escrito en Perl que permitía la interpretación de un número limitado de comandos.
El sistema fue denominado Personal Home Page Tools y consiguió relativo éxito
gracias a que otras personas pidieron a Rasmus que les permitiese utilizar sus
programas en sus propias páginas. Cuando Rasmus tuvo la necesidad de crear
páginas dinámicas que trabajasen con formularios, creó una serie de etiquetas a las
que denominó “Form Interpreters”, y lo sacó al público con el nombre de PHP/FI en
1995. Luego salió la versión mejorada, llamada PHP/FI 2.0.
PHP3 carecía del uso de sesiones, algo muy común en las páginas web de cierta
complejidad. En el año 2000, PHP3 evolucionó a PHP4, que utiliza el motor Zend
(desarrollado por Zeev y Andi encargado de interpretar el código fuente de los
scripts de PHP), desarrollado para cubrir las necesidades actuales y solucionar
algunos inconvenientes de la anterior versión. Algunas mejoras de esta nueva
versión son su mayor independencia del servidor web y su rapidez, ya que primero
Una diferencia sensible es que PHP ha sido desarrollado inicialmente para entornos
UNIX y es en este sistema operativo donde se aprovechan mejor sus prestaciones y
consigue un mayor rendimiento. ASP, que es una tecnología Microsoft, está
orientado a sistemas Windows, especialmente la familia de servers.
b. SERVIDORES Y CLIENTES
Es frecuente observar, en la calle, que son muchas las personas que cuando se refieren
a los servidores lo hacen como sí se tratara de máquinas complejísimas, misteriosas,
lejanas y enormes que, bajo esa aureola de cripticismo, parecen totalmente distintas
al ordenador que usamos habitualmente. ¡Nada más lejos de la realidad!.
Cada una de esas empresas puede atender peticiones de uno solo o de varios servicios
distintos (pizzas, helados, o platos regionales, por citar algunos ejemplos), pero la
Mg. NEGRETE CARHUARICRA, Lisbeth Gisela EFPSyC -4-
Guía Nro. 02 Desarrollo Web Entorno Servidor
oferta de cada uno de esos servicios requiere una infraestructura adecuada a cada
caso. La oferta de pizzas exigirá disponer de un horno, y la de helados necesitará de
una instalación frigorífica.
Pues bien, algo muy similar ocurre con los host. También éstos pueden ofrecer uno o
varios servicios (páginas web, correo electrónico, transferencias FTP, noticias,
etcétera) y también es necesario que cada servicio disponga de su propia
infraestructura, que en este caso sería un programa distinto (software de servidor)
para cada uno de ellos.
Como puedes ver, no basta con hablar de servidores. Es necesario especificar también
qué es lo que sirven. Habría que decir: servidor de páginas web, servidor de correo,
etcétera y tener presente que –aunque convivan en la misma máquina– cada uno de
ellos requiere su propio software y su propia configuración.
Cada tipo de petición tendrá contenidos distintos. Por ejemplo, cuando se trata de
leer mensajes de correo, la petición realizada por el cliente (Outlook Express)
contendría, entre otros, muchos de los datos de la configuración de la cuenta, tales
como: el protocolo (forma de comunicación) –en el caso del correo lo habitual sería
el protocolo POP (Post Office Protocol)–, el nombre de host donde está alojado el
buzón (servidor POP ó servidor de correo entrante), el nombre de la cuenta, la
contraseña de acceso, y algunas otras informaciones relativas a la gestión de esa
cuenta tales como si deben conservarse o no los mensajes en el servidor, etcétera.
Una vez resuelta esa petición por el servidor DNS (direccionamiento de la petición
a la IP correspondiente) se comprobará si esa IP está activa (si efectivamente hay
un ordenador conectado a través de ella) y, en caso de estarlo, se determinará si
ese ordenador al que estamos accediendo es capaz de atender la petición.
¿QUÉ TIENE QUE OCURRIR PARA QUE PUEDA ATENDERSE UNA PETICIÓN?
Solo falta que una vez recibida la respuesta Outlook Express (cliente) interprete la
información recibida y nos permita visualizar o imprimir el contenido de los
mensajes descargados del servidor.
Hasta ahora –al referirnos a servidores y clientes– hemos hecho alusión a dos
máquinas: nuestro propio ordenador (ordenador local) en el que estarían
instaladas las aplicaciones cliente y un ordenador remoto en el que se alojarían las
aplicaciones de servidor. Eso es lo más habitual, pero no es la única posibilidad.
Dado que servidor y cliente son únicamente aplicaciones, es perfectamente posible
que ambas convivan dentro de la misma máquina.
Una de las clasificaciones más simples de las páginas web permitiría agruparlas en dos
tipos: estáticas y dinámicas.
<html>
<head>
</head>
<body>
Hoy es 22 – 09 - 2011 y son las [Link] horas
</body>
</html>
Las peticiones de páginas estáticas se realizan de la forma que puedes ver en este
esquema.
documento– contiene como dirección una ruta (el path que conduce hasta el
documento) mientras que en la de la derecha aparece el sintagma http al principio de
la dirección.
En el primer caso no hemos hecho ninguna petición de página web sino que hemos
abierto un documento cuya extensión (html) está asociada en nuestra configuración
de Windows con Firefox, Internet Explorer, Chrome, Opera o cualquier otro navegador
que tengamos instalado en nuestro equipo. El proceso ha sido exactamente el mismo
que si hubiéramos hecho doble clic sobre el icono de un documento con extensión txt,
con la única salvedad de que en este último caso se habría abierto el bloc de notas (por
la asociación de extensiones y aplicaciones en la configuración de Windows).
En el segundo caso las cosas son distintas. Se incluye el sintagma http – acrónimo
de HiperText Transfer Protocol– para indicar que ese es el protocolo que debe ser
utilizado y que será preciso que el servidor que reciba la petición sea capaz de
interpretarlo. Por eso a los servidores que alojan páginas web se les suele
llamar servidores web o servidores HTTP dado que se les requiere que soporten este
protocolo.
PÁGINAS DINÁMICAS
Llamaremos dinámicas a las páginas cuyos contenidos sí pueden ser modificados –de
forma automática o mediante la intervención de un usuario– bien sea desde el cliente
y/o desde el servidor.
Para que una modificación de este tipo pueda producirse es necesario que algo o
alguien especifique: qué, cómo, cuándo, dónde y de qué forma debe hacerse el
cambio, y que exista otro algo o alguien capaz de: acceder, interpretar y realizar, en
el momento preciso, las instrucciones de modificación. Igual que ocurre en el contexto
de la vida cotidiana, las especificaciones y las instrucciones precisan de un lenguaje
para poder definirlas, un soporte para almacenarlas, y un intérprete capaz de
ejecutarlas.
d. SCRIPTS
código HTML que ha de ser interpretado por el navegador, y por la otra, los scripts que
han de ser ejecutados por el intérprete propio del lenguaje en el que hayan sido
escritos.
Lo que no está contenido entre esas etiquetas será considerado código HTML.
La posibilidad de insertar en un mismo documento scripts escritos en distintos
lenguajes obliga a especificar cuál se ha utilizado en cada caso, para que en el
momento en el que vayan a ser ejecutados se invoque el intérprete adecuado.
Para ello, dentro de la propia etiqueta de apertura (<script>) se inserta una referencia
al tipo de lenguaje con esta sintaxis: language="nombre"
Por ejemplo:
<script language="PHP">
......
...... instrucciones ..
......
</script>
Indicaría que las instrucciones están escritas con la sintaxis de PHP. Por el contrario, al
escribir:
<script language="JavaScript">
......
...... instrucciones ..
......
</script>
Para el caso concreto de PHP, existe una sintaxis alternativa, mucho más cómoda y
habitual. Es la siguiente:
<?php
......
......instrucciones..
......
?>
Aquí <?php hará la misma función que <script language="PHP"> y ?> será equivalente
a </script>. ¿Con la configuración adecuada también podríamos usar <? –en vez
Mg. NEGRETE CARHUARICRA, Lisbeth Gisela EFPSyC - 10 -
Guía Nro. 02 Desarrollo Web Entorno Servidor
LENGUAJES DE SCRIPT
Diremos que un lenguaje es del lado del cliente cuando el intérprete que ha de
ejecutar sus scripts es accesible desde éste –el cliente– sin que sea necesaria ninguna
intervención en este sentido por parte servidor.
Seguramente te ha ocurrido alguna vez que al intentar acceder a una página web ha
aparecido un mensaje advirtiendo que para la correcta visualización de la página se
requiere un plug-in determinado, y que, a la vez, se te haya ofrecido la posibilidad de
descargarlo en ese momento. Eso ocurre porque cuando el navegador –que en el caso
de las páginas web es el cliente– trata de interpretar la página, encuentra incrustado
en ella algo (un fichero de sonido, una animación Flash, etcétera) que –de forma muy
similar a lo que ocurre con los scripts– requiere un intérprete adecuado del que no
dispone en ese momento. Cuando los scripts contenidos en un documento son de este
tipo, el servidor lo entrega al cliente si efectuar ningún tipo de modificación.
Sin pretender hacer una enumeración exhaustiva, entre los lenguajes de script del lado
del cliente los más populares son: DHTML, JavaScript y VBScript.
JavaScript es uno de los lenguajes más populares. Cada navegador incluye su propio
intérprete y es frecuente que los resultados de visualización sean algo distintos según
el navegador y la versión que se utilice. Parece ser que las versiones más recientes de
los distintos navegadores se aproximan a un estándar –ECMA Script-262– que ha sido
desarrollado por la ECMA (Asociación Europea de Normalización de Sistemas de
Información y Comunicación), lo que hace suponer que en un futuro muy próximo
todos los navegadores se ajustarán a esa especificación y que, con ello, las páginas
web ya se visualizarán de forma idéntica en todos ellos.
Aquí tienes dos ejemplos de páginas web dinámicas. Ambas utilizan los JavaScript que
puedes ver en rojo en su código fuente. Si ejecutas este ejemplo en el navegador web
el primero de estos dos ejemplos verás que la fecha que aparece en la página es la
fecha actual de tu sistema, y además, cada vez que pulses el botón “Actualizar” de tu
navegador comprobarás que esa intervención del usuario modifica los contenidos
actualizando la hora que aparece en el documento.
<html>
<head>
<script type="text/javaScript">
var son= new Date();
var fecha=[Link]()+" - "+([Link]()+1)+" - "+[Link]();
var hora=[Link]()+":"+[Link]()+":"+[Link]();
[Link]('Hoy es '+fecha+' y son las '+hora+' horas');
</script>
</head>
<body>
</body>
</html>
<html>
<head>
<script type="text/javaScript">
var reloj=0;
var frecuencia=5000;
function actualiza(){
var son= new Date();
var fecha=[Link]()+" - "+([Link]()+1)+" -
"+[Link]();
var hora=[Link]()+":"+[Link]()+":"+[Link]();
var escribe='Hoy es '+fecha+' y son las '+hora+' horas';
var situa=[Link]('capa0');
[Link]=escribe;
reloj=setTimeout("actualiza()",frecuencia);
}
</script>
</head>
<body onLoad="actualiza()";>
<div id="capa0">
</div>
</body>
</html>
Un lenguaje es del lado del servidor cuando la ejecución de sus scripts se efectúa, por
instancia de este –el servidor–, antes de dar respuesta a la petición, de manera que el
cliente no recibe el documento original sino el resultante de esa interpretación previa.
Cuando se usan estos tipos de lenguaje el cliente recibe un documento en el que cada
script contenido en el original habrá sido sustituido por los resultados de su ejecución.
Esto es algo a tener muy en cuenta, porque, en este caso, los usuarios no tendrán la
posibilidad de visualizar el código fuente, mientras que cuando se trata de lenguajes
del lado del cliente siempre es posible visualizar los scripts, bien sea de forma directa
–mirando el código fuente de la página recibida– o leyendo el contenido de ficheros
externos –vinculados a ella– que son bastante fáciles de encontrar en la caché del
navegador. La utilización de este tipo de scripts requiere que el intérprete del lenguaje
sea accesible –esté del lado– desde el propio servidor.
Entre los lenguajes del lado del servidor los más populares son: PHP, ASP, PERL y JSP.
Cada uno de ellos tiene sus propias peculiaridades. No abundaremos en ellas.
Nosotros trataremos aquí sobre PHP.
Dado que en unos casos el servidor debe entregar el documento original –páginas
estáticas o páginas dinámicas en las que se usan lenguajes del lado del cliente–
mientras que en otros casos –páginas dinámicas usando lenguajes del lado del
servidor– tiene que devolver el resultado de la ejecución de los scripts, es razonable
que te preguntes: ¿cómo sabe el servidor lo que debe hacer en cada caso?
La respuesta es simple. Eso hay que decírselo. Y se le dice de una forma bastante
simple. Se indica al poner la extensión al documento. Si en la petición se alude a un
documento con extensión .htm o .html el servidor entenderá que esa página no
requiere la intervención previa de ningún intérprete de su lado y entregará la página
tal cual.
Si en esa petición se aludiera a una extensión distinta –.php, por ejemplo– el servidor
entendería que antes de servir la página debe leerla y requerir al intérprete de PHP
que ejecute los scripts desarrollados en ese lenguaje (en caso de que los contuviera) y
devolvería al cliente el documento que resultara de las eventuales ejecuciones de tales
scripts.
El lenguaje PHP dispone de funciones que le permiten acceder a muy diversos tipos de
servidores de bases de datos pudiendo: crear, consultar, borrar y modificar tanto
bases de datos como tablas y registros de las mismas. Nosotros vamos a utilizar
MySQL, unos de los gestores más potentes y populares que existen en este momento
De acuerdo a lo comentado en los párrafos anteriores el uso del lenguaje PHP requiere
a. PÁGINAS PHP
Las páginas PHP pueden ser páginas web normales a las que únicamente se les cambia
la extensión tradicional (.htm ó .html) , por la extensión .php. Observemos este código
fuente. Como verás, se trata de una página web muy simple que no contiene ningún
script PHP.
<html>
<head>
<title>Aprendiendo PHP</title></head>
<body>
Esta es una página supersimple
</body>
</html>
Todo script PHP debe de iniciar y terminar con las siguientes etiquetas:
<?php
?>
servidor.
c. INDENTACION EN PHP
ESTANDARIZACIÓN DE CÓDIGO
Como regla de estilo, se sugiere utilizar indentación de 4 espacios en blanco y
dejar una línea en blanco, entre estructuras de control.
En una página cuyo nombre tenga por extensión .php se pueden insertar instrucciones
–escritas en lenguaje PHP– anteponiendo <?php a la primera instrucción y
escribiendo ?> después de la última. A cada uno de estos bloques de instrucciones le
llamaremos un script. No existe límite en cuanto al número de scripts distintos que
pueden insertarse dentro de una página.
Para facilitar la depuración de los scripts no suelen escribirse dos instrucciones en una
misma línea.
Esta es otra manera –la más habitual– de utilizar print. Ahora encerramos entre
paréntesis la cadena que pretendemos que aparezca impresa en la página web. El
Mediante una sola instrucción echo pueden presentarse de forma simultánea (en la
ventana del navegador del cliente) varias cadenas de caracteres y /
o constantes y variables. Basta con ponerlas una a continuación de otra utilizando una
coma como separador.
<html><head><title>Constantes</title></head>
<body>
<?php
/* Definiremos la constante DolarSoles y le asignaremos el valor
2.82 */
define("DolarSoles",2.82);
<?php
function prueba(){
echo "Valor de la constante DolarSoles a: ". DolarSoles
. "<BR>";
print "Valor de la constante SolesDolar: ". SolesDolar.
"<BR>";
echo "Valor de la constante Cadena: ", Cadena , "<BR>";
print ("Valor de la constante Cadena x DolarSoles: " .
Cadena* DolarSoles .
"<br>");
print ("Valor de la constante Cadena2 x DolarSoles: " .
Cadena2* DolarSoles .
"<br>");
}
<?php
prueba();
?>
</body>
</html>
ESTANDARIZACIÓN DE CÓDIGO
Como regla de estilo se sugiere optar por una de ellas y no utilizar ambas funciones
en una misma app.
Existen dos tipos de comillas: dobles « " » (SHIFT+2) y sencillas « ' » (tecla ? en
minúsculas). Cuando es preciso anidar comillas deben utilizarse tipos distintos para las
exteriores y para las interiores.
Para que una instrucción echo o print interprete unas comillas como texto –y no
como un delimitador de la cadena– es necesario anteponerles un signo de barra
invertida(\).
En argot suele decirse escaparlas. En ningún caso –ni con echo ni con print– está
permitido sustituir las comillas exteriores (las que encierran la cadena) por \". Esta
sintaxis solo es válida para indicar a PHP que debe interpretar las comillas como un
carácter más.
En la página siguiente veremos las diferentes opciones de las líneas de comentarios. Al
realizar el ejercicio que te proponemos no es necesario que pongas los comentarios
del ejemplo.
<html>
<head>
<title>Aprendiendo PHP</title></head>
<body>
Esta es una página supersimple
<?php
echo "¿Aparecerá esta linea?";
?>
</body>
</html>
Veamos ahora un ejemplo con las diferentes opciones de uso de las comillas.
<html>
<head>
<title>Aprendiendo PHP</title></head>
<body>
<?php
/* Las instrucciones PHP son las que aparecen en rojo.
Las etiquetas en azul intenso son el código HTML.
A primera vista pueden parecer inútiles. ¿Para qué recargar las páginas con
contenidos que no se van a ver ni ejecutar?. Las líneas de comentario sirven para
poder recordar en un futuro qué es lo que hemos hecho al escribir un script y por qué
razón lo hemos hecho así.
A medida que vayamos avanzando verás que en muchos casos tendremos que aplicar
estrategias individuales para resolver cada problema concreto. Cuando necesites
hacer una corrección o una modificación al cabo de un tiempo verás que confiar en la
memoria no es una buena opción. Es mucho mejor utilizar una línea de comentario
que confiar en la memoria. ¡Palabra!
COMENTARIOS
Para insertar comentarios en los scripts de PHP podemos optar entre varios métodos
y varias posibilidades:
Basta colocar los símbolos // al comienzo de la línea o detrás del punto y coma que
señala el final de una instrucción. También se puede usar el símbolo # en cualquiera
de las dos posiciones.
• VARIAS LÍNEAS
<html>
<head>
<title>Ejemplo 9</title></head>
<body>
<?php
// Este comentario no se verá en la página
/* Este es un comentario de
múltiples líneas y no se acabará
hasta que no cerremos así.... */
¡Cuidado!
Si tu sistema operativo es Ubuntu es muy probable que en vez de los mensajes de
error comentados en los ejemplos anteriores solo visualices una página en blanco.
Ello es debido a la configuración por defecto de la directiva display_errors de [Link].
g. DEFINIR CONSTANTES
Una constante es un valor –un número o una cadena– que no va a ser modificado a
lo largo del proceso de ejecución de los scripts que contiene un documento. Para
mayor comodidad, a cada uno de esos valores se le asigna un nombre, de modo
que cuando vaya a ser utilizado baste con invocar ese nombre.
Cuando ponemos nombre a una constante se dice que definimos esa constante.
define("nombre","valor");
Dónde nombre es una cadena que contiene la palabra que pretendemos asignar como
tal nombre y valor el contenido que pretendemos asignar a esa constante. El valor
debe escribirse entre comillas, salvo que se trate de una constante numérica que no
las requiere.
Si una cadena empieza por uno o varios caracteres numéricos, al tratar de operarla
aritméticamente PHP considerará únicamente el valor de los dígitos anteriores a la
primera letra o carácter no numérico.
Tal como puedes ver en el código fuente del ejemplo, es posible definir constantes a
las que se asigne como valor el resultado de una operación aritmética.