Anda di halaman 1dari 12

Universidad Gerardo Barrios

Facultad de Ciencia y Tecnología

Fecha: Guía Practica 6: Funciones y Manejo de Formularios


12/03/2017 Programación Computacional IV

Objetivos:
- Introducción a las funciones
- Creación de formularios
- Utilizar los métodos POST y GET para envío de información de formularios.

FUNCIONES.

Una función es un bloque de código que realiza una o varias tareas específicas. Tiene un nombre
con el cual la podemos identificar para llamarla y también puede recibir una serie de valores
llamados parámetros o argumentos. Además, posee la posibilidad de devolver un único valor.
Las funciones pueden ser llamadas todas las veces que sean necesarias y su principal ventaja es
que nos permiten reutilizar código, para no tener que volver a escribirlo.

De esta forma, por ejemplo, podríamos tener una función que dado un número (parámetro),
determine si es primo o no devolviendo true si lo es y false en caso contrario (valor de retorno).
O podríamos construir una función que dada una serie de números calcule el promedio de todos.
O una que reciba un array con strings y devuelva un nuevo string con una lista ordenada en
HTML donde cada elemento de la lista se corresponda con cada ítem del array.

Los parámetros son siempre opcionales. Podemos hacer funciones que no reciban nada. Y a
diferencia de otros lenguajes, el valor de retorno también lo es. Especial cuidado quienes estén
acostumbrados a programar por ejemplo en C, donde siempre debe especificarse un tipo de
retorno (si no se devuelve nada, debe especificarse void). Lo único que debe tenerse en cuenta
es que cuando se construye una función y no se devuelve nada, PHP devolverá el tipo null.

Sintaxis general para declarar una función en PHP

function nombreFuncion (param1, param2, …, paramN) {


instrucción1
instrucción2
.
.
.
instrucciónN
}
Funciones propias de PHP.

PHP trae una gran variedad de funciones para realizar tareas puntuales. Por ejemplo las de
manejo de strings: strlen, strpos y substr, entre otras; o las que sirven para operar arrays como
in_array, array_flip, array_reverse y otras más que hemos conocido.

A pesar de ser propias del lenguaje, se basan en las mismas reglas que cualquier otro tipo de
función. Reciben parámetros opcionalmente, realizan una tarea y pueden o no devolver algún
valor.

Ninguna función que construyamos puede tener el mismo nombre que otra ya existente,
incluyendo las que trae PHP.

Funciones definidas por el usuario.

Para definir una función propia, se escribe la palabra clave function seguida del nombre de la
función. A continuación, abrir paréntesis y si hay parámetros se ingresan dentro del paréntesis
separados por comas. Se abre llaves y dentro de ellas se escribe el bloque de código donde se
escriben las instrucciones.

function nom_Funcion(param1, param2){

//bloque de instrucciones

Ejemplo:

function saludar(){

echo “Mensaje”;

//llamado a la función

saludar()

Valor de retorno

function sumar(){

$a=5;

$b=20

return $a+$b;

//llamado a la función

sumar()
PASO DE PARÁMETROS.

Por valor.

En el pasaje por valor la variable que llega a la función puede ser modificada, pero su valor
original no.

Ejemplo:

function ejemploxValor($var){

$var=10;

echo "Valor dentro de la funcion " . $var;

$fuera=2;

ejemploxValor($fuera);

echo "ejemplo por valor ". $fuera . "<br/>";

Por referencia.

En el pasaje por referencia el valor de la variable original que es pasada como argumento
puede sufrir cambios si es que se realizan dentro de la función.

Ejemplo:

function ejemploxReferencia(&$ref){

$ref=25;

echo "Valor dentro de la funcion " . $ref;

$fueraRef=10;

ejemploxReferencia($fueraRef);

echo "ejemplo por referencia ".$fueraRef . "<br/>";


Argumentos variables

Si es necesario, en PHP es posible pasar una cantidad de parámetros variables a una función.
Esto se hace con tres funciones específicas para esto: func_num_args(), func_get_arg() y
func_get_args().

La función func_num args devuelve la cantidad de parámetros que se recibieron. A func_get_arg


hay que pasarle un número entero y nos devuelve el argumento que corresponde a esa posición
según el orden en que fueron pasados los parámetros. Por último, func_get_args no recibe
ningún valor y devuelve un array donde cada elemento es un parámetro que fue pasado.

Ejemplo:

function frutas() {

if (func_num_args() > 0) {

echo ‘Frutas: <br/>';

$params = func_get_args();

foreach($params as $frutas)

echo $frutas . '<br />';

echo '<br/>';

$frutas1 = "Manzana";

$frutas2 = "Fresa";

frutas($frutas1,$frutas2);
Ejercicio: librería funciones.

Crear un script llamado librería.

libreria.php

Utilizando librería.

Para poder utilizar el archivo librería se hara uso de require() o include().

Tanto require() como include() hacen el mismo trabajo, de traerse código que hay en archivos
diferentes dentro del servidor, para que se pueda utilizar al crear una página. La diferencia
fundamental entre require e include es que la primera requiere forzosamente algo y la otra no.
Es decir, si hacemos un require() de un archivo y éste no se encuentra disponible por cualquier
motivo, PHP parará la ejecución del código y devolverá un "Error fatal". Si por el contrario
hacemos un include() y el archivo que tratamos de traer no se encuentra disponible, entonces
lo que PHP nos mostrará es una señal de advertencia, un "warning", pero tratará de seguir
ejecutando el programa.

principal.php
Modifique el ejemplo anterior de tal manera que incluya un archivo de estilo.
MANEJO DE FORMULARIOS.

Cuando un usuario rellena un formulario en una página web los datos hay que enviarlos de
alguna manera. Vamos a considerar las dos formas de envío de datos posibles: usando el método
POST o usando el método GET.

METODO GET.

GET lleva los datos de forma "visible" al cliente (navegador web). El medio de envío es la URL.
Los datos los puede ver cualquiera.

Los datos son visibles por la URL, por ejemplo:

http://localhost:8080/probando.php?param1=5&param2=22

METODO POST.

POST consiste en datos "ocultos" (porque el cliente no los ve) enviados por un formulario cuyo
método de envío es post. Es adecuado para formularios. Los datos no son visibles.

La ventaja de usar POST es que estos datos no son visibles al usuario de la web. En el caso de
usar get, el propio usuario podría modificar la URL escribiendo diferentes parámetros a los reales
en su navegador, dando lugar a que la información tratada no sea la prevista.

Las peticiones HTTP del tipo POST suelen proporcionar información adicional del cliente
(navegador) al servidor dentro del cuerpo del mensaje. Las peticiones GET, por otro lado,
incluyen toda la información requerida o necesaria dentro del URL (localizador de recursos
uniforme). Los formularios en HTML pueden usar cualquiera de estos dos métodos solo si se
especifica si es POST (method=POST) o si es GET (method=GET) dentro del elemento <form>.
Este último suele ser el sugerido por default. El método que sea elegido y especificado
determina la forma en la que la información será enviada al servidor. Cuando se usa el método
GET, la información se encontrará codificada dentro del URL, anexada a éste como parámetros
de la cadena de consulta. En cuanto al uso de POST, los formularios aparecen incluidos dentro
del cuerpo del mensaje de la petición HTTP.

GET POST

Los parámetros permanecen en el


Los parámetros no son guardados
Historial historial del navegador. Esto debido a
en el historial del navegador.
que forman parte del URL.

Por el contrario, POST no acepta


Marcadores Acepta marcadores.
marcadores.
Las peticiones son re-ejecutadas, sin
Por lo general, en POST, el
Comportamiento con embargo, muchas no pueden ser
navegador alerta al usuario que los
el comando deshacer reenviadas al servidor (sólo si el HTML
datos necesitan ser reenviados
y rehacer sigue almacenado en el caché del
antes de ejcutar la acción.
navegador).

Tipo de codificación Multiparte (para datos binarios) o


De aplicación: x-www-forma-
(atributo del formulario o de aplicación: x-www-
urlencoded.
enctype) form-urlencoded.

Puede enviar parámetros. Sin


Puede enviar parámetros, incluso si
embargo el tamaño de estos se limita
Parámetros fuera necesario, puede subir
sólo a los que quepan dentro del
archivos al servidor.
mensaje de petición (URL).

Es fácil de hackear, incluso para un Si bien, no es imposible, resulta


Hackeos
script kiddie, o novato. más difícil de hackear que GET.

¿Existen Contrario a GET, POST no tiene


Si. GET solo permite caracteres del
restricciones en los restricciones. También permite
código ASCII.
tipos de formularios? datos en código binario.

GET tiende a ser menos seguro


POST suele ser más seguro que
que POST, debido a que los datos
GET. Esto debido a que los
enviados forman parte del URL. Los
Seguridad parámetros no se almacenan en el
datos se almacenan en el historial del
historial del navegador ni al iniciar
navegador y en los registros del
sesión en algún servidor web.
servidor.

Si. Esto porque los formularios se


colocan en el URL y la longitud de
Restricciones en la éste está restringida. Un ejemplo de No existen restricciones en cuanto
longitud de los longitud de URL seguro ronda los a la longitud de los formularios en
formularios 2048 caracteres, sin embargo esto POST.
depende del navegador y el servidor
web.

Por otro lado, el método POST


Hablando del método GET, en teoría
puede ser usado sin mayor
este no debería ser usado cuando se
Uso problema al enviar formularios que
envían contraseñas o información
contengan información sensible,
sensible.
como contraseñas.

El método GET está visible para todos


(se localiza en la barra de dirección
Las variables del método POST no
Visibilidad del navegador). Este presenta límites
se pueden visualizar en el URL.
en cuanto a la información que será
enviada.

Caché Puede almacenarse en la memoria No puede ocultarse en la memoria


(almacenamiento) caché. caché.
Ejercicio 1: Utilizando Método POST
Ejercicio 2: Utilizando Método GET

Ejercicio 3: Utilizando método GET

Para el ejercicio se van a crear dos archivos uno donde se cree el formulario y otro que será el
encargado de manejar los datos enviados.

formulario.php
procesar.php

Se pide:

1. Modificar el ejercicio 1 y evaluar si el campo de texto está vacío, si está vacío enviar un
mensaje como se muestra a continuación:

2. Modificar el script del ejercicio 1 para que se muestre de la siguiente manera:


Modifique el código del ejercicio 3 para que se utilice el método POST, además deberá solicitar
la edad en el formulario de tal manera que si es mayor de edad muestre el mensaje
“BIENVENIDO”, de lo contrario “AUN ERES MENOR DE EDAD”.

EJERCICIOS PROPUESTOS.

1. Realizar una función que reciba dos números como parámetros y los multiplique.
2. Realizar una función que reciba un array de notas de 10 estudiantes, deberá mostrar la
nota promedio.
3. Realizar una función que reciba un array de 5 números y determine cuál es el mayor.
4. Diseñe un formulario que solicite los datos personales:
Cree una función que procese los datos con un array, y los muestre en pantalla.

Anda mungkin juga menyukai