Documentos de Académico
Documentos de Profesional
Documentos de Cultura
IAW05 Contenidos VI
IAW05 Contenidos VI
1 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Caso práctico
Tras la presentación de las plataformas de
gestión de contenidos Félix y María han
pensado que les resultaría interesante ver las
posibilidades de personalizar aún más la
plataforma para adaptarla a sus necesidades.
María dice que ella tiene la sensación de que las alumnas del CFGS ASIR
tienen una actitud muy positiva y emprendedora en la empresa, y que le parece
que quizás se las podría dar una oportunidad con este proyecto.
Juan comenta que a él le parece una idea estupenda, que están muy
integradas en el departamento, y que no se les puede poner ninguna queja.
Según los informes que tiene de Laro y Vindio, cuando tienen alguna duda o
hay algo que no saben, no hay que olvidar que están formándose, preguntan
con gran interés cuando ya han agotado todas las posibilidades de resolverlo
por sus propios medios.
Juan tiene la idea de hablar con ellas para saber que conocimientos tienen de
programación en PHP para evaluar la posibilidad de solicitarles la adaptación
de las plataformas. Para ello decide hablar con Laro y Vindio para pedirles que
comprueben los conocimientos que tienen de programación, comenzando por
las cuestiones básicas, como son: la integración de este lenguaje con los
lenguajes de marcas, los distintos tipos de datos, el tratamiento y visibilidad de
variables al trabajar con funciones, las estructuras de control del lenguaje, la
gestión de errores, uso de formularios y sesiones.
2 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
multiplicar su potencialidad.
3 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
1.- Clasificación.
Caso práctico
María tiene una reunión con el departamento de
informática para informarles de la potencial necesidad
de intentar adaptar las plataformas, y hacer
modificaciones “a medida”, y de la posibilidad de
contratar a alguien más para desarrollar ese trabajo, si
dicha necesidad se confirma.
Esta clasificación queda reflejada en la tabla adjunta: Symphoney Symphoney (CC BY)
4 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
5 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Caso práctico
Juan continúa explicando que PHP es un lenguaje de
script de lado de servidor, multiplataforma y con una
integración inmediata con HTML que además, puede
utilizarse de modo muy sencillo junto a otros lenguajes
de marcas y, lo más interesante, junto a cualquier
fichero XML.
PHP no está limitado a ser usado junto con HTML, ya que puede
ser usado en combinación de XHTML y cualquier tipo de ficheros
XML.
Debes conocer
Este enlace te lleva a una presentación en la que verás cómo embeber PHP
con HTML.
6 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Título
Requisitos previos.
7 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Archivo informe.php
8 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Ver informe.php
9 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
0,83 KB) .
Ejemplo 1. Ejecución.
10 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Ejemplo 2. Ejecución.
11 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Ejemplo 3. Ejecución.
12 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Comparación Ejemplo 2 y
Ejemplo 3.
Fin.
13 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
1 2 3 4 5 6 7 8 9 10 11 12 13
Autoevaluación
PHP es un lenguaje de script de servidor que permite crear y guardar
ficheros con formato XML. ¿Verdadero o Falso?
Falso.
Verdadero.
Solución
14 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
1. Incorrecto
2. Opción correcta
15 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Caso práctico
Al salir de la reunión, Vindio habla con las estudiantes
y les pregunta si conocen el lenguaje PHP.
Naroba también le explica que, dado el carácter de Alain Bachellier (CC BY-NC-SA)
Opciones de lenguaje.
Limitación de recursos.
Manipulación de errores.
16 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Directorios.
Otros.
Debemos tener presente que PHP busca los ficheros INI en cada directorio desde el
directorio del fichero solicitado hasta el directorio donde se encuentra el documento raíz
actual, esto es: DocumentRoot.
Desde la versión 5.1. de PHP, es posible referenciar a variables ini existentes en ficheros .ini.
¿Cuál es la utilidad de esta característica?
Agrupar en una sola sección las variables de configuración que más se modifiquen por tener
un servidor en el que se utilicen distintas configuraciones.
17 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Caso práctico
Viendo que no es un lenguaje nuevo para ellas, Laro les
pregunta por el editor que utilizaban para programar
cuando estudiaron ese lenguaje.
Jana dice que ella prefería trabajar con un IDE gratuito Alain Bachellier (CC BY-NC-SA)
por lo que usaba HTML-Kit, mientras que Noiba usaba
el editor Notepad++ para Windows.
Existen diversos IDE gratuitos que facilitan la tarea de codificar ficheros web,
proporcionando ayuda para HTML y PHP. Uno de ellos es HTML-Kit. Los usuarios de
Gnome cuentan con herramientas como Scribes. Al final de este apartado cuentas con un
enlace a diversos IDE gratuitos.
También existen IDE con licencia de pago, seguro que has oído hablar de
Dreamweaver.
18 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Autoevaluación
Cuáles de los siguientes editores puede usarse para codificar en PHP:
Gedit.
Kate.
HTML-Kit.
Word.
Mostrar retroalimentación
Solución
19 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
1. Correcto
2. Correcto
3. Correcto
4. Incorrecto
20 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Caso práctico
Vindio les dice que es estupendo que conozcan los
elementos básicos del lenguaje.
Laro le explica que esa actitud es la habitual hasta que uno trabaja en
proyectos reales, y tiene que invertir tiempo en comprender aquello que hacen
los demás para poder realizar su trabajo. Pero que documentar los programas
es tan importante como documentar las instalaciones. También la tranquiliza
respecto a la POO, ya que le dice que, al menos, inicialmente no van a
necesitar un altísimo nivel de programación y podrán desenvolverse sin un gran
dominio de la POO.
21 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
como “Instrucción separador”. A este efecto sirve también el símbolo de cierre de bloque de
PHP , el “?>”.
Comentarios.
Constantes.
Variables.
Tipos de datos.
Funciones.
Objetos.
Autoevaluación
Para indicar la finalización de una sentencia de código se usa:
El punto, ".".
La coma, ",".
Mostrar retroalimentación
Solución
1. Incorrecto
22 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
2. Correcto
3. Incorrecto
4. Correcto
23 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
5.1.- Comentarios.
Los comentarios se emplean tanto para proporcionar
determinada información sobre el código, como para
deshabilitar una parte del mismo y evitar que se ejecute, ya
que las líneas de comentario son ignoradas por el intérprete.
Cuando se realiza una modificación en los ficheros afectados se comenta el código antiguo y
se delimita donde comienza y termina la modificación, añadiendo una explicación sobre la
actualización en las líneas de comentario en la cabecera del fichero.
Comentario de línea: son válidos sólo hasta el final de línea o del bloque de código
PHP. ¿Cómo se crean? Empleando los símbolos: // y # , siendo más habitual usar el
primero.
NOTA: la etiqueta </script> no finaliza un bloque de código PHP, mientras que ?> si lo
hace. Si está activada la directiva ASP_TAGS, la etiqueta %> funciona igual que ?>.
Comentario de bloque: permite comentar varias líneas hasta que encuentra el símbolo
de fin de comentario. Los símbolos utilizados son /* para iniciar el bloque y */ para
finalizarlo.
Autoevaluación
¿Cuáles de las siguientes cadenas de caracteres indican el comienzo de
comentarios?
//
24 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
%>
/*
Mostrar retroalimentación
Solución
1. Correcto
2. Correcto
3. Incorrecto
4. Correcto
25 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
define(“PI” 3.141592);
christine kaelin (CC BY-NC-ND)
Una vez que se define una constante no se puede cambiar el valor que se le ha asociado y
puede referenciarse desde cualquier punto del código.
Además de las constantes definidas por el programador, PHP cuenta con una lista de
constantes predefinidas en el sistema que pueden ser utilizadas en cualquier instante.
Por ejemplo: $mi_numero = 75; donde: mi_numero es el nombre de la variable, fíjate en que va
precedido por el símbolo de dólar $, y 75 es el valor que almacenamos en la variable.
Podemos cambiar el contenido de una variable todas las veces que sea necesario a lo largo
del programa.
PHP cuenta con variables predefinidas, además de las variables que pueda definir el
programador para que el script se ejecute de manera correcta. Estas variables predefinidas
facilitan el trabajo de los programadores. De las más conocidas y empleadas son las
variables $_POST[···] y $_GET[···], muy empleadas para la recuperación de valores desde
formularios web.
Existe una regla para proporcionar el nombre a las variables y a las constantes. Un nombre
válido comienza por un subguión o una letra, al que puede seguir otras letras, números o
26 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
subguiones.
Para las variables, el nombre siempre va precedido del signo dólar ($) y es sensible a
mayúsculas.
Las principales diferencias que podemos establecer entre constantes y variables son:
27 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Esta forma de trabajar proporciona más flexibilidad al permitir que una variable pueda ser
inicialmente de tipo numérico, y luego se transforme en otro tipo distinto, pero obliga al
programador a tener un mayor control sobre los datos que se almacenan en las variables y
las operaciones que se realizan con ellas.
Si se quiere forzar un tipo de dato específico a una variable, lo podemos hacer indicando
delante de la variable el tipo que deseamos que tenga. Para ello se pone entre paréntesis el
nombre del tipo de dato; por ejemplo:
Debes conocer
Visitando este enlace podrás ver una clasificación de los tipos que se emplean
en PHP, así como otros enlaces para saber más sobre cada tipo en concreto:
28 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Autoevaluación
¿Cuáles de los siguientes tipos de datos son válidos en PHP?
char.
integer.
float.
array.
Mostrar retroalimentación
Solución
1. Incorrecto
2. Correcto
3. Correcto
4. Correcto
29 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Caso práctico
Noiba recuerda que entre los elementos del lenguaje
estaban los operadores y, le parecía que su precedencia
era muy semejante, por no decir igual, que la que había
estudiado en matemáticas.
Según el tipo de operación que realizan, los operadores más utilizados se clasifican en:
30 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Falso.
Al final de la página tienes un enlace al sitio oficial de PHP donde podrás ampliar la
información sobre los distintos tipos de operadores.
Otra posible clasificación puede hacerse en función del número de operandos sobre los que
actúan:
31 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Caso práctico
Naroba les habla de las sentencias de control y les
explica que le costó un tiempo diferenciar entre las
condicionales y los bucles. Aunque ahora le parece
algo evidente, no sabe porqué motivo había ocasiones
en que usaba condicionales en lugar de utilizar bucles.
Jana recuerda que a ella le supuso un gran trabajo Alain Bachellier (CC BY-NC-SA)
aprender a poner la condición adecuada para terminar
la ejecución de los bucles y casi siempre le fallaban los códigos por ese
motivo, ya que entraban en bucles infinitos.
32 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
FOREACH.
WHILE.
DO - WHILE.
Además, Existen dos comandos para salir de forma forzada de las estructuras anteriores,
que son:
BREAK.
CONTINUE.
Autoevaluación
Los bucles se diferencian de los condicionales en que las sentencias
contenidas en la estructura se pueden ejecutar solo una vez en el caso de
las condicionales y varias veces en los bucles:
Falso.
Verdadero.
Solución
1. Incorrecto
2. Opción correcta
33 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
IF (expresión1)
IF (expresión2)
sentencia
Cuando queremos ejecutar otra sentencia cuando no se cumple la expresión del IF, se utiliza
el ELSE.
IF (expresión)
sentencia_1
ELSE
sentencia_2
ELSEIF, o también ELSE IF, es una combinación de las sentencias anteriores. La manera de
usarla es:
IF (expresión_1)
sentencia_1
ELSEIF (expresión_2)
sentencia_2
•••••••••••••••••••••••
ELSEIF (expresión_n)
sentencia_n
ELSE
sentencia_p
34 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
No hay que confundir los IF anidados con los ELSEIF. Los primeros exigen que la
expresiones se cumplan en cascada, los segundos requieren que la expresión
anterior no se verifique para ejecutar la sentencia de esa rama.
Para evaluar los posibles valores que puede tomar una variable es mejor usar: SWITCH - CASE
que ir anidando condiciones semejantes en una sentencia IF - ELSEIF - ELSE. Su construcción
es:
SWITCH (variable) {
CASE valor_1:
sentencia
••••••••••••••••
CASE valor_n:
sentencia
DEFAULT:
sentencia
}
Con DEFAULT se recogen todos aquellos valores que no se hayan considerado explícitamente
y es la última opción que se valora. Su uso no es obligatorio.
35 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
WHILE (expresión) {
instrucción 1;
••••••••••••••••••
instrucción n;
}
DO - WHILE trabaja de la misma manera , la única diferencia es que en este último caso la
evaluación de la expresión se realiza al final y las sentencias siempre se ejecutarán al menos
una vez.
DO {
instrucción 1;
•••••••••••••••••••••
instrucción n;
} WHILE (expresión);
La estructura de un bucle FOR es más compleja. En lugar de emplear una expresión usa tres,
construyéndose la instrucción de la siguiente manera:
En PHP existe otra estructura de repetición que no está definida en todos los lenguajes de
programación. Se trata de FOREACH, que proporciona una manera rápida de iterar sobre
36 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
FOREACH (expresión) {
instrucción 1;
••••••••••••••••••••••••
instrucción n;
}
Ejercicio resuelto
Para utilizar FOREACH es necesario que el array esté reconocido como una
variable, de manera que no podemos definir el array en la instrucción. De los
siguientes ejemplos, que ilustran lo anterior, el primero es correcto, mientras
que el segundo no lo es.
Correcto.
Mostrar retroalimentación
<?php
37 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Erróneo.
Mostrar retroalimentación
<?php
foreach( array(1, 2, 3) as $valor ) { // No es posible definir el array dentro
$valor = 4 * $valor;
}
?>
38 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Al utilizar la estructura condicional SWITCH CASE es necesario emplear siempre una de estas
sentencias, habitualmente BREAK; ya que de no interrumpir la ejecución de la sentencia del
CASE por el que entró el flujo del código, continúa ejecutando los demás CASE que haya por
debajo aunque no verifiquen la condición. Esto se debe a que el SWITCH ejecuta las
sentencias de una en una cuando se encuentra una CASE coincidente. Por tanto, la estructura
SWITCH - CASE queda finalmente como sigue:
SWITCH (variable) {
CASE valor_1:
sentencias_1
break;
················
CASE valor_n:
sentencias_n
break;
DEFAULT:
sentencias_p
}
Autoevaluación
39 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Falso.
Verdadero.
Correcto, es muy importante que tengas clara esta diferencia entre ambas
estructuras.
Solución
1. Incorrecto
2. Opción correcta
40 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Caso práctico
Noiba se ríe y dice que ella ese problema no le tenía,
pero que para ella fue complicado entender la
codificación con funciones. Según ella, quien impartía el
módulo intentaba por todos los medios hacerle
comprender que al enfrentarse a un problema era más
sencillo si lo dividía en tareas más sencillas que se
codificaban en funciones independientes, y luego hacía
una que resolviese el problema completo recurriendo a
las que ya tenía resueltas. Pero a ella le parecía más
rápido y simple hacerlo todo en un bloque.
Naroba también se ríe y cuenta que el problema de Alain Bachellier (CC BY-NC-SA)
Una función es un fragmento de código que realiza una tarea concreta. Como
resultado de su acción, es habitual que devuelva un valor, y sólo uno, o ninguno.
Ten en cuenta que un array se considera un único valor.
Para codificar una función debemos empezar usando la palabra reservada function, seguida
del nombre y de paréntesis entre los que se especifica la lista de parámetros. En el cuerpo
de la función, delimitado por las llaves, se incluyen las líneas de código y se escribe al final
del mismo la palabra return , que determina el valor que devuelve la función. Si se omite, la
función devuelve el valor NULL .
Para nombrar funciones se siguen las mismas reglas que para las variables y las constantes.
41 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Además de las definidas por el programador, PHP incorpora una colección de funciones
predefinidas que sirven para realizar diversas tareas. Para poder utilizarlas algunas de ellas
necesitan que se hayan incluido extensiones específicas, como es el caso de las funciones
para conectar y gestionar bases de datos MySQL, sino devolverá un error "Undefined
Function".
Por último, añadir que el ámbito de actuación de una función es global y es independiente de
donde haya sido definida. Se puede invocarla antes de donde ha sido declarada, es decir,
puedes llamar a la función al comienzo del fichero y haberla codificado al final del mismo.
42 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
$_SESSION['cusuario'] = $usuario;
43 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Debes conocer
En los siguientes enlaces podrás ampliar información sobre el ámbito de las
variables.
Autoevaluación
La diferencia entre una variable local y una estática es que la primera no
se resetea entre dos llamadas a la función en la que está definida, es decir
cuando la ejecución sale de la función el valor de la variable permanece y
puede recuperarse si se llama a la función otra vez.
Verdadero.
Falso.
Incorrecto. Son las variables estáticas las que mantienen su valor cuando
salen de la función en la que está definida y puede ser recuperado si el
flujo de ejecución regresa a esa función, y las locales las que se reinician
siempre que salen de la función en la que están definidas.
Correcto. Son las variables estáticas las que mantienen su valor cuando
salen de una función y puede ser recuperado si el flujo de ejecución
regresa a esa función, mientras que las locales se reinician.
44 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Solución
1. Incorrecto
2. Opción correcta
45 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Por valor: es el método usado por defecto. Consiste en pasar el valor de la variable
para que la función trabaje con él, pero esta no puede modificar el valor de dicha
variable en memoria. ¿Y eso significa que al pasar una variable por valor a una función
la estamos convirtiendo en constante?
No, el parámetro puede cambiar de valor mientras se ejecuta la función, pero cuando el
control de la ejecución sale de esta, la variable vuelve a recuperar el valor que tenía
antes de entrar en la función.
El siguiente ejemplo muestra el modo de pasar a una función n parámetros por valor.
Las variables a las que se asigna un valor por defecto se escriben en la lista de
parámetros a la derecha de las que no lo tienen. El siguiente ejemplo muestra el modo de
pasar a una función dos parámetros por valor, uno por referencia, y dos con un valor definido
por defecto:
46 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Ejercicio resuelto
Crea una función a la que se le pase por valor una variable que sea el
porcentaje de ganancia de un bar por bebida, otra variable por referencia con
el precio base de esa bebida y una tercera que guarde una cadena de texto
que describa una bebida y tenga como valor predeterminado "café". La función
devolverá la frase: "El precio de la bebida: b, es de p euros."; siendo b y p
los valores contenidos respectivamente en las variables que guardan el precio
de una bebida y la descripción de una bebida. Tras llamar a la función se
sacarán los valores de las variables porcentaje y precio para comprobar si se
han alterado sus valores o no.
Mostrar retroalimentación
<?php
// Definimos la funcion:
function mibar($porcgano, &$precio, $bebida = "café") {
$porcgano = $porcgano/100;
$precio = (1 + $porcgano) * $precio;
return "El precio de la bebida: ".$bebida.", es de ".$precio
}
// Llamamos a la función dando como valores de entrada 8 al porcentaje y 1.10 al
$ganancia = 8;
$coste = 1.10;
mibar($ganancia, 1.10); //Llamada a la función, aquí se hace la asignación
echo "Ganancia: ".$ganancia." Coste: ".$coste."\n"; // Orden de visualizació
/* Devuelve:
El precio de la bebida: café, es de 1.188 euros.
Ganancia: 8 Coste: 1.188 */
$ganancia = 8;
$coste = 1.50;
47 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Autoevaluación
Marcar las respuestas que no son ciertas. Al usar el símbolo & antes de un
parámetro en el paso de variables a una función es que no se está
pasando esa variable:
Por referencia.
Por valor.
Mostrar retroalimentación
Solución
1. Incorrecto
48 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
2. Correcto
3. Correcto
4. Correcto
49 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Caso práctico
Vindio sonríe y confiesa que, cuando el comenzó a
programar, tampoco entendía el uso de funciones y
que intentaba minimizar la cantidad de parámetros
usando variables globales, lo que ponía muy nervioso
a su profesor.
Naroba le contesta que más o menos se defiende, Alain Bachellier (CC BY-NC-SA)
Vindio les explica que son muy importantes ya que gracias a ellos se puede
conseguir que el programa no termine bruscamente por ciertos errores, como
por ejemplo que el usuario se equivoque al introducir los datos.
Por ejemplo, para finalizar un script por generarse un error al no poder conectar con la base
de datos haremos:
$conexion = mysqli_connect("localhost", "alumno", "") or die("No se pudo conectar con la base de dat
En PHP una excepción puede ser lanzada, usando la palabra reservada throw, o capturada
mediante el uso de catch. La construcción try ··· catch permite la captura y tratamiento de los
errores. Cada bloque try debe tener al menos un bloque catch. La estructura de uso es:
50 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
try {
sentencias_2; //Se llama a la función que contiene las líneas anteriores.
}
catch (Exception e) {
sentencias que gestionan la excepción;
}
El funcionamiento es el siguiente: si se produce algún error en las sentencias del bloque try,
se lanza una excepción que será capturada, si corresponde el tipo, por el bloque catch;
ejecutándose entonces las sentencias para tratar el error producido.
Autoevaluación
Para que sea capturada una excepción es necesario que:
Sea lanzada para que pueda ser recogida.
Se haya definido la acción en el fichero php.ini.
La excepción sea del mismo tipo que la lanzada por throw.
Incorrecta. Catch sólo recoge una excepción si es del tipo que espera.
51 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
para el usuario.
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
4. Incorrecto
52 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Caso práctico
Jana dice que lo que no le costó nada fue comprender
el funcionamiento de los formularios para recoger datos
de una web.
Una parte importante de lo que hay que hacer es especificar los siguientes atributos de la
etiqueta form:
53 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
action:
tipo de acción que realizará el formulario. Puede ser el nombre del fichero PHP
que procesará los datos recogidos. Si se deja en blanco o se consigna $PHP_SELF toma
el propio fichero donde está el formulario como fichero de recogida y procesamiento.
En el caso de que dejemos que la acción actúe sobre el propio fichero que contiene el
formulario, hay que gestionar el flujo de la página web para que la ejecución del mismo
sea correcta.
Ejercicio resuelto
Codifica dos ficheros: formulario.html y accion.php. El primero contendrá un
formulario que recoja el nombre y correo electrónico de un usuario y tendrá un
botón para enviar el formulario. El segundo recogerá esos datos y los mostrará
por pantalla.
Mostrar retroalimentación
<html>
<head>
<title>Mi formulario</title>
</head>
<body>
<p>Informe ambos campos y pulse el botón para enviar el formulario.
<form action="accion.php" method="post" name="formu">
Nombre: <input type="text" name="nombre" /><br />
Correo: <input type="text" name="correo" /><br />
<input type="submit" name="envia" value="¡Envíame!"/>
</form>
</body>
</html>
<html>
<head>
<title>Datos recogidos</title>
</head>
<body>
<p>Los datos recogidos por el formulario son:</p><br />
54 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
<?php
echo "Nombre:".$_POST['nombre']."<br />\n";
echo "Correo:".$_POST['correo']."<br />\n";
?>
</body>
</html>
Autoevaluación
La importancia del atributo method es que:
No es correcta. Method no tiene nada que ver con la lectura de los datos.
Solución
1. Opción correcta
2. Incorrecto
55 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
3. Incorrecto
4. Incorrecto
56 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
También es posible que en lugar de que tengamos que realizar nosotros el formulario
pidamos al navegador cliente que abra una ventana donde tenga que identificarse el usuario.
Para leer sobre este método visita el enlace al final del apartado.
Otro método para identificar a los usuarios es a través de servicios de autenticación como
kerberos o radius. Si te interesa profundizar sobre este aspecto, visita el enlace
correspondiente que encontrarás a pie de página.
A la hora de escribir un script siempre debemos tener en cuenta el uso que puede hacerse
del mismo, que puede ser muy distinto del que nosotros hayamos previsto inicialmente. Por
ello debemos controlar los datos de las variables que nos pasen los usuarios.
57 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Autoevaluación
El par login-contraseña permite contrastar la identidad de un usuario si se
pueden contrastar dichos datos.
Falso.
Verdadero.
Solución
1. Incorrecto
2. Opción correcta
58 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
11.- Sesiones.
Caso práctico
Laro explica que es importante gestionar
adecuadamente los accesos a la aplicación y les
pregunta si han utilizado sesiones en alguna ocasión.
Para crear otras variables de sesión y así poder pasarlas, se utiliza el array $_SESSION.
59 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Debes conocer
En los siguientes enlaces podrás ampliar información sobre cómo gestionar las
sesiones.
Título ►
FORMULARIOS Y
SESIONES
60 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
61 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
62 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
63 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
64 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Fin de la presentación.
1 2 3 4 5 6 7 8 9
65 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
Autoevaluación
Las sesiones permiten:
Guardar datos sobre el visitante del sitio web.
Mostrar retroalimentación
Solución
1. Correcto
2. Correcto
3. Incorrecto
4. Incorrecto
66 de 67 26/7/22, 13:55
Programación de documentos web utilizando lenguajes de script de servidor. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_QJcIfd/IAW...
67 de 67 26/7/22, 13:55