Está en la página 1de 37

PHP (Hypertext Preprocesador)

PHP es un lenguaje de alto nivel que se ejecuta en el servidor; donde estn alojadas las
pginas, al contrario de otros lenguajes que son ejecutados en el navegador.
Php es un lenguaje que se presenta embebido dentro de las pginas web. Esto quiere
decir que el cdigo se incrusta en el mismo documento en el que aparecen las etiquetas
HTML. Al ejecutarse un programa escrito en este lenguaje, se obtiene una pgina
HTML compuesta por una parte de las etiquetas originales y por otra generadas
dinmicamente por el cdigo PHP.
La principal ventaja de php, es que al ejecutarse en el servidor, todas nuestras pginas
van a poder ser vistas en cualquier ordenador, independientemente del ordenador que se
tenga. A diferencia del cdigo que se ejecuta en el navegador, que muchos navegadores
no son capaces de entender todo el cdigo, lo que presentara errores al mostrar el
resultado de las pginas.
Otra ventaja que presenta PHP, es que es un lenguaje de programacin gratuito y, por
tanto, todo el mundo puede utilizarlo sin ningn costo, frente a otros lenguajes cuyo
software es necesario comprar para su utilizacin.
Cdigo de fuente abierto: toda persona puede mejorar o hacer sugerencias de su
desarrollo
Portable y multiplataforma: el lenguaje PHP pude ser ejecutado en cualquier plataforma
sin necesidad de modificar una lnea de cdigo
Permite realizar rpidamente sitios web dinmicos; alta velocidad de desarrollo
PHP se contruy para ser utilizado conjuntamente con la base de datos MySQL, pero
actualmente soporta la mayora de bases de datos (Oracle, Informix, ODBC, SQl Server,
etc.).

DIFERENCIA DE EJECUCIN ENTRE UN DOCUMENTO ESTTICO Y UN


DOCUMENTO DINMICO
FASE DE LA OBTENCIN DE UN DOCUMENTO DINMICO

SOLICITUD

SERVIDOR
WWW

1
2

4
RESPUESTA

DOCUMENTO
ESTTICO
(HTML,JPG)

1. El usuario pulsa sobre un enlace, solicitando un documento (HTML,JPG,) y el


navegador enva la peticin al servidor utilizando el protocolo http
2. La solicitud llega al servidor web correspondiente a travs de la red. El servidor
localiza el documento solicitado
3. El servidor lee el documento del sistema, de fichero y enva al cliente que
realiz la peticin una copia exacta del mismo
4. El documento llega al cliente y se visualiza su contenido en el navegador.

FASE DE LA OBTENCIN DE UN DOCUMENTO DINMICO

SERVIDOR
WWW

SOLICITUD
1

4
RESPUESTA

PHP

DOCUENTO
ESTTICO
(HTML,JPG)

1. El usuario pulsa sobre un enlace, solicitando un documento (PHP) y el


navegador enva la peticin al servidor utilizando el protocolo http
2. Llega la solicitud al servidor correspondiente y este localiza el documento. Por
la extensin del fichero(.PHP) determina que se trata de un fichero que contiene
PHP y lanza el interprete
3. El interprete ejecuta el script solicitado, generando un resultado (Habitualmente
un documento HTML) que se devuelve al servidor para que este a su vez lo
transfiera al cliente que hizo la peticin
4. Se visualiza el Doc. Generado dinmicamente en el navegador del usuario.
PAQUETES INTEGRADOS
Son kits de instalacin automtica que nos simplifican todas las tareas de instalacin de
los diferente software a partir de un solo ejecutable; algunos de ellos son:
Xampp:http://www.apachefriends.org/en/xampp.html/
Foxserver:http://sourceforget.net/projects/foxserv
Apache2triad:http://apache2triad.sourceforge.net
Wamp5:http://www.en.wampserver.com/download.php/
Winlamp:http://www.datacaptech.com/winlamp.php
Appserv:http://www.appservnetwork.com/
Nushpere:http://nusphere.com7

Delimitadores
PHP esta muy relacionado con el lenguaje de hipertexto HTML; tanto as que el cdigo
PHP aparece normalmente insertado dentro de un documento HTML
Las etiquetas de comienzo y final del cdigo PHP son:
a) <?php
instrucciones
>
b) <?
instrucciones

En el php.ini debe estar activa


la directiva short_open_tag

>
c) <%
instrucciones
%>

En el php.ini debe estar activa la


directiva aspt_tags; utilizada por ASP
Active Server Pages

d) <script lenguaje=php>
instrucciones

Se debe indicar el lenguaje que se va


ha utilizar

</script>
Comentarios
// (C,C++,Java, JavaScript), #(Perl, Shell) comentarios de una sola lnea
/* comentarios */ comentarios de varias lneas
Fin de lnea
Php ignora cualquier carcter de espaciado presente en el cdigo (espacios en blanco,
tabulaciones, saltos de lneas, excepto si se encuentra en una cadena de texto).
El fin de sentencia se marca ; o bien aprovechando la etiqueta de cierre ?>
Variables
Es el nombre que se le da a una posicin de memoria del ordenador en la cual se
almacena la informacin, en php no es necesario declarar las variables antes de su
utilizacin; se crean al instante, no tienen asociado el tipo de dato, puede almacenar
diferentes tipos de datos

El tipo de variable no se suele especificar. Se decide en tiempo de ejecucin en funcin


del contexto y puede variar, para crear una variable se debe comenzar con el smbolo $
luego una letra o el carcter subrayado
Ejemplo:
$sueldo,

$_sueldo, $sueldo2012

Constantes
Las constantes son contenedores de php que nunca cambian su valor, se utilizan para
valores bien conocidos y que se sabe que se van a utilizar.
En php las constantes se definen con la funcin define(), la cual acepta dos argumentos:
el nombre de la constante y su valor. Los nombres de constantes deben seguir las
mismas reglas que las variables, con una sola excepcin el prefijo $ no se requiere.
Sintaxis
define(nombreconstante,valor);
Ejemplo:
define(texto,bienvenido);
define(pi,3.1416);
define(precio,20);
EXPRESIONES Y OPERADORES
Operadores aritmticos
+
suma
resta
*
producto
/
divisin
%
resto
++
incremento (si se coloca antes de la variable es un preincremento,
despus de la variable postincremento)
-decremento(si se coloca antes de la variable es un predecremento,
despus de la variable postdecremento)
Operadores de cadena
. concatenacin
Operadores de asignacin
=

Operadores de asignacin combinado


+=
-=
*=
/=
%=
.=
Ejemplo:
1. Si se tiene la siguiente variable $a=3
Entonces:
$a+=5
$a-=5
$a*=5
$a/=5
$a%=5

$a=$a+5
$a=$a-5
$a=$a*5
$a=$a/5
$a=$a%5

$a=8
$a=-2
$a=15
$a=0.6
$a=0

2. si se tiene $a=hola
$a.=mundo

$a=$a . mundo

$a=hola mundo

Operadores de comparacin
==

$a= =$b

True si los valores son iguales

===

$a= = = $b

True si los variable son iguales y


del mismo tipo

!=

$a != $b

True si son diferentes

!= =

$a != = $b

True si los variable no son iguales y


del mismo tipo

<
>
<=
>=

$a < $b
$a >$b
$a <= $b
$a >= $b

True si $a es menor $b
True si $a es mayor $b
True si $a es menor o igual $b
True si $a es mayor o igual $b

Operadores Lgicos
and &&
or

||

$a and $b
$a && $b

True si lo son $a y $b

$a or $b
$a || $b

True si lo son $a o $b

xor

$a xor $b

True si $a o$b lo son pero no ambos a la vez

!$a

True si $a es falso o false si $a es verdadero (negacin)

INSTRUCCIONES DE CONTROL EN PHP


Condicionales
Las sentencias condicionales nos permiten ejecutar o no unas ciertas instrucciones
dependiendo del resultado de evaluar una condicin. Estas pueden ser simples, dobles
mltiples.
SIMPLE
<?php
if (condicin)
{
Sentencias a ejecutar cuando la
condicin es cierta.
}
?>

DOBLE
<?php
if (condicin)
{
Sentencias a ejecutar cuando la
condicin es cierta.
}
else
{
Sentecias a ejecutar cuando la
condicin es falsa.
}
?>

EJEMPLO:
<html>
<head>
<title>uso de la sentencia if</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
if ($a < $b)
{
echo "a es menor que b";
}
else

{
echo "a no es menor que b";
}
?>
</body>
</html>

MULTIPLE SELECCIN
IF / ELSEIF
Esta estructura evala una condicin y en caso de que se cumpla realiza las sentencias
dentro de su ciclo y se sale de la estructura; de no cumplirse la primera condicin pasar
a evaluar la segunda y as sucesivamente
<?php
if (condicion)
{
Sentencias a ejecutar cuando la
condicin es cierta.
}
elseif (condicion1)
{
Sentencias a ejecutar cuando la
condicin es cierta.
}
elseif (condicion2)
{
Sentencias a ejecutar cuando la
condicin es cierta.
}
else
{
Sentencias a ejecutar cuando la
condicin es cierta.
}
?>

SWITCH ... CASE


Con la sentencia switch podemos ejecutar unas u otras instrucciones dependiendo del
valor de una variable, la variable siempre recibe un valor el cual puede ser texto o
nmero, y dependiendo de ese valor se seleccionara el caso posible y de forma opcional
se coloca el default ( En caso de que no se cumpla ninguna)
switch($variable) {
case "texto 1"

// Bloque 1
sentencias
break;

case "texto2":

// Bloque 2
sentencias

break;
default:

// Bloque 3
sentencias
break;

Ejemplo del uso de switch


<html>
<head>
<title>Uso de la estructura switch</title>
</head>
<body>
<?php
$posicion = "arriba";
switch($posicion) {
case "arriba": // Bloque 1
echo "La variable contiene";
echo " el valor arriba";
break;
case "abajo": // Bloque 2
echo "La variable contiene";
echo " el valor abajo";
break;
default: // Bloque 3
echo "La variable contiene otro valor";
echo " distinto de arriba y abajo";
}
?>
</body>
</html>

Ciclos iterativos o bucles


Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecucin
de un conjunto de instrucciones mientras se cumpla una condicin. Los ciclos iterativos
en PHP son while y for
Sentencia while
<?php
while (condicin)
{
intrucciones a ejecutar.
}
?>

Mientras la condicin sea cierta se reiterar la ejecucin de las instrucciones que estn
dentro del while.
En el siguiente ejemplo, el valor de $i al comienzo es 0, durante la ejecucin del bucle,
se va sumando 1 al valor de $i de manera que cuando $i vale 10 ya no se cumple la
condicin y se termina la ejecucin del bucle.

<html>
<head>
<title>uso de la sentencia while</title>
</head>
<body>
<?php
$i=0;
while ($i<10)
{
echo "El valor de i es ", $i,"<br>";
$i++;
}
?>
</body>
</html>

Sentencia for
La instruccin for es la instruccin de bucles ms completa. En una sola instruccin nos
permite controlar todo el funcionamiento del bucle.
El primer parmetro del for, es ejecutado la primera vez y sirve para inicializar la
variable del bucle, el segundo parmetro indica la condicin que se debe cumplir para
que el bucle siga ejecutndose y el tercer parmetro es una instruccin que se ejecuta al
final de cada iteracin y sirve para modificar el valor de la variable de iteracin.

<?php
for (inicial ; condicin ; ejecutar en iteracin)
{
intrucciones a ejecutar.
}
?>

En el siguiente ejemplo $i inicia en 0, luego se valida la condicin, $i sea menor que


cero entonces se mostrar en pantalla el valor de $i, luego $i se incrementa en uno con
el ltimo bloque del ciclo for $i++, y vuelve nuevamente a comparar hasta que se
cumpla la condicin y se sale del ciclo.
<html>
<head>
<title>uso del ciclo for</title>
</head>
<body>
<?php
for($i=0 ; $i<10 ; $i++)
{
echo "El valor de i es ", $i,"<br>";

}
?>
</body>
</html>

Salida (echo)
echo mensajes muestra una o ms cadenas
printf muestra una cadena
Hasta ahora hemos usado la instruccin echo para realizar salida a pantalla, esta
instruccin es bastante limitada ya que no nos permite formatear la salida. La
instruccin printf nos da mucha ms potencia.
Sentencia printf
<?php
printf(cadena formato, variable1, variable2...);
?>

La cadena de formateo indica cmo se han de representar las valores que se le indiquen.
La principal ventaja es que adems de poder formatear los valores de salida, nos permite
intercalar texto entre ellos.
<html>
<head>
<title>uso de printf</title>
</head>
<body>
<?php
printf("El numero dos con diferentes formatos: %d %f %.2f",2,2,2);
?>
</body>
</html>

La cadena de formato puede incluir una seria de caracteres especiales que indican como
formatear las variables que se incluyen en la instruccin. Entre ellos tenemos:
Elemento

Tipo de variable

%s

Cadena de carcteres.

%d

Nmero sin decimales.

%f

Nmero con decimales.

%c

Carcter ASCII.

Aunque existen otros tipos, estos son los ms importantes.

<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$var="texto";
$num=3;
printf("Puede fcimente intercalar <b>%s</b> con nmeros <b>%d</b>
<br>",$var,$num);
printf("<TABLE BORDER=1 CELLPADDING=20>");
for ($i=0;$i<10;$i++)
{
printf("<tr><td>%10.d</td></tr>",$i);
}
printf("</table>");
?>
</body>
</html>

FORMULARIOS
Los formularios es la herramienta que disponemos a la hora de hacer nuestras pginas
web interactivas, en el sentido de que nos permiten recopilar informacin de la persona
que ve la pgina, procesarla y responder a ella,.
Los formularios estn formados por una serie de controles distintos, cada uno de los
cuales est asociado a un tipo concreto de datos o una accin predeterminada: botones
de envo y borrado de datos, listas de seleccin, cajas de entrada de texto, entre otros.
Etiquetas <FORM>...</FORM>
Estas etiquetas son las que delimitan el comienzo y el final de un formulario. Si
queremos mostrar en una pgina un elemento aislado de un formulario, cualquier
elemento que se desee colocar dentro de una pgina debe estar delimitado por estas
etiquetas para que sea interpretado.
La pareja de etiquetas se introduce en el cdigo HTML dentro del BODY de la pgina,
en el lugar en que queramos que nos aparezcan los elementos del formulario.
Principales Atributos o Parmetros de <FORM>
action = "ruta_programa". Indica el programa del servidor que va a "tratar" las
variables que se enven con el formulario o el envo de los datos mediante correo
electrnico mediante el valor "mailto: direccion_de_correo", en cuyo caso deberemos
aadir el parmetro ENCTYPE="text/plain" para que lo que recibamos resulte legible.
En el caso de que definamos aqu un programa para el tratamiento de datos deberemos
especificar su ruta relativa respecto al directorio de carpetas del servidor en dnde
tengamos situado nuestra aplicacin web o bien una URL completa, si el programa est
en otra direccin de Internet.
method = " POST / GET " . Indica el mtodo segn el que se van a transferir las
variables del formulario. POST enva los datos, normalmente al programa CGI definido
en action o por correo si en action hemos utilizado mailto. El mtodo GET aade los
argumentos del formulario al URL recogido en.
El mtodo de uso ms normal es POST, y en el caso de que estemos mandando el
formulario a nuestra direccin de correo electrnico es obligado usarlo.
Con GET los datos son encadenados al URL especificado en action , utilizando el tipo
de codificacin especificado en el atributo enctype. Este mtodo se utiliza cuando los
datos no modifican la base de datos, por ejemplo, al realizar una bsqueda, y los
caracteres a enviar tienen que pertenecer obligatoriamente al conjunto ASCII.

Con el mtodo POST se realiza una transaccin mediante el protocolo HTTP, utilizando
la codificacin enctype. Se utiliza para aplicaciones que modifican la base de datos de
destino.
enctype =" tipo ". Indica al explorador web el mtodo de cifrado utilizado para pasar
los datos del formulario a la secuencia de comandos CGI en el servidor. Normalmente,
el valor del atributo encitype se define como "application/x-www-form-urlencoded".
accept =" tipo MIME ", que indica al servidor qu tipos de archivo MIME se van a
aceptar en el envo. Normalmente no se usa, pero si nos es necesario el administrador de
nuestro servidor web nos puede indicar cuales son aceptados.
accept-charset = "charset ", que especifica la lista de caracteres permitidos que deben
ser interpretados correctamente por el servidor receptor. Por ejemplo, si el servidor
admite como caracteres permitidos cdigo HTML, en valor de charset ser "text/html".
target= " nombre ".. Este atributo indica en qu ventana de una pgina con frames se
debe mostrar el resultado del proceso de datos mediante el programa CGI.
title= texto que mostrar el explorador al colocar el puntero del mouse sobre una zona
de la pgina
id= se utiliza para asignarle un nombre nico por el cual se puede hacer referencia al
formulario en una secuencia de comandos.
name= coloca un texto para hacer referencia a un formulario por su nombre
ELEMENTOS DE UN FORMULARIO
Cuadro de textos (text)

Atributos:
type= text, permite definir qu tipo de elemento se va a crear
name= nombre se utiliza para identificar el campo de entrada, el valor que se ingresa
en el cuadro de texto se enva al servidor dentro del nombre del atributo name.
size=valor, ancho de caracteres del cuadro de texto
value=valor texto que aparecer asignado cuando se dibuje el formulario
maxlength=valor, nmero mximo de caracteres que el visitante puede escribir en el
campo de texto de entrada.
Id=valor, se utiliza para asignarle un nombre nico por el cual se puede hacer
referencia al campo de entrada en una secuencia de comandos

tabindex=valor se utiliza para establecer el orden de tabulacin (TAB) en el que los


elementos del formulario recibe el focus.
Cuadro de textos (password)
Se utiliza para ingresar una breve cadena de texto o nmero, la etiqueta para generarlo
es <input>
password, define una caja de texto para contener una clave o password, por lo que el
texto que introduzca el usuario aparecer como asteriscos, por motivos de seguridad.
Sus atributos opcionales son los mismos que los del tipo text.
Campo oculto
Se utiliza para ingresar una breve cadena de texto o nmero, la etiqueta para generarlo
es <input>
hidden, que define un campo invisible, por lo que no se ve en pantalla. Aunque parece
as definido que no tiene utilidad, sus usos son varios e importantes,. Sus atributos son:
name=" nombre", que asigna un nombre identificador nico al campo oculto.
value=" valor ", que va a ser el valor fijo que se le va a pasar al programa del servidor,
ya que el usuario no puede modificarlo. En realidad este valor no tiene porqu ser fijo,
ya que lo vamos a poder modificar mediante cdigo de script, lo que nos va a permitir ir
pasando una serie de variables ocultas de una pgina a otra.

Cuadro multilneas <textarea> </textarea>


Se utiliza para permitirle al usuario que ingrese varias lneas de texto
Atributos:
rows=valor numero de filas de texto que desea que el explorador web muestre al
mismo tiempo
cols=valor, numero de caracteres que desea que el explorador muestre en cada lnea
del cuadro de texto
id=valor, se utiliza para asignarle un nombre nico por el cual se puede hacer
referencia al campo de entrada en una secuencia de comandos

name=nombre se utiliza para identificar el campo de entrada, el valor que se ingresa


en el cuadro multilnea se enva al servidor dentro del nombre del atributo name.
La cantidad de caracteres se define del producto del nmero de filas por el nmero de
columnas
Casillas de verificacin (checkbox)
Permite al usuario elegir ms de una opcin o elemento, la etiqueta para generarlo es
<input>
Atributos:
type=checkbox crea la casilla de verificacin
id=valor, se utiliza para asignarle un nombre nico por el cual se puede hacer
referencia al campo de entrada en una secuencia de comandos
name=nombre se utiliza para identificar el campo de entrada,.
value=valor valor que se llevara el nombre de la casilla de verificacin
checked

al colocar este atributo, define si al generar el formulario aparece activo

Botones de Opcin (radio)


Permiten al usuario seleccionar una de diferentes
<input>

, la etiqueta para generarlo es

Atributos
id=valor, se utiliza para asignarle un nombre nico por el cual se puede hacer
referencia al campo de entrada en una secuencia de comandos
name=nombre se utiliza para identificar el campo de entrada,.
value=valor valor que se llevara el nombre del botn de opcin
checked

al colocar este atributo, define si al generar el formulario aparece activo

Listas Desplegables <Select>


Se utilizan para indicarle al usuario una serie de opciones, la etiqueta para generarlo es
<select>
<option> TEXTO 1</option>
<option> TEXTO 2</option>
<option> TEXTO 3</option>
</select>

Atributos <select>:
size=valor, nmero de elementos del men de opciones que aparecer en pantalla al
mismo tiempo
id=valor, se utiliza para asignarle un nombre nico a la lista desplegable, por el cual
se puede hacer referencia al campo de entrada en una secuencia de comandos
name=nombre, se utiliza para identificar un elemento de la lista desplegable en el
formulario.
Multiple, al estar este atributo presente en la etiqueta select , el explorador web
permitir al visitante seleccinar ms de un elemento a la vez
Atributos <option>
value=valor, cadena de texto que se pasa al servidor web como la parte de la pareja
nombre/valor
selected, al incluir este atributo en la etiqueta option, indica al explorador web que
seleccione el elemento al dibujar la lista.
Boton
Permiten al usuario ejecutar una accin de envi de datos, la etiqueta para generarlo es
<input>
type=submit, incorpora al formulario un botn de envo de datos. Cuando el usuario
pulsa este botn los datos que ha introducido en los diferentes campos del formulario
son enviados al programa del servidor o a la direccin de correo indicada en action. Sus
atributos son:
name=nombre, permite asociar un nombre con el botn
value=" valor ", que define el texto que va a aparecer en el botn de envo.
disabled, desactiva el botn, de tal forma que no se produce ninguna accin cuando se
pulsa, pues permanece inactivo.
tabindex = " n ", que especifica el orden de tabulador que tendr el campo respecto
todos los elementos que incluye el formulario.
Otro botn que tambin permite enviar datos del formulario es el de image
type=image
src=archivo de imagen.jpg //imagen del botn de enviar

Boton
Permiten al usuario ejecutar una accin de borrar los datos que se han ingresado en el
formulario, la etiqueta para generarlo es <input>
type=reset, define un botn que al ser pulsado por el usuario borra todos los datos
que hubiera introducido en cualquiera de los campos del formulario. Sus atributos son
los mismos que los de submit.
Etiquetas <LABEL>...</LABEL>
Hasta hora, el texto que acompaaba a los campos de entrada no estaba asociado a los
mismos de ninguna manera. As, por ejemplo, si pulsbamos en el texto que
acompaaba a un control de confirmacin, no suceda nada. Ahora, en cambio, si
utilizamos la etiqueta LABEL, el control cambiar de estado
Para asociar la etiqueta a un elemento del formulario, dentro de las etiquetas
<label>...</label>, colocamos el elemento
Ejemplo
<label>
<input type="text" name="nombre">
</label>
Etiquetas <FIELDSET>...</FIELDSET>
Hasta ahora, no disponamos de ninguna manera de agrupar visualmente varios
controles, si no echbamos mano de elementos que no son del formulario, como tablas o
imgenes.
Ahora, si encerramos una parte de un formulario dentro de la etiqueta FIELDSET se
mostrar un rectngulo alrededor de los mismos.
Adems, podemos indicar un ttulo por medio de la etiqueta <LEGEND>, que admite el
atributo align="left / center / right / top /bottom", lo que nos permite alinear el ttulo
horizontal y verticalmente..

PROCESANDO FORMULARIO
Envo y recepcin de datos
El lenguaje PHP nos proporciona una manera sencilla de manejar formularios,
permitindonos de esta manera procesar la informacin que el usuario ha introducido.
Al disear un formulario debemos indicar la pgina PHP que procesar el formulario,
as como en mtodo por el que se le pasar la informacin a la pgina.
<html>
<head>
<title>formulario</title>
</head>
<body>
<H1> proceso de formularios</H1>
Introduzca su nombre:
<FORM ACTION="procesa.phtml" METHOD="GET">
<INPUT TYPE="text" NAME="nombre"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>

Al pulsar el botn Enviar el contenido de cuadro de texto es enviado a la pgina que


indicamos en el atributo ACTION de la etiqueta FORM.
Para acceder a las variables del formulario hay que usar el array de parmetros
$_POST[] o $_GET[] dependiendo del mtodo usado para enviar los parmetros.
En este ejemplo se ha creado una entrada en el array $_GET[] con el ndice 'nombre' y
con el valor que haya introducido el navegante.
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
El nombre que ha introducido es:
<?php
echo $_GET['nombre']
?>
<br>
</body>
</html>

Method GET y POST


Los datos de un formulario se enva mediante el mtodo indicado en el atributo
METHOD de la etiqueta FORM, los dos mtodos posibles son GET y POST.
La diferencia entre estos dos mtodos radica en la forma de enviar los datos a la pgina,
mientras que el mtodo GET enva los datos usando la URL, el mtodo POST los enva
por la entrada estndar STDIO.
Envio usando el metodo GET
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1> formularios con GET</H1>
<FORM ACTION="procesa2.phtml" METHOD="GET">
Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR>
Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>

Envio usando el metodo POST


<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1> formularios con POST</H1>
<FORM ACTION="procesa2.phtml" METHOD="POST">
Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR>
Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>

procesa2.phtml

<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>

<H1>Ejemplo de procesado de formularios</H1>


El nombre que ha introducido por GET es: <?php echo $_GET['nombre']," ",
$_GET['apellidos'] ?><br>
El nombre que ha introducido por POST es: <?php echo $_POST['nombre']," ",
$_POST['apellidos'] ?>
<br>
</body>
</html>

El resultado final es el mismo, solo que con el mtodo GET podemos ver los parmetros
pasados ya que estn codificados en la URL.
Arrays en php
Un array en PHP es en realidad un mapa ordenado. Un mapa es un tipo de datos que
asocia valores con claves. Este tipo se optimiza para varios usos diferentes; se puede
emplear como un array, lista (vector), tabla asociativa (tabla hash - una implementacin
de un mapa), diccionario, coleccin, pila, cola, entre otros.
Tipos de Arreglos:
Unidimensional
Bidimensional
Multidimensional
Aparte de los tipos de arreglos tradicionales, en php se utiliza otra divisin de los
arreglos, Indexado y Asociativos.
Vectores (Arrays De Una Dimensin)
Los vectores son los arrays que slo contienen una dimensin (un ndice).
Para declarar un vector en php, se pude realizar de diferentes formas
<?php
$mes[0] = "enero";
$mes[1] = "febrero";
$mes [2] = "marzo";
$mes [3] = "abril";
?>
<?php
$mes[] = "enero";
$mes[] = "febrero";
$mes [] = "marzo";
$mes [] = "abril";
?>

En este caso se realiza de la manera


tradicional, indicando en qu posicin se
guarda cada valor

En este caso el primer valor se almacenar en


la posicin cero, y as sucesivamente

En este caso se utiliza la funcin array(),


<?php
primer valor ocupa la posicin cero, el
$mes= array("enero", "febrero", "marzo, "abril");
?>
segundo la uno, y as sigue el orden
Por ltimo utilizando el operador de asignacin =>
<?php
$mes= array(0=>"enero", 1=>"febrero", "marzo, "abril");
?>

MATRICES O ARRAYS (ARREGLOS) DE DOS DIMENSIONES


Las matrices, son arrays (arreglos) de dos dimensiones. Tambin podemos verlas como
tablas donde cada elemento tiene una fila y una columna.
Por ejemplo:

En una matriz normalmente hablamos de filas y columnas y decimos que la matriz tiene
M filas y N columnas. As, cada elemento queda identificado por su fila i y su columna
j.
Tomando en cuenta

la matriz anterior, se

podra decir que tenemos 3 filas y 4

columnas. Para hacer referencia a un elemento, se llama al vector por su fila y columna,
ejemplo:
$valor [0] [0] = 1; $valor [0] [1] = 14; $valor [0] [2] = 8; $valor [0] [3] = 3;
$valor [1] [0] = 6; $valor [1] [1] = 19; $valor [1] [2] = 7; $valor [1] [3] = 2;
$valor [2] [0] = 3; $valor [2] [1] = 13; $valor [2] [2] = 4; $valor [2] [3] = 1;
Al igual que se denotan los vectores, se hace el mismo trabajo con las matrices.
Ejemplo:
<?php
$animal[0][0] = "Perro";
$animal[0][1] = "Gato";
$animal[1][0] = "Lombriz";
$animal[1][1] = "Burro";
$animal[2][0] = "Murcilago";
$animal[2][1] = "Cocodrilo";
?>

el

En php podemos escribir los array multidimensional, como un arreglo de arrays


<?php
$animal = array(
array("Perro", "Gato"),
array("Lombriz", "Burro"),
array("Murcilago", "Cocodrilo")
);
?>
<?php
$animal[0] = array("Perro", "Gato");
$animal[1] = array("Lombriz", "Burro");
$animal[2] = array("Murcilago", "Cocodrilo");
?>
ARRAYS ASOCIATIVOS
Los arrays asociativos, son aquellos en los cuales el ndice del array, pasa hacer una
clave(keys) de tipo texto; ya no es numrica por defecto.
Ejemplo 1:
<?php
$pago[enero] = 5000;
$pago febrero] = 14000;
$pago [marzo] = 200;
$pago [abril] =1200
?>
Ejemplo 2:
<?php
$menu = array(
Primer plato => Sopa de Res,
Segundo plato => Pollo a la plancha,
Postre => Quesillo
);
?>
Ejemplo 3:
<?php
$menu = array(
array(
Primer plato => Sopa de Res, Segundo plato => Pollo a la plancha,
Jugo => Pia),
array(
Primer plato => Sopa de Pollo, Segundo plato => Bistec a la
plancha, Jugo => Fresa),
array(
Primer plato => Mondongo, Segundo plato => Asado, Jugo=>
Melon)
);
?>

Recorridos Arrays
Funcin count($nombreArray);
Esta funcin cuenta el nmero de elementos de un array.
Estructura for
for($i=0;$i<count($nombreArray);$i++){
Procesos;
}
Estructura while
$i=0;
while($i<count($nombreVector){
Procesos;
}
$i=0;
do{
Procesos;
}while($i<count($nombreVector);
Estructura foreach( )
foreach($nombreVector,$valor){
echo $valor[indice];
}
Recorridos Array Asociativos
Funciones para trabajar con array asociativos
current
Recorridos Array indexados
pos
Recorridos Array indexados
reset
mueve el puntero al primer elemento de la tabla
end
mueve el puntero al ltimo elemento de la tabla
next
mueve el puntero al elemento siguiente
prev
mueve el puntero al elemento anterior
count
devuelve el nmero de elementos de una vector o tabla.
Funciones en Php
Una funcin es un conjunto de instrucciones que a lo largo del programa van a ser
ejecutadas varias veces. Es por ello, que este conjunto de instrucciones se agrupan en
una funcin. Las funciones pueden ser llamadas y ejecutadas desde cualquier punto del
programa.
Sintaxis
function nombreFuncion (parmetro1, parmetro2, , parmetroN) {
instruccin1
instruccin2
.
.

instruccinN
}
Para ejecutar la funcin
nombreFuncion(dato1, dato2, dato3, , datoN);
donde dato1, dato2, dato3, , datoN, son los datos que le pasamos a la funcin.
Una funcin puede necesitar de ningn, uno o varios parmetros para ejecutarse.
Ejemplo 1
<?php
//Declaracin de funcion
function mostrarContenido($texto) {
echo "<strong>$texto </strong>";
} //Fin de declaracin de funciones
//valor a pasar a la funcin
$mensaje= Curso de PIV;
// llamado de la funcin
mostrarContenido($mensaje);
?>

Ejemplo 2
<?php
function operaciones($n1, $n2, $tipoOperacion) {
$respuesta = 0;
if($tipoOperacion == "+") {
$ respuesta = $n1 + $n2;
}else if($tipoOperacion == "-") {
$ respuesta = $n1 - $n2;
}else if($tipoOperacion == "*") {
$ respuesta = $n1 * $n2;
}
return $respuesta; // Valor que devuelve la funcin
}
// Llamado de la funcin
$dato1=8;
$dato2=5;
$simbolo=*;
$r = operaciones($dato1, $dato2,"$simbolo);
echo $r . "<br>";
?>
Parmetros de una funcin
Existen dos formas de pasar parmetros a una funcin, por valor o por referencia.
Cuando pasamos una variable por valor a una funcin, esta nunca afectar el contenido
de la variable que paso el valor.
Mientras que si el paso de parmetros es por referencia, cualquier cambio que se
produzca en la funcin (con respecto a la variable declarada por referencia), afectar a
la variable que pas el valor.
Para indicar que la variable se pasa por referencia se antepone el smbolo & a el nombre
de la variable en la definicin de la funcin.
Tambin ocurre que hay funciones donde nos interesa pasar un valor por defecto, estos
valores deben ser constantes y estos se declaran a la derecha de cualquier parmetro sin
valor.
Ejemplo
<?php
function sumar($x,$y){
$x=$x+$y;
return $x;
}
Sa=3;
$b=5;
//caso de parmetro por valor
echo sumar($a,$b); mostrar 8;
echo $a; // mostrar 3
echo $b;// mostrar 5
//caso de parmetro por referencia
echo sumar(&$a,$b); mostrar 8;

echo $a; // mostrar 8


echo $b;// mostrar 5
>
Ejemplo de paso de parmetro por defecto
<?php
function sumar($y, $x=2){
$x=$x+$y;
return $x;
}
Variables estticas y globales
Las variables estticas (static) se definen dentro de una funcin, mientras que las
variables globales (global) no se pueden declarar en una funcin; lo que se hace es
llamar a una variable que ya ha sido declarada (var nombreVariable), tomando el valor
que tenga en ese instante, pudiendo ser modificado en la funcin.
Ejemplo Variables static
<?php
function contador( ){
static $count=0;
return $count;
}
echo contador().<br>; //Muestra 1
echo contador().<br>; //Muestra 2
echo contador().<br>; //Muestra 3
?>
Ejemplo de variables global
<?php
var $valor=1;
function mostrar( ){
global Svalor;
echo $valor.<br>; //Muestra el valor de $valor
$valor+;=1
}
echo mostrar().<br>; //Muestra 1
echo mostrar().<br>; //Muestra 2
$valor=7;
echo mostrar().<br>; //Muestra 7
echo mostrar().<br>; //Muestra 8
?>
Funciones para ahorrar cdigo

Generalmente los script dentro de un programa tienen partes de cdigo que se repiten,
existen unas funciones que permiten llamar a los archivos donde se encuentran
almacenadas las funciones que se utilizarn dentro de un script php.
Estas funciones son:
include()
//incluye el fichero functions.php
include("functions.php");
Esta funcin nos permite incluir el archivo tantas veces como lo pidamos, sin importar
que est incluido con anterioridad o no, simplemente evala el archivo y lo incluye en
nuestro documento. En caso de que el archivo no exista, nos devolver un warning pero
el script continuar ejecutndose.
include_once():
//evala si functions.php est incluido, si no lo est lo incluye
include_once("functions.php");
La diferencia respecto a la funcin include() y tal y como muestra su nombre, evaluar
si el archivo ya ha sido incluido y si es as, no volver a incluirlo, es decir, se incluye
una nica vez. En el caso de error por no encontrar el archivo se comporta igual que
include().
require():
//incluye y obliga a que functions.php est incluido
require("functions.php");
Posee el mismo comportamiento que include(), la nica diferencia reside en el caso de
error, pues cuando usamos require(), si el archivo no existe lanza un error fatal que para
la ejecucin del script.
require_once():
//evala y obliga a estar incluido, si lo est, no hace nada
require_once("functions.php");
Al igual que ocurre entre include() y include_once(), el comportamiento de
require_once() es el mismo que el de require(), tan slo que el primero evala si el
archivo ya ha sido incluido y si es as, no vuelve a incluirlo de nuevo. El tratamiento del
error es igual al que realiza require().
FILTROS PARA VALIDACIN
filter_var($variable, TipoDeFiltro,$options);
TIPODEFILTRO

BANDERAS

FILTER_VALIDATE_INT

FILTER_FLAG_ALLOW_OCTAL
FILTER_FLAG_ALLOW_HEX

FILTER_VALIDATE_FLOAT
FILTER_VALIDATE_BOOLEAN

FILTER_FLAG_ALLOW_THOUSAND
FILTER_NULL_ON_FAILURE

DESCRIPCIN
Valida un valor como integer, opcionalmente
desde el rango especificado.
min_range: Especifica el mnimo entero
permitido.
max_range: Especifica el mximo entero
permitido
Valida si el valor it float un.
Devuelve TRUE para "1", "true", "on" y "yes".
Devuelve FALSE en caso contrario..

FILTER_VALIDATE_EMAIL

FILTER_VALIDATE_URL

FILTER_FLAG_PATH_REQUIRED
FILTER_FLAG_QUERY_REQUIRED

FILTER_VALIDATE_IP

FILTER_FLAG_IPV4
FILTER_FLAG_IPV6
FILTER_FLAG_NO_PRIV_RANGE
FILTER_FLAG_NO_RES_RANGE

Si FILTER_NULL_ON_FAILURE est
declarado, se devolver FALSE slo para
"0", "false", "off", "no", y "", y NULL para
cualquier valor no booleano.
Valida Una Direccin de Correo electrnico.
En general se valildan Direcciones de Correo
electrnico con la sintaxis de RFC 822, con
La Excepcin de no admitir el plegamiento
de comentarios y Espacios en blanco.
Valida si su valor es una URL (de acuerdo
con http://www.faqs.org/rfcs/rfc2396),
opcionalmente con componentes necesarios.
Se ha de tener cuidado ya que una URL
vlida podra no especificar el protocolo
HTTP http://, por lo que podran ser
necesarias validaciones posteriores para
determinar que la URL utiliza un protocolo
esperado, p.ej., ssh:// o mailto:. Ntese que
esta funcin slo buscar para ser validadas
URLs ASCII; los nombres de dominio
internacionales (que contienen no-ASCII
caracteres) fallarn en la validacin.
Valida si es valor es una direccin IP,
opcionalmente se puede indicar que sea slo
IPv4 o IPv6 o que no sea de rangos privados
o reservados.

FILTROS DE SANEAMIENTO
ID
FILTER_SANITIZE_EMAIL

Nombre
"email"

FILTER_SANITIZE_ENCODED

"encoded"

FILTER_SANITIZE_MAGIC_QUOTES

"magic_quotes"

FILTER_SANITIZE_NUMBER_FLOAT

"number_float"

FILTER_SANITIZE_NUMBER_INT

"number_int"

FILTER_SANITIZE_SPECIAL_CHARS

"special_chars"

FILTER_SANITIZE_FULL_SPECIAL_CH
"full_special_chars"
ARS

FILTER_SANITIZE_STRING

Banderas

"string"

FILTER_FLAG_STRIP_LOW
FILTER_FLAG_STRIP_HIGH
FILTER_FLAG_ENCODE_LOW
FILTER_FLAG_ENCODE_HIGH
FILTER_FLAG_ALLOW_FRACTION
FILTER_FLAG_ALLOW_THOUSAND
FILTER_FLAG_ALLOW_SCIENTIFIC

FILTER_FLAG_STRIP_LOW
FILTER_FLAG_STRIP_HIGH
FILTER_FLAG_ENCODE_HIGH

FILTER_FLAG_NO_ENCODE_QUOTES,

FILTER_FLAG_NO_ENCODE_QUOTES
FILTER_FLAG_STRIP_LOW

Descripcin
Elimina todos los caracteres menos
letras, dgitos
y !#$%&'*+-/=?^_`{|}~@.[].
String URL-encode, opcionalmente
elimina o codifica caracteres especiales.
Aplica addslashes().
Elimina todos los caracteres a
excepcin de los dgitos, +- y,
opcionalmente, .,eE.
Elimina todos los caracteres excepto
dgitos y los signos de suma y resta.
Escapa caracteres HTML '"<>& y
caracteres con valores ASCII
menores que 32, opcionalmente
elimina o codifica caracteres
especiales.
Equivalente a llamar a
htmlspecialchars()
con ENT_QUOTES establecido.
Las comillas de codificacin pueden
ser desactivadas mediante el
establecimiento de FILTER_FLAG_
NO_ENCODE_QUOTES.
Al igual que html specialchars(),
este filtro tiene en cuenta el default_charset y si
en una
secuencia de bytes se detecta
que contiene un carcter no vlido
en el conjunto de caracteres actual
entonces el string completo es
rechazado lo que resulta en un
string de longitud 0. Cuando se
utiliza este filtro como un filtro
predeterminado, vea la advertencia de abajo
sobre establecer las banderas predeterminadas
a0.
Elimina etiquetas, opcionalmente
elimina o codifica caracteres

ID

Nombre

FILTER_SANITIZE_STRIPPED

"stripped"

FILTER_SANITIZE_URL

"url"

FILTER_UNSAFE_RAW

"unsafe_raw"

Banderas
FILTER_FLAG_STRIP_HIGH
FILTER_FLAG_ENCODE_LOW
FILTER_FLAG_ENCODE_HIGH
FILTER_FLAG_ENCODE_AMP

Descripcin
especiales.
Alias del filtro "string".
Elimina todos los caracteres excepto
letras, dgitos y
$-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.

FILTER_FLAG_STRIP_LOW
FILTER_FLAG_STRIP_HIGH
FILTER_FLAG_ENCODE_LOW
FILTER_FLAG_ENCODE_HIGH
FILTER_FLAG_ENCODE_AMP

No hace nada, opcionalmente


elimina o codifica caracteres
especiales.

Otra manera de Filtrar el dato que ingresa del formulario es creando funciones que
eviten los datos errados1)Validar Campo numrico
funcin empty()
Bool empty (mixed $var)
Determina si una variable es considerada vaca. Una variable se considera vaca si no
existe si su valor es igual a FALSE. empty() no genera una advertencia si la variable no
existe; de otro modo devuelve TRUE
Las siguientes expresiones son consideradas como vacas:
"" (una cadena vaca)
0 (0 como un integer)
0.0 (0 como un float)
"0" (0 como un string)
NULL
FALSE
array() (un array vaco)
$var; (una variable declarada, pero sin un valor)
funcin ctype_digit()
bool ctype_digit (string $text)
Verifica si todos los caracteres en la string entregada, text, son numricos.
Devuelve TRUE si cada caracter del texto es un dgito decimal, o FALSE de lo
contrario.
<?php
$dato_string = '42';
$integer
= 42;
ctype_digit($ato_string); // true
ctype_digit($integer);
// false (ASCII 42 es el caracter *)
?>
Nota:
Esta funcin espera un string para ser til, por ejemplo si pasamos un integer no puede
devolver el resultado esperado. Sin embargo, ntese tambin los formularios HTML
resultarn en strings numricos y no en integers. Ver tambin la seccin del
manual tipos.
Si se proporciona un integer entre -128 y 255 inclusive, se interpreta como el valor
ASCII de un simple carter (a los valores negativos se le aade 256 para permitir
caracteres en el rango ASCII Extendido). Cualquier otro entero se interpreta como una
cadena que contiene los dgitos decimales del entero.
Ejemplo: validar campo numerico
<?php
function valorEntero($dato){
if(empty($dato)){
return false; //campo vacio
}

else{
if(ctype_digit($valor)){
return false; //si es un numero
}
else{
return true; //error no es nmero
}
}
}
?>
2) Validar campo Alfabtico
<?php
function valorAlfabetico($dato){
$valores_alfabeticos=/ ^[A-Z ]{1,25}/i;
if(empty($dato)){
return false; //campo vacio
}
else{
if(preg_match($valores_alfabeticos ,$dato)){
return false; //Campo permitido
}
else{
return true; //error uno de los caracteres no pertenece a la expresin
permitida
}
}
}
?>
Funcion preg_match()
Realiza una comparacin con una expresin regular
Sintaxis
entero preg_match (exp_regular , cadena [, coincidencias[, flags [,
comienzo ]]])
Parmetros:

entero: La funcin devuelve un nmero entero. El valor ser 1 en caso de

coincidencia, 0 si no la hay, tambin puede devolver FALSE si hay algn error en la


funcin.

exp_regular (Obligatorio): Expresin regular que usaremos para la

comparacin.

cadena (Obligatorio): Cadena de texto comparada.

coincidencias (Opcional): Es un array con informacin de las partes de la

cadena que coinciden con la expresin regular.

flags (Opcional): Si se pasa el parametro PREG_OFFSET_CAPTURE en

el array de coincidencias tambin vendr el ndice de comienzo de cada coincidencia.

comienzo (Opcional): Posicin de comienzo dentro de la cadena de la

comparacin.
Hay varios caracteres que son delimitadores del patrn::

i: Indica que el patrn de bsqueda no diferencia entre maysculas y minsculas.

b: Delimita el final de la condicin estricta de un patrn, es decir, sin

comparamos /compara/b con /comparador/ la bsqueda dar FALSE.


Funcin isset()
La funcin isset() nos permite comprobar si una variable est definida, devolviendo true
si lo estuviese. es decir si la variable fu instanciada previamente utilizada o separada
su espacio en memoria (declarada).
Su uso ms comn es cuando queremos comprobar si estamos entrando por primera vez
a una pagina con un formulario o estamos entrando porque se presion el botn de
SUBMIT y hay que verificar si los campos han sido rellenados correctamente. Otro uso
es para comprobar si existe una variable en $_SESSION .
Ejemplo:
<html>
<head>
<title>Funcion isset()</title>
</head>
<body>
<form action="" method="POST" name="frmEnvio">
Nombre: <input type="text" name="nombre"><br />
<input type="submit" value="Enviar">
</form>
<?php
if (isset($_POST['nombre']))
{
echo "La variable $_POST['nombre'] existe, ";
}
?>
</body>
</html>

Ejemplo:
Pgina que recibe un dato y si no se cumple devuelve automticamente a la pgina de
donde fue enviado
FORMULARIO
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
</HEAD>
<BODY>
<form method="POST" action="regresar.php">
<input type="text" name="valor"size="20">
<input type="submit" value="enviar">
</form>
</BODY>
</HTML>
ARCHIVO QUE REGRSA EL RESULTADO (regresar.php)
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
</HEAD>
<BODY>
<?php
include('funciones1.php');
$error=array();
if(validarEntero($valor)){
$error[]='Campo no valido';
}
if(!$error){
header('Location:pruebaheader.htm');
exit;
}
echo "El valor ingresado es correcto";
?>
</BODY>
</HTML>
ARCHIVO DE FUNCIONES (funciones1.php)
$valor=$_POST['valor'];
function validarEntero($x){
if(filter_var($x,FILTER_VALIDATE_INT)===FALSE){
return false;

}else
{
return true;
}
}

También podría gustarte