0% encontró este documento útil (0 votos)
77 vistas72 páginas

Daw PHP PDF

El documento introduce el lenguaje PHP, incluyendo su historia, características, sintaxis básica y ejemplos. Explica cómo instalar PHP y ejecutar programas web dinámicos de servidor.

Cargado por

Garfio_LP
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
77 vistas72 páginas

Daw PHP PDF

El documento introduce el lenguaje PHP, incluyendo su historia, características, sintaxis básica y ejemplos. Explica cómo instalar PHP y ejecutar programas web dinámicos de servidor.

Cargado por

Garfio_LP
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 72

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

PHP: PHP Hypertext Pre-processor


Desarrollo de Aplicaciones Web
Antonio LaTorre <[email protected]>
Universidad Politcnica de Madrid

2014/2015

PHP: PHP Hypertext Pre-processor

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Contenidos

Introduccin al lenguaje PHP

Primeros pasos con PHP

Manejo de arrays

Programacin avanzada en PHP


Formularios, Cookies y Sesiones
Acceso a ficheros

PHP: PHP Hypertext Pre-processor

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Introduccin al lenguaje PHP

Primeros pasos con PHP

Manejo de arrays

Programacin avanzada en PHP

PHP: PHP Hypertext Pre-processor

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Ejecucin de Programas Web

Pginas dinmicas en cliente


El cliente recibe un pequeo programa que interacciona

con el navegador del usuario


til pero tiene algunas limitaciones
Tecnologas tales como JavaScript

Pginas dinmicas de servidor


El cliente recibe el resultado de un programa que ejecuta

el servidor web
Menos interactivo pero ms potente
Soluciones bsicas: CGI
Soluciones ms potentes: ASP, JSP, PHP

PHP: PHP Hypertext Pre-processor

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Ejecucin de Programas Web

PHP: PHP Hypertext Pre-processor

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

PHP

PHP es...
Las siglas de PHP Hypertext Pre-processor
Un lenguaje interpretado diseado expresamente para

crear pginas dinmicas en el servidor


Una de las alternativas tecnolgicas ms usadas en el

desarrollo de aplicaciones en servidor


Un estndar de cdigo libre

PHP: PHP Hypertext Pre-processor

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

PHP

Caractersticas de PHP
El cdigo PHP lo procesa el servidor y el cliente no lo ve
(ve su resultado)
Permite el acceso sencillo a muchas bases de datos
Tiene muchas bibliotecas de utilidades y muchos recursos

en la web
Permite intercalar etiquetas PHP y HTML (cuidado)
Se puede usar para programar otras cosas

PHP: PHP Hypertext Pre-processor

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Historia de PHP

Versiones de PHP
Versin original de
Rasmus Lerdorf (1994)

PHP 4 (2000)

Relevancia de PHP
TIOBE Programming
Community Index lo
indexa como 6o
lenguaje de
programacin ms
usado (abril 2015)

PHP 5 (2004)

El primero entre los

PHP 3 (1998)
Zend Engine (1999)

PHP 6 (nunca liberado)


PHP 7 (octubre 2015)

PHP: PHP Hypertext Pre-processor

lenguajes orientados
nicamente a web

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Herramientas para PHP

Recursos
Existen numerosos recursos PHP disponibles

Editores Especficos

Extensiones y bibliotecas

PHP designer

http://pear.php.net( )
https://packagist.org( )
http://pecl.php.net( )

PhpStorm
Rapid PHP Editor

Depuradores
PHP DBG

Ayuda
http://www.php.net( )

Xdebug
APD
PHP: PHP Hypertext Pre-processor

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Introduccin al lenguaje PHP

Primeros pasos con PHP

Manejo de arrays

Programacin avanzada en PHP

PHP: PHP Hypertext Pre-processor

10

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Instalacin de un servidor web con PHP

Mltiples soluciones (LAMP, WAMP, etc.)


Normalmente, suelen incluir un servidor Apache, una

BBDD MySQL (MariaDB) y el intrprete de PHP


En Linux, cada distribucin proporciona paquetes para

cada uno de los componentes


En Windows existen multitud de alternativas

XAMPP
WampServer
VertrigoServ
EasyPHP

PHP: PHP Hypertext Pre-processor

11

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Ejemplo PHP

Hola Mundo
<BODY>
<B>Esto es HTML</B><BR>
<?php
echo "<B>Hola Mundo</B><BR>\n";
echo "Hoy es: ";
echo date("d/m/Y");
echo ", que disfrutes del da!\n";
?>
</BODY>

PHP: PHP Hypertext Pre-processor

12

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Ejemplo PHP

Instalacin en el servidor
El fichero debe instalarse en la
carpeta www de la instalacin.
Para ver su ejecucin se debe

consultar con el navegador la


direccin:
http://localhost/hola-mundo.php( )

PHP: PHP Hypertext Pre-processor

13

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Ejemplo PHP

Hola Mundo (lo que ve el cliente)


<BODY>
<B>Esto es HTML</B><BR>
<B>Hola Mundo</B><BR>
Hoy es: 19/01/2007, qu disfrutes del da!
</BODY>

PHP: PHP Hypertext Pre-processor

14

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP I

Sintaxis similar a la de C (con algunas particularidades...)


Existen tres tipos de comentarios: una lnea (// y #) y

mltiples lneas (/* */)


Todas las variables en PHP comienzan por un dlar ($) y

se declaran con la primera asignacin


El tipado de variables es dbil: no es necesario

especificarlo y el tipo de una variable puede cambiar


Las cadenas de caracteres pueden delimitarse usando

comillas dobles (expanden las variables) o comillas


simples (no las expanden)
Saltos de lnea en el cdigo PHP vs. saltos de lnea HTML

(<BR>)
PHP: PHP Hypertext Pre-processor

15

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP II

Gestin de variables
Como los tipos son dinmicos, podemos preguntar por el
tipo de una variable: is_int(), is_float(),
is_string(), gettype()
Podemos convertir entre tipos de variables haciendo

casting: (string), (boolean), (int), (float)


O preguntar si una variable se encuentra definida o incluso

eliminarla: isset() y unset()


Si una variable no va a cambiar de valor podemos definirla

como una constante: define(nombre, valor) y uso


como variable (sin el $)
Declaracin de referencias (aliases): $alias=&$var

PHP: PHP Hypertext Pre-processor

16

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP III

Operadores
Operadores aritmticos estndar: suma(+), resta (-),

divisin (/), multiplicacin (*) y mdulo ( %)


Todos los operadores aritmticos se pueden combinar con

una asignacin: +=, -=, etc.


Operadores de pre/post incremento (++) y decremento ()
Operadores lgicos: and (&&), or (||), xor (xor), negacin

lgica (!).
Operadores de igualdad y equivalencia: ==, !=, ===, !==
Operadores de comparacin: <, >, >=, <=
Operador de concatenacin de cadenas (tambin con

enteros): .
PHP: PHP Hypertext Pre-processor

17

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP IV

Estructuras de control
PHP comparte la mayora de las estructuras de control
tpicas de cualquier lenguaje de control estructurado:
Control de flujo: if-then-else, switch
Bucles: for, while, do-while
etc.

PHP: PHP Hypertext Pre-processor

18

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP V

if-then-else
if($a<0)
echo "negativo";
elseif($a<10)
echo "entre 0 y 10";
elseif($a<100)
echo "entre 10 y 100";
elseif($a<1000)
echo "entre 100 y 1000";
else
echo "un montn";

PHP: PHP Hypertext Pre-processor

19

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP VI

switch
switch($pais)
{
case "Espaa":
echo "espaol";
break;
case "Italia":
echo "italiano";
break;
default:
echo "otra nacionalidad";
}

PHP: PHP Hypertext Pre-processor

20

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP VII

for(init;cond;inc)
for($header=1;$header<4;$header++)
echo "<H$header>Cabecera $header</H$header><BR>\n";

while
$header=1;
while($header<4)
{
echo "<H$header>Cabecera $header</H$header><BR>\n";
$header++;
}

PHP: PHP Hypertext Pre-processor

21

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP VIII

do-while
$indice=1;
do
{
echo "Indice $indice<BR>\n";
$indice++;
}
while($indice<4);

PHP: PHP Hypertext Pre-processor

22

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP IX

Declaracin de funciones
PHP soporta el uso de funciones, que reciben argumentos
y devuelven un valor de retorno
A los argumentos podemos asignarles valores por defecto
E incluso podemos declarar funciones con un nmero

variable de argumentos: func_num_args() y


func_get_args()
Las funciones pueden recibir argumentos pasados por

referencia
Y pueden acceder a variables globales (global y

$GLOBALS)

PHP: PHP Hypertext Pre-processor

23

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP X


Ejemplo: funcin que devuelve un valor
function por_dos($num)
{
return 2*$num;
}
por_dos(33);

Ejemplo: paso de argumento por referencia


function incrementa(& $num)
{
$num++;
}
$x=2;
incrementa($x);
echo $x;

PHP: PHP Hypertext Pre-processor

24

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP XI

Ejemplo: nmero de argumentos variable


function suma()
{
if(func_num_args()<1)
return "Al menos un argumento";
$args=func_get_args();
$cnt=0;
foreach($args as $n)
$cnt+=$n;
return $cnt;
}
suma(10,21,32,43);
suma(1,0.23,11);

PHP: PHP Hypertext Pre-processor

25

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sintaxis bsica de PHP XII

Declaracin de funciones en ficheros distintos


Si una funcin se usa en distintos puntos de una
aplicacin podemos definirla en un fichero aparte e
incluirla desde aqullos donde se use
Podemos usar dos funciones de PHP para cargar estas

funciones:
include(): Si el fichero no existe da un aviso
require(): Si el fichero no existe da un error

La inclusin de ficheros sera anloga a copiar dicho

fichero donde aparezca la llamada de inclusin

PHP: PHP Hypertext Pre-processor

26

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Introduccin al lenguaje PHP

Primeros pasos con PHP

Manejo de arrays

Programacin avanzada en PHP

PHP: PHP Hypertext Pre-processor

27

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Introduccin I
Estructuras Compuestas

Estructuras de datos compuestas


Las estructuras de datos compuestas permiten almacenar

varios elementos de diferentes tipos (simples o


compuestos) de manera estructurada
PHP dispone de un tipo de dato compuesto muy potente:

el array

PHP: PHP Hypertext Pre-processor

28

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Introduccin II
Estructuras Compuestas

Array
Esta estructura es la anloga a 3 4 tipos compuestos en

otros lenguajes.
Hay varias formas de crear un array
Las ms sencillas son:
array(): Crea un array vaco
array(elementos...): Crea un array y lo inicializa con

tantos elementos como se le pasen.


Los arrays tambin se pueden inicializar elemento a

elemento.

PHP: PHP Hypertext Pre-processor

29

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays I
Estructuras Compuestas

Inicializacin de arrays
$a = array(); // Array vaco
$b = array("Cero", "Uno", "Dos");
$b[3]="Tres";
$c[0]=true;
$c[1]=false;
$c[2]=false;
$c[3]=true;
// Imprime "Cero Uno Dos Tres"
echo $b[0]." ".$b[1]." ".$b[2]." ".$b[3];
echo $b; // Ojo: imprime "Array"

PHP: PHP Hypertext Pre-processor

30

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays II
Estructuras Compuestas

Tipos de los datos de un array


Los valores de los elementos de un array pueden ser de

distintos tipos.
Un array puede ser elemento de otro array (una matriz).

Tipos de los datos de un array


$val[0]="doce";
$val[1]=34;
$val[2]=0.00211;
$val[3]=true;
$val[4]=array(10,20,30);
echo "{$val[4][1]}";

PHP: PHP Hypertext Pre-processor

31

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays III
Estructuras Compuestas

ndices de un array
Un elemento de un array se puede eliminar
Esto implica que los arrays no son necesariamente

consecutivos.
ndices de un array
$foo=array(11,22,33,44);
unset($foo[2]); // 33 desaparece
// Pero $foo[3] sigue siendo 44
$baa[0]="Adis";
$baa[12]="mundo";
$baa[30]="cruel";
$baa[991]="!";

PHP: PHP Hypertext Pre-processor

32

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays IV
Estructuras Compuestas

ndices de un array
Para insertar un elemento al final de un array se puede

usar "[]"
Esto asocia al elemento el siguiente valor de la clave

numrica ms alta del array


ndices de un array
$baa[991]="!";
$baa[]="."; // Equivale a $baa[992];

PHP: PHP Hypertext Pre-processor

33

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays V
Estructuras Compuestas

Arrays asociativos
Las claves (ndices) de los arrays tambin pueden ser

cadenas de caracteres.
Un array puede tener claves numricas y de cadena a la

vez
Arrays asociativos
$persona["Nombre"] ="Pepe";
$persona["Apellido"]="Ptamo";
$persona["Edad"]
=70;
$persona[1]
=true;

PHP: PHP Hypertext Pre-processor

34

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays VI
Estructuras Compuestas

Inicializando arrays asociativos


Un array asociativo se puede inicializar indicando claves y

valores a la vez
Inicializando arrays asociativos
$v=array("a"=>1, "b"=>2);
$data=array("Edad"
=> 25,
"Premio" => true,
"Importe"=> 239.50);

PHP: PHP Hypertext Pre-processor

35

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays VII
Estructuras Compuestas

Matrices
Una matriz no es ms que un array cuyos elementos son
arrays
Como no hace falta declararlas se pueden inicializar sobre

la marcha
Matrices
$matriz=array();
$matriz[0]=array("A","B");
$matriz[1]=array("C","D");
$cnt=0;
for($i=0;$i<5;$i++)
for($j=0;$j<5;$j++)
$M[$i][$j]=$cnt++;

PHP: PHP Hypertext Pre-processor

36

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays VIII
Estructuras Compuestas

Imprimiendo un array
Al hacer un echo sobre una variable array no se obtiene

su contenido
La funcin print_r() permite imprimir un array
El resultado est formateado con "\n", no con < BR >

Imprimiendo un array
$m=array("A"=>11, "B"=>33);
echo $m; // Sale "Array"
echo "<pre>";
print_r($m);
echo "</pre>";

PHP: PHP Hypertext Pre-processor

37

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays IX
Estructuras Compuestas

Iteracin sobre arrays


count() devuelve el nmero de elementos del array
Recorrer con un for desde 0 hasta ese valor puede

causar problemas
Hay que recordar que los elementos pueden no ser

consecutivos
Iteracin sobre arrays
$num[0]=100;
$num[3]=200;
for($i=0;$i<count($num);$i++) // 0 y 1
echo $num[$i]; // No saldr $num[3]

PHP: PHP Hypertext Pre-processor

38

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays X
Estructuras Compuestas

Iteracin sobre arrays


Existe un bucle especial para iterar sobre los arrays
foreach recorre uno a uno todos los elementos del array
Este bucle es independiente de las claves

Iteracin sobre arrays


$num[0]=100;
$num[3]=200;
foreach($num as $k => $n) // $n es el elemento
echo $n; // 100, 200

PHP: PHP Hypertext Pre-processor

39

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays XI
Estructuras Compuestas

Iteracin sobre arrays


Existe otra forma de iterar sobre arrays
Para ello se usan las funciones:

reset(): Se pone al comienzo del array


end(): Se pone al final del array
current(): Te da el elemento actual
next(): Avanza y te da el elemento siguiente
prev(): Retrocede y te da el elemento anterior

Si no hay ningn elemento, estas funciones devuelven

false

PHP: PHP Hypertext Pre-processor

40

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays XII
Estructuras Compuestas

Iteracin sobre arrays


Existe otra funcin, each(), anloga a next()
Esta funcin devuelve un par (clave, elemento)
Su valor hay que recogerlo con un list

Iteracin sobre arrays


$persona["Nombre"] ="Pepe";
$persona["Apellido"]="Ptamo";
$persona["Edad"]
=70;
reset($persona); // Comenzamos
while(list($clave,$val)=each($persona))
echo "$clave : $val<BR>\n";

PHP: PHP Hypertext Pre-processor

41

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays XIII
Estructuras Compuestas

Funciones sobre arrays


Un array puede valer para implementar pilas o colas
Las funciones usadas seran:
array_push(): Aade al final (como [])
array_pop(): Elimina el ltimo elemento y da su valor
array_shift(): Elimina el primer elemento

(reordenando el resto)
array_unshift(): Aade un elemento al principio y

desplaza (reordenando) el resto

PHP: PHP Hypertext Pre-processor

42

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays XIV
Estructuras Compuestas

Pilas y colas
$jobs=array("cargar","operar","guardar");
array_unshift($jobs,"preparar");
array_push($jobs,"probar","apagar");
while($j=array_shift($jobs))
echo "Ejecutando: $j<BR>\n";

PHP: PHP Hypertext Pre-processor

43

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays XV
Estructuras Compuestas

Expansin de arrays
Existen dos funciones para convertir cadenas de

caracteres en arrays (y viceversa):


explode(): Parte una cadena en subcadenas y las mete

en un array
implode(): Concatena todos los elementos de un array

en una misma cadena


Estas funciones toman como argumento un separador

PHP: PHP Hypertext Pre-processor

44

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays XVI
Estructuras Compuestas

Expansin de arrays
$texto="En un lugar de la Mancha";
// Lista de palabras
$palabras=explode(" ", $texto);
// Nuevo texto
$texto2=implode("_", $palabras);

PHP: PHP Hypertext Pre-processor

45

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays XVII
Estructuras Compuestas

Ordenacin de arrays
Dos arrays no son equivalentes (===), pero s iguales (==),

si el orden de sus elementos no es el mismo


Para ordenar arrays se usan las siguientes funciones:
sort(): Mantiene el orden de las claves y ordena los

elementos
asort(): Ordena los elementos pero cada cual conserva

su clave.
ksort(): Ordena por clave, pero cada cual mantiene su

elemento asociado
La ordenacin por defecto es ascendente
Existen las funciones anlogas para ordenacin inversa:

rsort(), arsort() y krsort()


PHP: PHP Hypertext Pre-processor

46

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Arrays XVIII
Estructuras Compuestas

Ordenacin de arrays
$alumnos=array(
210 => "Dolores Fuertes",
115 => "Walter OFilia",
523 => "Armando Guerra",
410 => "Julian Dopetas");
// Por clave
ksort($alumnos);
// Por nombre
asort($alumnos);
// Rompe asociacin
sort($alumnos);

PHP: PHP Hypertext Pre-processor

47

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Introduccin al lenguaje PHP

Primeros pasos con PHP

Manejo de arrays

Programacin avanzada en PHP


Formularios, Cookies y Sesiones
Acceso a ficheros

PHP: PHP Hypertext Pre-processor

48

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Procesamiento de Formularios I
Formularios

Dos mecanismos para enviar informacin mediante

formularios
GET
POST

Las variables son parseadas automticamente por el

servidor
La informacin puede ser accedida a travs de varios

arrays:
Por medio de los arrays: $_HTTP_GET_VARS y

$_HTTP_POST_VARS (en desuso)


Por medio de las variables superglobales: $_GET, $_POST,

$_REQUEST
PHP: PHP Hypertext Pre-processor

49

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Procesamiento de Formularios II
Formularios

Mtodo GET
$patron = $_GET[patron];
/* Forma recomendada */
$patron3 = $HTTP_GET_VARS[patron]; /* En desuso */
$patron4 = $_REQUEST[patron];
/* Otra opcin */

Mtodo POST
$texto = $_POST[texto];
/* Forma recomendada */
$texto3 = $HTTP_POST_VARS[texto]; /* En desuso */
$texto4 = $_REQUEST[texto];
/* Otra opcin */

PHP: PHP Hypertext Pre-processor

50

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Procesamiento de Formularios III


Formularios

formulario.html
<form method="POST" action="suma.php">
<input type="text" size="10" name="A" value="">
<input type="text" size="10" name="B" value="">
<br>
<input type="submit" value="Sumar">
</form>

suma.php
<?php
// Recibe parmetros
$A = isset($_REQUEST[A]) ? $_REQUEST[A] : 0;
$B = isset($_REQUEST[B]) ? $_REQUEST[B] : 0;
?>

PHP: PHP Hypertext Pre-processor

51

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Envo de archivos al servidor I


Formularios

El formulario debe tener un tipo de codificacin

multipart/form-data
La informacin del archivo se guarda en la variable

superglobal $_FILES
$_FILES es un array asociativo que contiene:

name: nombre original del archivo


size: tamao en bytes
type: tipo MIME del archivo, si el navegador lo proporciona
tmp_name: nombre temporal de la copia del archivo en el
servidor
error: cdigo del error sucedido, si procede

PHP: PHP Hypertext Pre-processor

52

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Envo de archivos al servidor II


Formularios

Ejemplo de Formulario
<FORM ENCTYPE="multipart/form-data" METHOD="POST">
<H2>Escoja el archivo que desea enviar:</H2>
<INPUT NAME="fich" TYPE="file"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>

PHP: PHP Hypertext Pre-processor

53

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Envo de archivos al servidor III


Formularios

Procesamiento de los datos del archivo


} else {
echo "Los datos relativos al archivo suministrado
son:<BR>";
echo "Nombre original: ".$_FILES[fich][name]."<BR>";
echo "Tipo de archivo: ".$_FILES[fich][type]."<BR>";
echo "Tamao del fich: ".$_FILES[fich][size]."<BR>";
echo "Nombre temporal:
".$_FILES[fich][tmp_name]."<BR>";
if (!empty($_FILES[fich][error]))
echo "Error ocurrido:
".$_FILES[fich][error]."<BR>";
}

PHP: PHP Hypertext Pre-processor

54

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Funcionamiento bsico y especificacin I


Cookies

(Breve) Informacin de estado almacenada por el

navegador del cliente


Estado vlido nicamente para un conjunto de URLs

(dominio)
Esta informacin es enviada por el navegador en

posteriores visitas al mismo servidor


Algunos ejemplos de aplicacin:
Carritos de la compra en tiendas virtuales
Identificacin de usuarios
Almacenamiento de preferencias de usuario para la

visualizacin de una pgina web (por ejemplo Google)


Deben ser enviadas antes de que el script produzca

ninguna otra salida


PHP: PHP Hypertext Pre-processor

55

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Funcionamiento bsico y especificacin II


Cookies

El formato de una cookie es:


name: nombre de la cookie
value: valor de la cookie
expire: hora de expiracin de la cookie (nmero de

segundos desde el 1 de enero de 1970)


path: ruta en el servidor en el que estar disponible la

cookie
domain: dominio en el que la cookie estar disponible
secure: decide si la cookie ha de ser enviada mediante

conexin segura

PHP: PHP Hypertext Pre-processor

56

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Uso de cookies en PHP


Cookies

Sintaxis de la funcin setcookie


setcookie (name,value,expire,path,domain,secure);

Ejemplo de manejo de cookie


<?
$contador = $_COOKIE[contador];
$contador++;
setcookie ("contador", $contador, time() + 60);
?>

PHP: PHP Hypertext Pre-processor

57

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Ventajas e Incovenientes
Cookies

Ventajas:
Mecanismo fcil de implementar
Facilitan la navegacin del usuario

Inconvenientes
Puede convertirse en un mecanismo muy pesado

(sobrecarga de informacin enviada)


No siempre estn habilitadas (el navegador del usuario

puede bloquearlas)
La informacin es fcilmente alterable

PHP: PHP Hypertext Pre-processor

58

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Introduccin
Sesiones

Alternativa a las Cookies para mantener informacin de

estado
Diferencia
La informacin es almacenada en el servidor
Necesita de un identificador de sesin (MD5 de un nmero

aleatorio)
Enviar el identificador en una Cookie
Enviar el identificador en cada query (a continuacin de la

URL)

PHP: PHP Hypertext Pre-processor

59

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Sesiones en PHP
Sesiones

Existen dos funciones bsicas para el manejo de sesiones

en PHP:
session_start ()
session_destroy ()

Forma de registrar/acceder a las variables:


$_SESSION [variable]

PHP: PHP Hypertext Pre-processor

60

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Ejemplo I
Sesiones

Abrimos la sesin y registramos las variables


<?
session_start();
?>

Presentamos el Formulario
<FORM METHOD="POST">
Introduzca un nmero entero entre 0 y 9999:<BR>
Nmero: <INPUT NAME="numero" TYPE="text">
<INPUT NAME="envio" TYPE="submit" VALUE="Probar">
<INPUT NAME="reinicio" TYPE="submit" VALUE="Reiniciar">
</FORM>

PHP: PHP Hypertext Pre-processor

61

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Ejemplo II
Sesiones

Procesamos la informacin
if (empty ($_SESSION [secreto]) || $_REQUEST[reinicio] ==
"Reiniciar") {
echo "Intente adivinar el nmero secreto.<BR><BR>";
$_SESSION [secreto] = rand (0,9999);
$_REQUEST[numero] = 0;
} else if (empty ($_REQUEST[numero])) {
echo "Intente adivinar el nmero secreto.<BR><BR>";
} else if ($_SESSION [secreto] < $_REQUEST[numero]) {
$_SESSION [intentos]++;
echo "El nmero secreto es menor que " . $_REQUEST[numero]
. "<BR>";
echo "Lleva usted " . $_SESSION [intentos] . "
intentos!<BR>";
} else if ($_SESSION [secreto] > $_REQUEST[numero]) {

PHP: PHP Hypertext Pre-processor

62

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Ejemplo III
Sesiones

Destruimos la sesin
} else if ($_SESSION [secreto] > $_REQUEST[numero]) {
$_SESSION [intentos]++;
echo "El nmero secreto es mayor que " . $_REQUEST[numero]
. "<BR>";
echo "Lleva usted " . $_SESSION [intentos] . "
intentos!<BR>";
} else {
echo "<BR>";
echo "ENHORABUENA, el nmero secreto era " .
$_REQUEST[numero] . "<BR>";
echo "<BR>";
session_destroy ();
exit ();
}

PHP: PHP Hypertext Pre-processor

63

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Otras consideraciones
Sesiones

Si PHP fue compilado con la opcin -enable-trans-id el

identificador de sesin se aade automticamente a cada


enlace
Para poder usar las variables de sesin hay que llamar a la

funcin session_start() al comienzo de cada script


Otras funciones de inters:
session_unset ()
session_id ()
isset($_SESSION[variable])
unset($_SESSION[variable])

PHP: PHP Hypertext Pre-processor

64

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Manejo de Ficheros I
Ficheros

Uso de ficheros
Una de las alternativas para mantener informacin
persistente de las operaciones del usuario es la utilizacin
de ficheros
En la gran mayora de los sistemas hay que considerar

adems los aspectos de propiedad y seguridad de los


ficheros
Hay que tener en cuenta que el proceso que ejecuta el

servidor Web debe poder realizar las operaciones


solicitadas sobre los ficheros

PHP: PHP Hypertext Pre-processor

65

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Manejo de Ficheros II
Ficheros

Gestin de ficheros
Hay dos formas de manipular ficheros:
Por medio de las funciones heredadas de C/UNIX
El interfaz de funciones propias de PHP

Las primeras, no obstante no se recomiendan, salvo para

operaciones muy particulares

PHP: PHP Hypertext Pre-processor

66

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Manejo de Ficheros III


Ficheros

Manejo bsico
Existen dos funciones que permiten gestionar ficheros por

medio de cadenas:
file_get_conents(): Esta funcin carga en una

cadena el contenido del fichero


file_put_conents(): Esta funcin vuelca el contenido

de una cadena en un fichero

Manejo bsico
$cadena="La vida es maravillosa";
file_put_contents("fichero.txt",$cadena);
$leido=file_get_contents("fichero.txt");
echo "He ledo: $leido";

PHP: PHP Hypertext Pre-processor

67

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Manejo de Ficheros IV
Ficheros

Manejo con arrays


La funcin file() permite cargar un fichero en un array
El array comenzar en la clave 0
Cada elemento ser una lnea del fichero
El carcter de final de lnea \n tambin se guardar al final

de cada elemento
Manejo con arrays
$poema="A un panal de rica miel\n mil moscas acudieron\n Yo.";
file_put_contents("poema.txt",$poema);
$lineas=file("poema.txt");
echo $lineas[0]; // A un panal de rica miel\n
echo $lineas[1]; // mil moscas acudieron\n
echo $lineas[2]; // Yo.

PHP: PHP Hypertext Pre-processor

68

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Manejo de Ficheros V
Ficheros

Recorrido de directorios
Para manipular directorios se usan las siguientes
funciones:
opendir(): Devuelve un manejador para empezar a

recorrer un directorio
readir(): Se le da el manejador de un directorio y

devuelve el siguiente nombre de fichero en dicho directorio


closedir(): Cierra un directorio abierto

Recorrido de directorios
$d=opendir("datos/");
while($f=readdir($d))
echo "Entrada: $f<BR>\n";
closedir($d);

PHP: PHP Hypertext Pre-processor

69

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Manejo de Ficheros VI
Ficheros

Otras funciones tiles


Existen otra serie de funciones asociadas a ficheros:
file_exists(): Indica si un nombre de fichero que se le

pasa existe
fopen(): Abre un fichero, devolviendo un manejador. El

valor devuelto lo usan otras funciones


fpassthru(): Se le pasa un manejador de fichero y

vuelca su contenido por la salida


is_dir(), is_file(): Consulta si un nombre de fichero

se corresponde con un fichero, propiamente dicho o con un


directorio

PHP: PHP Hypertext Pre-processor

70

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Manejo de Ficheros VII


Ficheros

Otras funciones tiles


$fichero="mis_datos.txt";
if(is_file($fichero))
{
$f=fopen($fichero);
fpassthru($f); // Imprime el fichero
}
else if (is_dir($fichero))
echo "Era un directorio mendrugo";

PHP: PHP Hypertext Pre-processor

71

Introduccin al lenguaje PHP Primeros pasos con PHP Manejo de arrays Programacin avanzada en PHP

Manejo de Ficheros VIII


Ficheros

Ficheros remotos
El nombre de un fichero se puede sustituir por una URL
Hay diferentes protocolos de acceso a ficheros remotos, lo

ms habitual es usar http://


Ficheros remotos
// Redirigimos a una pgina de error
$err_page=fopen("http://www.datsi.fi.upm.es/error.html");
fpassthru($err_page); // Imprime el fichero

PHP: PHP Hypertext Pre-processor

72

También podría gustarte