SlideShare ist ein Scribd-Unternehmen logo
1 von 185
PHP BASICO
Por
Juan Martínez López
JuanMartínez López 2
objetivos
 Conoce la estructura básica de PHP
 Crea aplicaciones simples
 Confecciona formulario y lo lee por código
PHP
 Instala y Configura el servidor apache, Y
PHP
JuanMartínez López 3
CONTENIDO
 CONCEPTO SOBRE
PHP.
 Mi primer programa en
php.
 Instalacion y
configuracion de wamp
 Tag de PHP
 Variables en PHP
JuanMartínez López 4
¿Qué es PHP?
 PHP (acrónimo de "PHP: Hypertext
Preprocessor") es un lenguaje de "código
abierto" interpretado, de alto nivel, incrustado
en páginas HTML y ejecutado en el servidor.
JuanMartínez López 5
EJEMPLO
 <html>
<head>
<title>Prueba </title>
</head>
<body>
<?php
echo “Bienvenido al curso de PHP básico!";
?>
</body>
</html>
JuanMartínez López 6
PODER DE PHP
 Adabas
 DIngresOracle (OCI7 and
OCI8)
 dBase
 InterBase
 Ovrimos
 Empress
 FrontBase
 Postgre
 SQL
 FilePro (read-only)
 Msql
 SolidHyperwave
 Direct MS-SQL
 Sybase
 IBM DB2
 MySQL
 Velocis
 Informix
 ODBC
 Unix dbm
JuanMartínez López 7
Versiones de PHP
 PHP/FI
 PHP/FI 2.0
 PHP 3
 PHP 4
 PHP 5
JuanMartínez López 8
Requerimiento para Instalar
PHP
 Servidor web (apache, IIS, otros)
 Appserver
 Foxserv
 Wamp, map y lamp
 Instalación
 Localhost o 127.0.0.1
JuanMartínez López 9
Variables
 Una variable es un contenedor de
información, en el que podemos meter
números enteros, números decimales,
caracteres
 En PHP todas las variables comienzan con el
símbolo del dólar $
 Ejemplo
 $nombre, $_nombre, $nombre_completo
JuanMartínez López 10
Ejemplo de uso de variable
 <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 1;
$b = 3.34;
$c = "Hola Mundo";
echo $a,"<br>",$b,"<br>",$c;
?>
</body>
</html>
 Usuario gx-240 clave gx-240itladell
 Gx-240 inapdell
JuanMartínez López 11
<?php $var = "Bob";
$Var = "Joe";
echo "$var, $Var"; // Sale "Bob, Joe"
$4site = 'not yet'; // invalida; starts with a
number
$_4site = 'not yet'; // valid; starts with an
underscore
$täyte = 'mansikka'; // valid; 'ä' is ASCII 228
(Extendido) ?>
JuanMartínez López 12
Aritméticos
JuanMartínez López 13
Ejemplo
html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
echo $a + $b,"<br>";
echo $a - $b,"<br>";
echo $a * $b,"<br>";
echo $a / $b,"<br>";
$a++;
echo $a,"<br>";
$b--;
echo $b,"<br>";
?>
</body>
</html>
JuanMartínez López 14
Practica 2
 TOMADO EN CUENTA QUE DOMINA LAS
OPERACIONES ARITMETICA REALIZA EL
SIGUIENTE PROGRAMA.
 CALCULAR TU EDAD EN LOS
SIGUINETES RENGLONES
- POR MES, SEMAMA, DIAS, HORA ,
MINUTOS Y SEGUNDO.
 DEBE GRABAR EL ARCHIVO CON EL
NOMBRE DE calculo.php
JuanMartínez López 15
Comparación
JuanMartínez López 16
Operadores de Asignación
 El operador básico de asignación es "=". A
primera vista, usted podría pensar en él como
"es igual a". No lo haga. Lo que quiere decir en
realidad es que el operando de la izquierda
recibe el valor de la expresión a la derecha (es
decir, "se define a").
 El valor de una expresión de asignación es el
valor que se asigna. Es decir, el valor de "$a =
3" es 3. Esto le permite hacer una que otra cosa
curiosa:
JuanMartínez López 17
Ejemplo de Comparación
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
$c = 3;
echo $a == $b,"<br>";
echo $a != $b,"<br>";
echo $a < $b,"<br>";
echo $a > $b,"<br>";
echo $a >= $c,"<br>";
echo $b <= $c,"<br>";
?>
</body>
</html>
JuanMartínez López 18
Operadores de Control de
Errores
 PHP ofrece soporte para un operador de
control de errores: el signo de arroba (@).
Cuando es colocado al comienzo de una
expresión en PHP, cualquier mensaje de
error que pudiera generarse a causa de esa
expresión será ignorado.
JuanMartínez López 19
ejemplo
 <?php
/* Error intencional de archivo
*/ $mi_archivo = @file ('archivo_que_no_existe')
or die ("La apertura de archivo ha fallado: el error fue
'$php_errormsg'");
// esto funciona con cualquier expresion, no solo con funciones:
$valor = @$cache[$llave]; // no producira una anotacion si el indice
$llave no existe. ?>
JuanMartínez López 20
Lógicos
 Los operadores lógicos son usados para evaluar varias
comparaciones, combinando los posibles valores de
estas
JuanMartínez López 21
Ejemplo
 <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
$c = 3;
echo ($a == $b) && ($c > $b),"<br>";
echo ($a == $b) || ($b == $c),"<br>";
echo !($b <= $c),"<br>";
?>
</body>
</html>
JuanMartínez López 22
Operadores de
Incremento/Decremento
PHP ofrece soporte de operadores de pre- y post-incremento y
decremento, estilo-C.
JuanMartínez López 23
EJEMPLO
JuanMartínez López 24
Condicionales
 Las sentencias condicionales nos permiten
ejecutar o no unas ciertas instrucciones
dependiendo del resultado de evaluar una
condición. Las más frecuentes son la
instrucción if y la instrucción switch.
 Sentencia if ... else
JuanMartínez López 25
sintaxis
 <?php
if (condición)
{
Sentencias a ejecutar cuando la
condición es cierta.
}
else
{
Sentecias a ejecutar cuando la
condición es falsa.
}
?>
JuanMartínez López 26
Ejemplo
 <html>
<head>
<title>Ejemplo de PHP</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>
JuanMartínez López 27
Ejemplo
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
{
echo "Hello!<br />";
echo "Have a nice weekend!";
echo "See you on Monday!";
}
?>
</body>
</html>
JuanMartínez López 28
Operadores de Lógica
JuanMartínez López 29
Practica 3.
Vamos a crear un programa donde podamos
hacer la siguiente condición.
Donde si el valor numérico es mayor de 20 y
menor de 30, imprime un letrero edad de
productividad
Si la edad es mayor de 30 y menor de 50,
imprime un letrero indicando edad rica
Si es mayor de 50 Edad de los contrario no
califica.
JuanMartínez López 30
elseif
 como su nombre sugiere, es una combinación de if
y else. Como else, extiende una sentencia if para
ejecutar una sentencia diferente en caso de que la
expresión if original se evalúa como FALSE. No
obstante, a diferencia de else, ejecutará esa
expresión alternativa solamente si la expresión
condicional elseif se evalúa como TRUE. Por
ejemplo, el siguiente código mostraría a es mayor
que b, a es igual a b o a es menor que b:
JuanMartínez López 31
Ejemplo
 <?php
if ($a > $b) {
echo "a es mayor que b";
}
elseif ($a == $b) {
echo "a es igual que b";
}
else
{
echo "a es mayor que b";
}
?>
JuanMartínez López 32
Ejemplo
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
echo "Have a nice weekend!";
elseif ($d=="Sun")
echo "Have a nice Sunday!";
else echo "Have a nice day!";
?>
</body>
</html>
JuanMartínez López 33
La Sentencia Switch
 podemos ejecutar unas u otras instrucciones
dependiendo del valor de una variable
JuanMartínez López 34
Ejemplo del Swict
<html>
<body>
<?php
switch ($x) {
case 1:
echo "Number 1";
break;
case 2:
echo "Number 2";
break;
case 3:
echo "Number 3";
break;
default:
echo "No number between 1 and 3";
}
?>
</body>
</html>
JuanMartínez López 35
Ejemplo
 <html>
<head>
<title>Ejemplo de PHP</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>
JuanMartínez López 36
Sentencia while
 repetir la ejecución de un conjunto de
instrucciones mientras se cumpla una
condición.
 Mientras la condición sea cierta se reiterará
la ejecución de las instrucciones que están
dentro del while.
 Crea un loop hasta que la condicion se
cumpla.
JuanMartínez López 37
Sintaxis de While
 <?php
while (condición)
{
intrucciones a ejecutar.
}
?>
JuanMartínez López 38
Ejemplo 1 de while
<html>
<body>
<?php
$i=1;
while($i<=5) {
echo "The number is " . $i . "<br />";
$i++;
}
?>
</body>
</html>
JuanMartínez López 39
Ejemplo 1 de while
<html>
<body>
<?php
$i=10;
while($i>=1) {
echo "The number is " . $i . "<br />";
$i=$i - 1
}
?>
</body>
</html>
JuanMartínez López 40
Ejemplo 2 de While
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Inicio<BR>
<?php
$i=0;
while ($i<10)
{
echo "El valor de i es ", $i,"<br>";
$i++;
}
?>
Final<BR>
</body>
</html>
JuanMartínez López 41
Do.. while
 Los bucles do..while son muy similares a los
bucles while, excepto que las condiciones se
comprueban al final de cada iteración en vez
de al principio, es decir, que esta sentencia
primero se ejecuta y luego evalúa.
JuanMartínez López 42
Ejemplo
<?php
$i = 1;
do {
echo $i;
$i++;
} while ($i< 15);
?>
Crea un bucle de los numeros del
1 al 14.
<?php
$i = 0;
do {
print $i;
} while ($i>0);
?>
Este ejemplo
solo se
ejecutara una
sola vez
JuanMartínez López 43
For
 Los bucles for son los bucles más complejos
en PHP. Se comportan como su
contrapartida en C. La sintaxis de un bucle
for es.
 for ($i = 1; $i <= 10; $i++)
Se define condición Incremento
JuanMartínez López 44
Ejemplos
 <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Parte de HTML normal.
<BR>
<?php
echo "Parte de PHP<br>";
for($i=0;$i<10;$i++)
{
echo "Linea ".$i."<br>";
}
?>
</body>
</html>
JuanMartínez López 45
Array
 array -- Crear una matriz
 Devuelve una matriz con los parámetros que
se le pasan. A dichos parámetros se les
puede dar un índice usando el operador =>.
 Descripción
 array array ( mixed ...)
JuanMartínez López 46
Ejemplos
 $frutas = array (
"frutas" => array("a"=>"naranja", "b"=>"plátano", "c"=>"manzana"),
"números" => array(1, 2, 3, 4, 5, 6),
"hoyos" => array("primero", 5 => "segundo", "tercero")
);
JuanMartínez López 47
foreach
 tal como perl y algunos otros lenguajes. Esto
simplemente da un modo fácil de iterar sobre
matrices.
 funciona solamente con matrices y devolverá
un error si se intenta utilizar con otro tipo de
datos ó variables no inicializadas
Nota: foreach no soporta la caracteristica de suprimir
mensajes de error con '@'.
JuanMartínez López 48
La primera forma recorre el array dado por
expresion_array. En cada iteración, el valor
del elemento actual se asigna a $value y el
puntero interno del array se avanza en una
unidad (así en el siguiente paso, se estará
Sintaxis de foreach
 foreach(expresion_array as $value)
sentencia
 foreach(expresion_array as $key => $value)
sentencia
La segunda manera hace lo mismo, salvo
que la clave del elemento actual será
asignada a la variable $key en cada
iteración
JuanMartínez López 49
ejemplo
 <?php
$arr = array("one", "two", "three");
reset ($arr);
while (list(, $valor) = each ($arr)) {
echo "Valor:”, $valor<br>n";
}
foreach ($arr as $valor) {
echo “Valor:”, $valor<br>n";
}
?>
JuanMartínez López 50
DEFINE
 Define una constante con nombre, que es similar a una variable.
 Descripción
int define ( string name, mixed value [, int case_insensitive])
.
EJEMPLO
<?php
define("CONSTANT", "HOLA php.");
echo CONSTANT; // outputs "HOLA PHP.“
?>
JuanMartínez López 51
Constante
 Las constantes no tienen un símbolo dólar '$'
precediéndolas;
 Las constantes son accesibles desde cualquier
lugar sin tener en cuenta las reglas de ámbito de las
variables.
 Las constantes no pueden ser redefinidas o
iniciadas una vez que han sido establecidas, y
 Las constantes sólo pueden evaluar valores
escalares
JuanMartínez López 52
MANEJANDO CADENAS DE
CARCTERES EN PHP
 Dado el uso del lenguaje PHP el tratamiento
de cadenas es muy importante, existen
bastantes funciones para el manejo de
cadenas, a continuación explicaremos las
más usadas.
JuanMartínez López 53
 strlen(cadena). Nos devuelve el número de
carácteres de una cadena.
 split(separador,cadena). Divide una cadena en
varias usando un carácter separador.
 sprintf(cadena de formato, var1, var2...).
Formatea una cadena de texto al igual que printf
pero el resultado es devuelto como una cadena.
 substr(cadena, inicio, longitud). Devuelve una
subcadena de otra, empezando por inicio y de
longitud.
 $email=juan5654@gmail.com
 Split(@,email)
JuanMartínez López 54
 chop(cadena). Elimina los saltos de línea
y los espacios finales de una cadena.
 strpos(cadena1, cadena2). Busca la
cadena2 dentro de cadena1 indicándonos
la posición en la que se encuentra.
 str_replace(cadena1, cadena2, texto).
Reemplaza la cadena1 por la cadena2 en
el texto.
JuanMartínez López 55
EJEMPLO
 <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
echo strlen("12345"),"<br>";
$palabras=split(" ","Esto es una prueba");
for($i=0;$palabras[$i];$i++)
echo $palabras[$i],"<br>";
$resultado=sprintf("8x5 = %d <br>",8*5);
echo $resultado,"<br>";
echo substr("Devuelve una subcadena de otra",9,3),"<br><br>";
if (chop("Cadena nn ") == "Cadena")
echo "Iguales<br><br>";
echo strpos("Busca la palabra dentro de la frase", "palabra"),"<br><br>";
echo str_replace("verde","rojo","Un pez de color verde, como verde es la hierba."),"<br>";
?>
</body>
</html>
JuanMartínez López 56
Ejemplos de matrices
 <?php
$carro [0] = “cepillo”;
$carro [1] = “BMW”;
$carro [2]= “Toyota”;
for ($index = 0; $index <count($carro); $index++) {
Echo $carro[$index],”<br>”;
}
?>
JuanMartínez López 57
 Tabla de contenidos
 array_change_key_case -- Devuelve una matriz con todas las claves de las
cadenas convertidas a mayúsculas o minúsculas
 array_chunk -- Divide una matriz en segmentos
 array_combine -- Crea una nueva matriz, usando una matriz para las claves y
otra para sus valores
 array_count_values -- Cuenta todos los valores de una matriz
 array_diff_assoc -- Comprueba las diferencias entre matrices teniendo en
cuenta los índices
 array_diff_key -- Calcula la diferencia de matrices usando las llaves para la
comparación
 array_diff_uassoc -- Computa la diferencia entre matrices con un chequeo
adicional de índices, el cual es realizado por una llamada de retorno entregada
por el usuario
 array_diff_ukey -- Calcula la diferencia de matrices usando callback function on
the keys for comparison
 array_diff -- Comprueba las diferencias entre matrices
JuanMartínez López 58
 array_map -- Aplica la llamada de retorno especificada a los elementos
de las matrices dadas
 array_merge_recursive -- Une dos o más matrices recursivamente
 array_merge -- Combina dos o más matrices
 array_multisort -- Ordena múltiples matrices, o matrices multi-
dimensionales
 array_pad -- Rellena una matriz con un valor hasta el tamaño
especificado
 array_pop -- Extrae el último elemento de la matriz
 array_product -- Calcula el producto de valores en una matriz
 array_push -- Inserta uno o más elementos al final de la matriz
 array_rand -- Selecciona una o más entradas aleatorias de una matriz
 array_reduce -- Reduce iterativamente una matriz a un solo valor
usando una función llamada de retorno
 array_reverse -- Devuelve una matriz con los elementos en orden
inverso
JuanMartínez López 59
 de retorno
 array_udiff -- Computa la diferencia entre matrices, usando una
llamada de retorno para la comparación de datos
 array_uintersect_assoc -- Calcula la intersección de matrices
con chequeo adicional de ídices, comparando los datos por una
función del usuario
 array_uintersect_uassoc -- Calcula la intersección de matrices
con chequeo adicional de índices, compara los datos y los
índices por una función del usuario
 array_uintersect -- Calcula la interseccón de matrices, compara
los datos con una función del usuario
 array_unique -- Remueve valores duplicados de una matriz
 array_unshift -- Introduce uno o más elementos al principio de la
matriz
 array_values -- Devuelve todos los valores de una matriz
JuanMartínez López 60
 each -- Devuelve el siguiente par clave/valor de una matriz y avanza el
apuntador
 end -- Mueve el puntero interno de una tabla al último elemento
 extract -- Importa variables a la tabla de símbolos desde una matriz
 in_array -- Revisa si un valor existe en una matriz
 key -- Obtiene una clave de una matriz asociativa
 krsort -- Ordena una matriz por clave en orden inverso
 ksort -- Ordena una matriz por clave
 list -- Asigna variables como si fueran una matriz
 natcasesort -- Ordena una matriz usando un algoritmo de "orden
natural" sin distinguir mayúsculas de minúsculas
 natsort -- Ordena una matriz usando un algoritmo de "orden natural"
 next -- Avanza el puntero interno de una matriz
JuanMartínez López 61
 pos -- Alias de current()
 prev -- Rebobina el puntero interno de una matriz
 range -- Crea una matriz que contiene un rango de
elementos
 reset -- Fija el puntero interno de una matriz a su
primer elemento
 rsort -- Ordena una matriz en orden inverso
 shuffle -- Mezcla una matriz
 sizeof -- Alias of count()
JuanMartínez López 62
 array_search -- Busca un valor determinado en una matriz y
devuelve la clave correspondiente en caso de éxito
 array_shift -- Extrae un elemento del comienzo de la matriz
 array_slice -- Extrae una porción de la matriz
 array_splice -- Suprime una porción de la matriz y la sustituye
por otra cosa
 array_sum -- Calcula la suma de los valores en una matriz
 array_udiff_assoc -- Computa la diferencia entre matrices con un
chequeo de índices adicional, comparando los datos con una
llamada de retorno
 array_udiff_uassoc -- Computa la diferencia entre matrices con
un chequeo de índices adicional, comparando los datos y los
índices con una llamada
JuanMartínez López 63
 array_fill -- Llena una matriz con valores
 array_filter -- Filtra elementos de una matriz mediante una función
"callback"
 array_flip -- Intercambia los valores de una matriz con sus índices
 array_intersect_assoc -- Calcula la intersección de matrices verificando
que también coincidan los índices
 array_intersect_key -- Calcula la intersección de matrices usando las
llaves para la comparación
 array_intersect_uassoc -- Calcula la intersección de matrices con
chequeo de índices adicional por una función de usuario
 array_intersect_ukey -- Calcula la intersecció de matrices usando una
función de usuario para la comparación de los índices
 array_intersect -- Calcula la intersección de matrices
 array_key_exists -- Comprueba si el índice o clave dada existe en la
matriz
 array_keys -- Devuelve todas las claves de una matriz
JuanMartínez López 64
 sort -- Ordena una matriz
 uasort -- Ordena una matriz mediante una
función de comparación definida por el
usuario y mantiene la asociación de índices
 uksort -- Ordena una matriz por claves
mediante una función definida por el usuario
 usort -- Ordena una matriz por sus valores
usando una función de comparación definida
por el usuario
JuanMartínez López 65
 array_walk_recursive -- Aplicar una función de usuario
recursivamente a cada miembro de una matriz
 array_walk -- Aplica una función del usuario a cada elemento de
una matriz.
 array -- Crear una matriz
 arsort -- Ordena una matriz en orden inverso y mantiene la
asociación de índices
 asort -- Ordena una matriz y mantiene la asociación de índices
 compact -- Crea una matriz que contiene variables y sus valores
 count -- Cuenta los elementos de una matriz o propiedades de
un objeto
 current -- Devuelve el elemento actual de una matriz
JuanMartínez López 66
Comando para trabajar en
matrices
Unset
 Se usa para eliminar un elemento de la
matriz o la matriz entera
Sintaxis
 Unset($matriz[3]) (este borra el elemento
cuyo indice es igual a 3).
 Unset ($matriz) este opcion elimina la matriz
completa.
JuanMartínez López 67
Otro ejemplo de matrices
 <?php
$carro = array (“Toyota”, “suzuky”,”volvo”);
print_r($carro);
sort($carro);
echo “<hr>”;
print _r($carro);
?>
JuanMartínez López 68
<?php
$fruta[0] = "pina";
$fruta[1] = "manzana";
$fruta[2] = "coco";
$fruta[3] = "mango";
for ($index = 0; $index < count($fruta); $index++) {
echo $fruta[$index], "<br>";
}
echo "<hr>";
print_r($fruta);
echo "<hr>";
// sacando un numero aleatorio de una matriz
$n= array_rand($fruta);
echo $n;
echo "<hr>";
// ordenando una matriz
sort ($fruta);
print_r($fruta);
echo "<hr>";
$carro["nuevo"] = "toyota";
$carro["usado"] = "honda civic";
$carro["chocado"]= "bmw";
$carro["alquilado"]= "murano";
print_r($carro);
$c= array_rand($carro);
echo "<br>";
echo $c;
?>
JuanMartínez López 69
ejercicio
Tener dos matriz una de estudiantes y la otra de
premio.
Se sacara u n estudantes de forma aleatoria y luego
se sacara el premio de forma aleatoria.
Recuerde que la cantidad de estudiantes son
Y la cantidadad de premio sera.
La salida por pantalla sera de la sgts. Forma el
nombre del ganador KKKKK y el premio es
ppppppp
Luego imprimir todos los concursantes en orden
alfabetico y luego
JuanMartínez López 70
Recorriendo una matriz
 La funcion current. Se usa para obtener el
elemento actual de una matriz.
echo “Actual: “, current (variable);
 Funcion next mueve el puntero al proximo
elemento de la matriz
next(variable);
 La funcion prev desplaza el puntero al elemento
anterior de la matriz
prev(variable)
JuanMartínez López 71
 La funcion end lleva el puntero al final de la
matriz
end(variable)
 reset va al inicio de la matriz.
reset(variable)
JuanMartínez López 72
RETROALIMENTACION
 TIENE UNA VARIABLE QUE ALMACENA EL NOMBRE Y UNA CLAVE CON
UN MINIMO DE 6 DIGITO. ADEMAS TIENE OTRA QUE ES CARGO.
 AQUÍ DEBEMOS UTILIZAR LAS OPCIONES CASE Y LA DE IF PARA EL
CASO DE QUE EL CARGO ES IGUAL GERENTE IMPRIME UN LETRERO
CALIFICA , SI EL SUELDO DE ESTE GERENTE ES MAYOR DE 30000
PESOS ENTONCE EL IMPUESTO SOBRE LA RENTA SERA IGUAL A
SUELDO MENOS 30000 POR 4%
 DE LO CONTARARIO NO APLICA DESCUENTO
 SI EL CARGO ES MENSAJERO IMPRIME LETRERO EMPLEADO DE BAJO
NIVEL ADEMAS SI EL SUELDO ES MENOR DE 10000 TENDRA UN
AUMENTO DE 2000 PESOS
DE LO CONTRARIO UN AUMENTO DE 500 PESOS.
 SI LA CLAVE ES MENOR DE 6 CARACTERES ENTONCE A LA CLAVE SE
CAMBIARA POR ¨PHPBASICO¨ DE LO CONTRARIO IMPRIME EL LETRO
QUE DIGA CLAVE ACEPTADA
 LA IMPRESION DE ESTA PARTE SERA LA SIGUIENTE. NOMBRE DEL
EMPLEADO, LA CLAVE DE ESTE Y EL SUELNO NETO .
JuanMartínez López 73
2DA FASES
 HACER UN BUCLE QUE LE IMPRIME EL
LETRO SOY UN WEB MASTER. 5 VECES
SI EL LETRERO TIENE UNA LONGITUD
DE MAYOR O IGUAL 10, SI ES MENOR
QUE SE IMPRIMA DOS VECES.
JuanMartínez López 74
FASE 3
 HACER UNA matriz QUE ALMACENES EL
LA VARIABLE EMPLEADO CON EL
NOMBRE CODIGO COMO INDEX Y
SERSA IGUAL AL SUELDO.
LUEGO SELECCIONAR UN EMPLEADO DE
FORMA ALEATORIO
IMPRIMIR DE FORMA ORDENADA LA matriz
Y LUEGO IMPRIMIR EL VALOR
SELECCIONADO DE FORMA ALEATORIA.
JuanMartínez López 75
SINTAXIS
<?php
function Hiperlink () {
// Entre parentesis () podemos incluir valores que
// deba usar nuestra función. El uso de ()
// es siempre necesario.
// El código de la función entre llaves {}
}
Hiperlink(); // esta linea llama la función
?>
JuanMartínez López 76
LA FUNCION
 Una función de usuario en PHP no es mas
que una porción de código que podemos
llamar en cualquier momento
 Para definir una función debemos usar la
palabra reservada function. Para llamar la
función basta con invocar su nombre
JuanMartínez López 77
OBSERVACIONES DE LA
FUNCION
 PHP no distingue entre mayusculas y minusculas al
nombrar las funciones, asi que HiperLink sería lo
mismo que Hiperlink, aunque es buena práctica ser
consistente en la forma de escribir los nombres.
Como curiosidad, podrás observar que en los
mensajes de error, PHP siempre designa tus
funciones en minuscula.
Los parentesis permiten pasar valores a las
funciones (como veremos despues) y son siempre
necesarios, aunque no vayas a pasar valor alguno
JuanMartínez López 78
EJEMPLO
 <?php
function TradicionalHolaMundo (){
echo "hola mundo";
}
TradicionalHolaMundo(); // que sorpresa ! im
prime "hola mundo"
?>
El código que puedes incluir
en una función es cualquier
código php válido
JuanMartínez López 79
funciones y parámetros
 Podemos pasar a nuestras funciones valores para
que operen sobre ellos. PHP permite pasar a las
funciones variables, cadenas de texto, números o
arrays
Los datos pasados a la función pueden ser por valor
o por referencia. En el primer caso solo pasamos el
valor del dato, no su contenedor, de forma que
dicho dato (por ejemplo almacenado en una
variable) conserva su valor original fuera de la
función, sin verse afectado por los cambios que la
función pueda ejecutar. En cambio si pasamos el
valor por referencia, el dato original quedará
afectado por el resultado de la función:
JuanMartínez López 80
 <?php
$msg = "Como estás ?";
function TradicionalHolaMundo ($msg)
{
$msg= "Hola Mundo !!".$msg;
echo $msg;
}
TradicionalHolaMundo ($msg); // vuelca "Hola Mundo !! Como estas ?
echo $msg; // vuelca "Como estás ?"
$msg = "Como estás ?";
function TradicionalHolaMundo (&$msg) //advierte que usamos &$
{
$msg= "Hola Mundo !!".$msg;
echo $msg;
}
TradicionalHolaMundo ($msg); // $msg -> Hola Mundo !! Como estas ?
echo $msg; // vuelca "Hola Mundo !! Como estás ?"
?>
JuanMartínez López 81
Puedes tambien prever un valor por defecto para la función,
que se aplicará salvo que especifiques otro al llamarla:
<?php
function TradicionalHolaMundo ($msg = "Hola como
estás") { ...}
TradicionalHolaMundo(); // Hola Mundo !! H
ola como estás ?
TradicionalHolaMundo("hasta luego");// Hola Mund
o !! hasta luego
TradicionalHolaMundo(""); // Hola Mundo !!
?>
JuanMartínez López 82
 <?php
function TradicionalHolaMundo ($msg) {
return "Hola Mundo !!".$msg;
}
$blah = TradicionalHolaMundo ($msg);
?>
JuanMartínez López 83
Return
 Si la función debe retornar algun valor al script,
debes indicarlo por medio de la expresión return. El
código existente en la función despues de return no
será ejecutado.
 En los sencillos ejemplos que hemos usado no
empleamos return ya que la unica instrucción de la
función es precisamente una orden echo. Pero
podría suceder que la función no tuviera por
finalidad volcar nada a pantalla, sino manipular un
valor para, por ejemplo, pasarselo a otrá función. En
tal caso usamos return.
JuanMartínez López 84
ejemplo
<?php
$blah = "http://www.ignside.net";
function hiperlink($CadenaTexto) {
$CadenaTexto = preg_replace("/(http://[0-9a-zA-Z-._/]+)/",
"<a href="1">1</a>", $CadenaTexto);
print $CadenaTexto;
}
hiperlink($blah); // devuelve la url como un enlace clickable
// <A href="http://www.ignside.net">http://www.ignsid
e.net</A>
?>
Como ya está bien de
TradicionalHolaMundo() vamos a ver una
función sencilla pero algo mas útil: la
función hiperlink() que buscará urls dentro
de una cadena de texto, convirtiendolas en
enlaces
JuanMartínez López 85
opciones
 La anterior función toma un parámetro y
busca en él, con preg_replace, la existencia
de una url correctamente escrita (http://....) y
si la encuentra construye un link que apunta
a esa direccion, usando la misma como texto
visible del enlace.
JuanMartínez López 86
Manipulando con 2 parametros
 Podemos perfeccionarla un poco con dos parámetros:

<?php
$blah = "http://www.ignside.net";
function hiperlink($CadenaTexto, $textovisible) {
$CadenaTexto = preg_replace("/(http://[0-9a-zA-Z-._/]
+)/",
"<a href="1">$textovisible</a>", $CadenaTexto);
print $CadenaTexto;
}
hiperlink($blah, "pulsa aqui"); // devuelve
//<A href="http://www.ignside.net">pulsa aqu
i</A>
?>
JuanMartínez López 87
¿ Desventajas ?
 PHP consume mas recursos (y por tanto es
ligeramente mas lento) llamando y
ejecutando una función que ejecutando
código que encuentra en linea, embebido en
el script. Por eso no tiene sentido usar
funciones salvo que efectivamente vayas a
utilizar esa porción de código varias veces.
JuanMartínez López 88
Los Formularios
 Es el mecanismos por el cual podemos manipular
datos de forma ordenada dentro de una aplicación
web.
 El lenguaje de PHP proporciona una manera muy
sencillas para manejar los formularios.
 Los Formularios no forman parte de PHP, sino del
lenguaje estándar de Internet, HTML, pero como
éstos van a aparecer muchas veces durante el
curso, vamos a dedicar esta líneas . Lo que viene a
continuación es HTML y no PHP.
JuanMartínez López 89
 Todo formulario comienza con la etiqueta
<FORM ACTION="lo_que_sea.php"
METHOD="post/get"> .
 Con ACTION indicamos el script que va
procesar la información que recogemos en el
formulario, mientras que METHOD nos indica
si el usuario del formulario va ha enviar
datos (post) o recogerlos (get). La etiqueta
</FORM> indica el final del formulario.
JuanMartínez López 90
Elementos de un formularios
 Cuadro de texto:
<input type="text" name="nombre" size="20" value="jose">
 Cuadro de texto con barras de desplazamiento:
<textarea rows="5" name="descripcion" cols="20">Es de color
rojo</textarea>
 Casilla de verificación:
<input type="checkbox" name="cambiar" value="ON">
 Botón de opción:
<input type="radio" value="azul" checked name="color">
 Menú desplegable:
<select size=“1” class="codigo"><select size="1" name="dia">
<option selected value="lunes">lunes</option>
<option>martes</option>
<option value="miercoles">miercoles</option>
</select>
JuanMartínez López 91
 Boton de comando:
 <input type="submit" value="enviar"
name="enviar">
 Campo oculto:
 <input type="hidden" name="edad"
value="55">
Este último tipo de campo resulta
especialmente útil cuando que remos pasar
datos ocultos en un formulario.
Elementos de un formularios
JuanMartínez López 92
El method GET y el POST
 GET Muestra las informaciones que estan
siendo enviada por un formulario en la barra
de direccion.
 Post. No muestra las informaciones que esta
siendo enviada en la barra de direccion.
JuanMartínez López 93
Ejemplo de un formulario
<form action=“amigo.php” METHOD= “GET”>
Su nombre:<input type=“text”
name=“nombre”<br>
Su apellido:<input type=“text”
name=“apellidos”<br>
<input type= submit value=“Enviar”>
</form>
JuanMartínez López 94
Ejemplo 2
<HTML>
<BODY>
<FORM METHOD="post" ACTION="lee.php">
<input type="hidden" name="edad" value="35">
<p>Tu nombre <input type="text" name="nombre" size="30"></p>
<p>Tu sistema favorito
<select size="1" name="sistema">
<option selected value="Linux">Linux</option>
<option value="Unix">Unix</option>
<option value="Macintosh">Macintosh</option>
<option value=&qmargin-left: 75"><option
value="Windows">Windows</option>
</select></p>
<p>¿Te gusta PHP ? <input type="checkbox" name=“programa"
value="ON"></p>
<p>¿Cual es tu sexo?</p>
<blockquote>
<p>Hombre<input type="radio" value="hombre" checked
name="sexo"></p>
<p>Mujer <input type="radio" name="sexo" value="mujer"></p>
JuanMartínez López 95
Recibir datos de matrices
personalizadas
 PHP permite organizar los datos que
obtenemos de un formulario ens propias
matrices personalizada
JuanMartínez López 96
EJEMPLO
<html>
<body>
<FORM METHOD="POST" ACTION="phpprueba.php">
Cual es tu nombre?
<INPUT NAME="texto[nombre]" Type="Text">
<br>
<br>
CUAL ES TU COLOR FAVORITO?
<INPUT NAME="texto[color]" Type="text">
<br>
<br>
<input type=submit Value=Enviar>
</form>
</body>
</html>
JuanMartínez López 97
EJEMPLO 2
<?php
echo "su nombre es...";
$text = $_POST['texto'];
echo $text['nombre'], "<br>";
?>
Su color Favorito es
<?php
$text = $_POST['texto'];
echo $text['color']. "<br>";
?>
JuanMartínez López 98
Aplicaciones Web en una sola
Pagina
 La mayoria de las aplicaciones de
formularios cuenta con dos pagina una que
recibe y la otra que envia. Es decir las
paginas de html que recopilaban los datos y
las de php que los recibian
 Pero si usamos los mismo script en la misma
pagina podemos ejecutar ambas opciones en
la misma pagina. Veamos
JuanMartínez López 99
ejemplo
<?PHP
if(isset($_POST["nombre"])){
?>
<h1>Uso de Cuadro de texto</h1>
<?php
echo $_POST["nombre"];
$clave = $_REQUEST[‘clave’];
print ($clave);
}
else {
?>
<FORM METHOD="POST">
Cual es tu Nombre?
<INPUT NAME="nombre" TYPE="TEXT">
Contraseña:
<INPUT TYPE="password" NAME="clave">
<BR><BR>
<INPUT TYPE=SUBMIT VALUE=Enviar>
</form>
<?php
}
?>
JuanMartínez López 100
Funciones
Empecemos con el ejemplo más difícil y el causante de que tuviera que
programar
estas funciones.
<SELECT>
Crear elementos de selección <select></select>
Con php es muy habitual trabajar con arrays, ya sea con datos que nos
proporcione una
consulta SQL o simples valores.
Veamos un ejemplo en el que queremos mostrar un <select> para que el
usuario
seleccione su rango de edad:
<select name=’edad’>
<option value=0>Seleccione</option>
<option value=1>Entre 0-18</option>
<option value=2>Entre 19-30</option>
<option value=3>Entre 31-50</option>
<option value=4>Más de 50</option>
<select/>
JuanMartínez López 101
La función que nos salvará la vida
es:
frm_select($name, $arr_txt, $arr_vals, $default='', $extra_tag='')
$name = Nombre del elemento del formulario
$arr_txt = Array con los textos a mostrar
http://www.distintiva.com/jose/_perf_form jose [arroba] distintiva
[dot] com
$arr_vals = Array con los valores asociados a cada texto
$default= [opcional] si se indica el valor aparecerá preseleccionado
dicha opción
$extra_tag= [opcional] por si necesitamos incluir información
adicional al select, como
por ejemplo $extra_tag=” class=cssazul ” o $extra_tag=”
onChange=alert()”
JuanMartínez López 102
Ejemplo:
$arr_txt=array(‘españa’, ‘portugal’, ‘francia’);
$arr_vals=array(‘ES’, ‘PT’, FR’);
<?=frm_select (‘paises’, $arr_txt, $arr_vals) ?>
De esta forma cualquier modificación sólo hay que hacerla en los
arrays sin alterar la
parte visual.
A veces es conveniente conservar el valor de un campo del
formulario entre llamadas o
posts del mismo por ejemplo cuando estamos validando entradas y
hay que volver al
formulario para que rellene algún campo requerido
JuanMartínez López 103
Para hacer esto de forma sencilla
tan solo tenemos que usar el parámetro $default de la siguiente
forma.:
<?=frm_select (‘paises’, $arr_txt, $arr_vals, $_POST[‘paises’]) ?
>
(o $_GET dependiendo el método que usemos en nuestro
formulario)
<SELECT> (tipo lista con varios elementos visibles)
Funciona exactamente igual que el anterior pero en este caso
tenemos la típica lista de
selección con scroll mostrando X elementos.
La función es:
frm_list($name,$size, $arr_txt, $arr_vals, $default='',
$extra_tag='')
En este caso el nuevo parámetro es $size que indica cuántos
elementos serán
mostrados visiblemente en la lista. 829 317-0468 97-7559
JuanMartínez López 104
Otras funciones
<SELECT> (tipo lista con varios elementos visibles y con
multiselección)
Igual que el ejemplo anterior pero permitimos que el usuario
seleccione uno o varios
elementos de la lista con el CTRL+Click o SHIFT+Click
La función es:
frm_list_multi($name, $size, $arr_txt, $arr_vals, $default='',
$extra_tag='')
... Y también tenemos funciones correspondientes para los demás
elementos de
formulario aprovechando la capacidad de mantener el valor entre
posts.
JuanMartínez López 105
<Checkboxes>
La función es:
frm_check($name, $ck_val, $var_in='', $extra_tag='')
$name= Nombre del campo
$ck_val= Valor que se enviará cuando esté seleccionado
$var_in=[opcional] Funciona como el $default y permitirá que se
muestre checkeado
Ejemplo:
Se muestra un checkbox que se mantiene seleccionado entre posts
del formulario
<?= frm_check(‘fumador’, ‘SI’, $_POST[‘fumador’])?>
JuanMartínez López 106
<Radio>
 En este caso para mostrar radiobuttons se
hace exactamente como el caso anterior
 pero con la siguiente función:
 frm_radio($name, $val, $var_in='',
$extra_tag=''
JuanMartínez López 107
<INPUT>
Permite mostrar cuadros de texto con las
ventajas que voy ofreciendo en todas las
funciones y para ello hay que usar:
frm_text($name, $val, $size, $max_length,
$extra_tag='')
$name = Nombre del campo
$val = Valor o texto que se mostrará (funciona
como el $default de las otras funciones)
$size = Tamaño del campo de texto
$max_length = Longitud máxima permitida
JuanMartínez López 108
 PASSWORD
Contraseña: <INPUT TYPE="password" NAME="clave">
<?PHP
$clave = $_REQUEST[‘clave’];
print ($clave);
?>
JuanMartínez López 109
<PASSWORD>
 El caso es exactamente como el anterior
pero esta vez oculta el texto con asteriscos
 frm_password($name, $val, $size,
$max_length, $extra_tag='')
JuanMartínez López 110
Ejercicios1 de formularios
 Hacer un formulario que contenga todos los controles y incluyendo
un control oculto que sea igual al nombre de programador.
JuanMartínez López 111
Enviar un Archivo a través de
un formularios.
 HTML NOS PERMITEN CARGAR archivoS
EN EL SERVIDOR, Y PHP NOS AYUDARA
EN ESTA TAREA.
 PARA ENVIAR UN ARCHIVO AL
SERVIDOR, TENDREMOS QUE UTILIZAR
UN FORMULARIOS MULTIPLE
JuanMartínez López 112
PASO PARA CREAR UN
FORMULARIO MULTIPLE
 EL ATRIBUTO ENCTYPE DEL ELEMENTO HTML
<form>:
 Sintaxis
<form
ENCTYPE=“multipart/form-data”
ACTION=“nombre.php” method=“POST”>
Enviar este archivo: <INPUT NAME=“archivo”
TYPE=“file”>
</form> Note que estamos llamando al control “archivo”
Sera el nombre por el cual accederemos al
aechivos que se envie.
JuanMartínez López 113
La matriz $_FILES
 Esta es una matriz super global, eso quierre
decir que puede ser usada en cualquier
parte del codigo..
 Cuando usamos controles de archivos nos
necesitamos las matrizes $_POST, $_GET Y
$_REQUEST
JuanMartínez López 114
EJEMPLO
<FORM ENCTYPE="multipart/form-data"
ACTION=“archivo2.php" METHOD="post">
<INPUT type="hidden" name="MAX_FILE_SIZE"
value="100000">
<p><b>Archivo a descargar<b><br>
<INPUT type="file" name="archivo" size="35"></p>
<p><INPUT type="submit" name="enviar"
value="Aceptar"></p>
</FORM>
JuanMartínez López 115
Subida de archivos al servidor
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use
; system default if not specified).
;upload_tmp_dir =
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
php.ini
formulario
<INPUT TYPE=”HIDDEN” NAME=”MAX_FILE_SIZE” VALUE='102400'>
<INPUT TYPE=”FILE” NAME="archivo">
JuanMartínez López 116
Subida de archivos al servidor
<INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="102400">
<INPUT TYPE="FILE" SIZE="44" NAME="imagen">
 La variable $_FILES contiene toda la información del archivo
subido:
$_FILES['imagen']['name']
Nombre original del archivo en la máquina cliente
$_FILES['imagen']['type']
Tipo mime del archivo. Por ejemplo, "image/gif"
$_FILES['imagen']['size']
Tamaño en bytes del archivo subido
$_FILES['imagen']['tmp_name']
Nombre del archivo temporal en el que se almacena
el archivo subido en el servidor
$_FILES['imagen’]['error']
Código de error asociado al archivo subido
JuanMartínez López 117
Funciones de acceso a
archivos
 En esta lección sólo vamos a las funciones
básicas, abrir (fopen), cerrar (fclose), leer
(fgets) y escribir (fputs). Estas cuatro nos
solventaran la mayoria de problemas (fputs).
Estas cuatro nos solventaran la mayoria de
problemas que nos surgan con respecto al
acceso a archivos.
JuanMartínez López 118
fopen (archivo, modo)
 Con esta función abrimos un archivo, bien
sea local o una dirección de internet (http:// o
ftp://).
 La función fopen nos devuelve un valor
numérico (indicador de archivo) de tipo
integer que nos ser virará para hacer
referencia al archivo abierto.
JuanMartínez López 119
Con fopen podemos abrir un
archivo de los siguientes modos
 r solo lectura
 r+ lectura y escritura
 w solo escritura. Sino existe el archivo lo crea, si
ya existe lo re-escribe
 w+ lectura y escritura. Sino existe el archivo lo
crea, si ya existe le re-escribe
 a solo lectura. Sino existe el archivo lo crea, si ya
existe empieza a escribir al final del archivo.
 a+ lectura y escritura. Sino existe el archivo lo crea,
si ya existe empieza a escribir al final del archivo.
JuanMartínez López 120
Ejemplo de fopen()
<?PHP
if ( ! fopen("http://www.ciberaula.com/", "r")) {
echo "El archivo no se puede abrirn";
exit;
}
?>
Abriendo un archivo
con el protocolo
hhtp.
Los modos r, r+ , w , w+ colocan el puntero de lectura/escritura a
principio del archivo, los modos a , a+ lo colocan al final.
JuanMartínez López 121
fgets (indicador_archivo, longitud)
 La función fgets nos devuelve una cadena con la longitud
especifica del archivo al que apunta el indicador de archivo.
<?PHP
$archivo = fopen("dlass="codigo">$archivo = fopen("data.txt" , "r");
if ($archivo) {
while (!feof($archivo)) {
$linea = fgets($archivo, 255);
echo $linea;
}
}
fclose ($archivo)
?>
La función feof devuelve TRUE si
puntero de lectura/escritura se
encuetra al final del archivo, y
FALSE en caso contrario.
JuanMartínez López 122
fputs (indicador_archivo, cadena)
 La función fputs escribe una cadena en el archivo indicado.
Para escribir en una archivo este debe haber sido previamente
abierto. La función fputs devuelve TRUE si se ha escrito con
éxito, en caso contrario devuelve FALSE.
<?PHP
$archivo = fopen("data.txt" , "w");
if ($archivo) {
fputs ($archivo, "Hola Mundo");
}
fclose ($archivo);
?>
JuanMartínez López 123
file_exists (archivo)
 Esta función devuelve TRUE si el archivo
especificado existe, y FALSE en caso contrario.
<?PHP
if (file_exists("data.txt")) {
echo "El archivo existe";
} else {
echo "El archivo NO existe";
}
?>
JuanMartínez López 124
copy (origen, destino)
 La función copy : copia un archivo de un lugar
(origen) a otro (destino), devuelve TRUE si la copia
a tenido éxito y FALSE en caso contrario.
<?PHP
if (copy("data.txt", "/tmp/data.txt")) {
echo "El archivo ha sido copiado con éxito";
} else {
echo "El archivo NO se copio" style="margin-left:
50">echo "El archivo NO se ha podido copiar";
}
?>
JuanMartínez López 125
Validación de datos que se
envían en los formularios.
 Programa ejemplo
JuanMartínez López 126
TRABAJANDO CON CLASE Y
OBJETOS
 LA POO se diseño para proyectos de
programacion grandes. Sin embargo si va a
seguir usando aplicaciones grandes en php es
aconsejable que domine la tecnica de OOP.
JuanMartínez López 127
Que son los objetos
 Es donde se agrupa un conjunto de
funciones también los datos que estas
funciones necesitaría
 Aglutinar las funciones y los datos nos
permitirá seccionar mucho mas los scripts.
Por ejemplo, un objeto podría controlar lo
que se muestra por pantalla, otra validar los
datos, otro se encargaría de la gestión de la
base de datos.
JuanMartínez López 128
Creando una clase
 Es un conjunto de variables y funciones en
termino de la POO, tambien propiedades y
metodos.
 Una clase es un tipo y generamos objetos de
ese tipo y lo almacenamos en variables de
PHP
 Sintaxis class estudiante{.......}
JuanMartínez López 129
ejemplo
class carro
{
var $name;
Function set_name($text)
{
$this->name = $text;
}
Function get_name()
{
return $this->name;
}
}
$honda = new carro;
$honda->set_name(“accord”);
Echo “el modelo de su nuevo carro es”,$honda->get_name(), “.”;
?>
Creamos la clases
llamada carro
Funciones dentro de
una clase son los
métodos
Name es la variable interna
llamada en POO propiedad
New crea objeto de esta clase
Ejemplo
JuanMartínez López 130
La sentencia var
 Esta sentencia se usa para de clarar las
variables interna de una clase.
 Sintaxis
Class socio
{
var $nombre;
}
Nota para acceder a esta propieda
simplemente como nombre:
Esto ayudara a su proceso interno.
JuanMartínez López 131
Ejemplo
<?php
class my_class
{
var $value;
}
$a = new my_class;
$a->my_value = 5;
$b = $a;
$b->my_value = 10;
echo $a->my_value;
?>
JuanMartínez López 132
Ejemplo de clase
class conectar{
var $cn;
var $res;
var $status;
function conectar(){
mysql_connect ("localhost","root","");
mysql_select_db ("carrito");
$this->status=true;
}
function Ejecutar_sql($sql){
if($this->status){
$this->res = mysql_query ($sql) or die ("SQL incorrecto : $sql");
return true;
}else{
return false;
}
}
}
?>
Aquí vemos como
podemos utilizar una
clases para
conectarnos a ua
base de datos y
realizar una consulta
JuanMartínez López 133
Los metodos set_name y
get_name
 El metodo set_name:
se usa para especificar el nombre del objeto.
Tomando en cuenta el ejemplo de la diapositiva 127.
. Function set_name($text)
para acceder al nombre paso a set_name en la propiedad name,
usaremos una variable especial $this que apunta a la clase
actual, para eso usaremos operador flecha para`que haga
referencia a los datos de la propiedad.
$this->name =$text;
.
JuanMartínez López 134
Como se crean los objetos
dentro de una clase.
 La sentencia new se usa cuando se quiere
crear un objeto de una clase.
 Sintaxis
$civic= new carro;
$civic->set_name(“sedan”);
Con el operador -> podremos acceder tanto a los metodos de un objetos
como a su propiedad.
JuanMartínez López 135
Los metodos de acceso
 Se usa para especificar especificar los valores de la
propiedad , ya que podremos restringir el tipo de
datos almacenaremos en la propiedad.
 Ejemplo
Function set_name($text)
{
If (strlen($text) <= 50){
$this->name =$text;
}
}
JuanMartínez López 136
Ejercicios
 Haga una clase llamada celular donde se
creara un nuevo objeto de esta clase llamdo
motorola y su modelo sera V3.
 La salida de este escript sera la siguiente.
su celular es motorola y es el modelo V3
JuanMartínez López 137
Restringir acceso a la
propiedades y metodos
 PHP posee una serie de modificadores de
acceso.
-public accesible para todos
-private accesible de la misma clase
- Public accesible de la misma clase y de la
clase derivadas de esas clase.
Nota.
Por defecto todos los metodos y propiedades se declaran como publicas lo
que implica que no tendremos restrinciones a la hora de acceder a ellos.
JuanMartínez López 138
Ejemplo
<?php
class computadora
{
private $name;
fuction set_name($text)
($this->name = $text;}
fuction get_name()
{ return $this->name;}
}
$dell = new computadora;
$dell ->set name(“Inspiron”);
Echo “ el nombre de su nueva computadora del es”, $dell->name”
?>
Cuando quiera acceder a esta
propiedad como $dell->name
recibira un mensaje de error
JuanMartínez López 139
Inicializa los objetos
constructores
 En php un objeto constructor es un metodo
especial declarado con la sintanxis
 nombre__construct (son dos guiones bajo
seguido por la palabra reservada construct
 cuando creamos este objeto especial
debemos de crear una sintaxis especial para
pasarle informacion al constructor.
JuanMartínez López 140
ejemplo
<?php
Class animal
{ var $name;
function __construct($text){
$this ->name =$text;
}
Function set_name($text)
}
Function get_name()
{
return $this->name;
}
}
$lion = new animal(“leo”);
Echo “El nuevo nombre de su leon es “, $lion->get_name();
?>
JuanMartínez López 141
ejemplo2
<?php
class base_class
{
var $var1;
function base_class ($value)
{
$this->var1 = $value;
}
function calc_pow ($exp)
{
return pow ($this->var1, $exp);
}
}
class new_class extends base_class
{
var $var2;
function new_class ($value)
{
$this->var2 = $value;
$this->var1 = $value * 10;
}
}
$obj = new new_class (10);
echo $obj->calc_pow (4);
?>
JuanMartínez López 142
Basar una clase en otra
(Herencia)
 La Herencia es el metodo que nos permite
escribir todos metodos de una clase
existente a una clase nueva.
 Al usar usar la herencias,propiedades de la
clase base tambien perteneceran al conjunto
de metodos y clases derivadas de ella
 Luego podremos personalizar las clases
derivadas agregando los metodos y
propiedades especifico para esa clase
JuanMartínez López 143
Planteamiento
 Tenemos una clase llamada Vehiculo que
tiene implementado todo tipo de metodo para
cualquier tipo de tarea relacionada como:
color, arrancar, acelerar, girar y parar. Ahora
queremos crear otras class que sean tipos
de vehiculos: jeepeta, guagua, motores y
otros.mas
JuanMartínez López 144
ejemplo
<?php
class $vehiculo
{
var $carro;
Function set_name($text){
$this->carro=$text;
}
Function get_name(){
Return $this->carro;
}
}
class honda extends vehiculo {
var $carro;
Fuction alquilado() {
echo “! “, $this->carro, “ esta alquilado <br>”;
}
}
Echo “Su nuevo carro honda...<br>”;
$civic = new honda;
$civic->set_name(“Civic 2003”);
$civic->alquilado ();
?>
Esta cláusula se utiliza para derivar una
clase desde otra.
Indicamos la clase va heredar,
indicando de que clase va heredaremos
JuanMartínez López 145
Sobrecargar metodos
 Esto ocurre si queremos derivar una clase
nueva desde una clase base y necesitamos
usar un metodo en la nueva clase con el
mismo nombre que uno de los metodos de la
clase base.
 Porque el metodo de la clase base, y los
objeto de la nueva clase utilizaran el nuevo
metodo en lugar del precedente de la clase
base.
JuanMartínez López 146
Ejemplo
<?php
class animal
{
var $nombre;
function set_name($text)
{
$this->nombre =$text;
}
function get_name()
{
return $this->nombre;
}
}
class Leon extends animal
{
var $name;
function rugir()
{
echo "! ",$this->name, "esta rugiendo <br>";
}
function set_name($text)
{
$this->name = strtoupper($text);
}
}
echo " Creando su nuevo felino...<br>";
$leon = new leon;
$leon->set_name ("kiko ");
$leon->rugir();
?>
JuanMartínez López 147
Ejercicio
Que imprime este script
<?php
class a
{
var $c=5;
function a ($pass)
{
$this->c = $pass;
}
function print_data()
{
echo $this->$c;
}
}
$a = new a(10);
$a->print_data();
?>
JuanMartínez López 148
Que imprime este programa
<?php
error_reporting(E_ALL);
class a
{
var $c;
function a()
{
$this->c = 10;
}
}
class b extends a
{
function print_a()
{
echo $this->c;
}
}
$b = new b;
$b->print_a();
?>
JuanMartínez López 149
Ejercicio
 Cree una clase llamada computadora esta
tendra una variable llamada labtop
 A la clase computadora le sacara una clases
llamada estatu
 En la clase statu tendra una variable llamda
labtop y una funcion llamada estatu donde tu
imprime que la labtop esta reparada.
 Imprime el letrero “su computadora labtop
dell inspiron esta reparada.
JuanMartínez López 150
Las Cookies
 Las Cookies son un mecanismo que sirve
para almacenar datos en el navegador del
usuario remoto, para así poder identificar al
usuario cuando vuelva
 Se pueden poner cookies usando la función
setcookies().
 Las Cookies son parte de la cabecera HTTP,
por tanto la función setcookie() debe ser
llamada antes de que se produzca cualquier
salida al navegador
JuanMartínez López 151
sintaxis
 setcookie(nombre,valor,expiracion,ruta,dominio,segura)
Ejemplo
<setcookie(“message”, “sin problema.”);
?>
<html>
<head><title> genera una cookie</title>
<body>
<h1>generar una cookie </h1>
se ha generado una cooke! Mire en
<A HREF=“cook.php”>cook.php</a> ahora
</center>
</body>
</html>
JuanMartínez López 152
Parametro de una cookie
 Nombre el nombre de una cookie
 Valor – valor de la cookie. Este valor se
almacenara en el ordenador de cliente. (no
es prudente almacenar informacion
importante.
 Expiracion- el tiempo en que expirara una
cookie.(el tiempo se expresa en segundo)
 Ruta – la ruta en el servidor donde estara
disponible la cookie
JuanMartínez López 153
 Dominio- el dominio para el que la cookie es
valida.
 Segura – indica que la cookie se trasmitira a
traves de una conexion segura HTTPS.
Cuando tiene el valor 1, la cookie solo se
enviara en que caso de que exista una
conexion de esa caracteristicas. El valor por
defecto es cero.(0).
JuanMartínez López 154
Leer una Cookies
 Despue de general una cookies podemos
acceder a ella en un momento posterior
acudiendo a la matriz $_COOKIES
 SINTAXIS
$_COOKIE [“message”].
JuanMartínez López 155
ejemplo
La cookie dice:
<?php
if (isset($_COOKIE[“message”])){
echo $_COOKIE[“message”];
}
?>
JuanMartínez López 156
Los nombres de las cookie
 Tambien se pueden declarar como nombre
de matrices y estaran disponible como
matrices en nuestro scripts de php.
 Por ejemplo.
setcookie(“cookie[uno]”, “Sin”);
setcookie(“cookie[dos]”, “Problemas”);
setcookie(“cookie[tres]”, “hoy.”);
JuanMartínez López 157
Continuacion
 Ahora que se genero esta cookies, las
leeremos la proximas vez que el navegador
nos envien los datos de esta forma:
If (isset($_COOKIE[“cookie”]))
{
Foreach($_COOKIE[“cookie”] as value) {
echo “$value <br>”;
}
}
JuanMartínez López 158
Periodo de expiracion de las
cookie
 Este parametro es usado para determinar
que tiempo existira una cookie en el
ordenador de un usuario.
 La hora almacenada en este parametro esta
en formato de UNIX en segundo.
Ejemplo
<?php
setcookie(“micookie”, $value, time()+3600);
?>
JuanMartínez López 159
Ejemplo
 <?php
setcookie(“message”, “no tendra problema en 10 dias.”, time()
+60*60*24*10);
?>
<html>
<head><title>configura una cookie</title></head>
<body>
<h1>una cookie</h1>
! La cookie expirara en 10 dias, miren
<A HREF=“cook.php”>cook.php</a>
Ahora
</body>
</html>
JuanMartínez López 160
Eliminar una cookie
 Para eliminar una cookie solo basta con
establecer su valor a “ ” y llamar a setcookie
con los mismos parametros que genero
dicha cookies.
 Sintaxis
<?php
setcookie (“message”, “ “);
?>
Es recomendado asegurarnos de
que la fecha de expiracion se ha cumplido
JuanMartínez López 161
Ejemplo
 <?php
setcookie(“message”,” “,time() – 3600);
?>
<html>
<head><title>eliminar cookie</title></head>
<body>
<center>
<h1>eliminar una cookie</h1>
la cookie se ha eliminado. Mire en
<a href=“cook.php”>cook.php</a>
</center>
</body>
</html>
Cuando Carguemos la
pagina de nuevo, el script
cook.php ya no sera capaz
de encontrar la cookie
JuanMartínez López 162
Trabajando con sesiones
 Las sesiones se diseñaron para almacenar
datos en el servidor. Cada usuario recibe una
cookie con su identificador de sesion, lo que
siginifica que PHP sera capaz de reenviar
todos los datos correspondientes a la sesion
de cada usuario automaticamente, incluso a
traves de multiples acceso a pagina.
JuanMartínez López 163
Session_start()
 Esta claupsula da inicio a la creacion de una
sesion,
 Sintaxis
session_start();
 Para almacenar datos dentro de una sesion
se utiliza la matriz global de $_session
 Sintaxis
$_SESSION[“NOMBRE”] = “VALOR”
JuanMartínez López 164
EJEMPLO
 session_start();
$_SESSION[“color”] = “verde”;
A partir de este momento, cualquier otro
acceso a pagina (ya sea la misma u otra
pagina distinta), podremos acceder a los
datos bajo la clave “color”, si accedemos a
$_SESSION de nuevo.
session_start();
$color = $_SESSION[“color”];
JuanMartínez López 165
Php.ini
 El comportamiento de una sesion esta
determinado por la configuracion que se
detalla en este archivo de configuracion
 session,save_path “*/tmp”
 Session.name “PHPSESSID”
 Session. Save_handler “file”
 Session. Auto_start “0”
 Session.cache_expire “180”
 Entre otros
JuanMartínez López 166
Alamacenando datos en
sesiones
 Ejemplo
<html>
<body>
<?php
session_start();
$_SESSION[“temperatura”] = “30”;
?>
Se almaceno la temperatura con el valor de 30 grado
<br>
Para leer la temperatura en una nueva pagina
<a href =“leersesion.php”>
Haga clic aqui</a>
</body></html>
JuanMartínez López 167
Leer datos de una sesion
 <?php
session_star();
if(isset($_SESSION[“temperatura”])){
echo “Bienvenido su temperatura es”,
$_SESSION[“temperatura”];
?>
Leersession.php
JuanMartínez López 168
Creando un contador de visita
 Primer intento!
<html>
<body>
Bienvenido , Ha estado aqui
<?php
$count++;
echo $count;
?>
Veces anteriormente.
</body>
</html>
JuanMartínez López 169
Contador de visita corregido
 Bienvenido. Ha estado aqui
<?php
session_start();
if(isset($_SESSIOn[“contador’])){
$_SESSION[“contador”] = 0;
}else {
$_SESSION[contador]++;
}
Echo $_SESSION[“contador”];
?>
Veces anteriormente.
JuanMartínez López 170
Uso de sesiones sin cookie
 Para poder guardar datos en una sesion sin
cookie lo haremos utilizando la funcion
session_id en una variable oculta llamada
PHPESSID.
 EJEMPLO
JuanMartínez López 171
 <?PHP
session_start();
$_SESSION[“temperatura”]=“30”;
?>
Se guardo la temperatura
<br>
Para leer la temperatura en una pagina haga click en enviar.
<br>
<FORM ACTION =“session4.php” METHOD=“POST”>
<INPUT TYPE =“HIDDEN” NAME =“PHPSESSID” VALUE=“
<?PHP
echo session_id();
?>
“>
< INPUT TYPE =“SUBMIT” VALUE=“Enviar”>
</form>
</body>
JuanMartínez López 172
 Simple PHP Template Class
The purpose of this tutorial is to show you how to implement a simple
class to handle page templates. It can be extended in any way you
wish.
 The Class (template.class.php)
<?
class Template {
public $template;
function load($filepath) {
$this->template = file_get_contents($filepath);
}
function replace($var, $content) {
$this->template = str_replace("#$var#", $content, $this-
>template);
}
function publish() {
eval("?>".$this->template."<?");
}
}
?>
JuanMartínez López 173
The Template File (design.html)
 This file will contain the design of your web site and
the blank fields that will be merged with content
data.
 <html>
<head>
<title>#title#</title>
</head>
<body>
<h3>Hello #name#!</h3>
<p>The time is: #datetime#</p>
<? echo "<p>Embedded PHP works too!</p>"; ?>
</body>
</html>
JuanMartínez López 174
 Usage (index.php)
 Now we will create a script that load the template and
use the class to merge the data.
 <?
include "template.class.php";
 $template = new Template;
$template->load("design.html");
$template->replace("title", "My Template Class");
$template->replace("name", "William");
$template->replace("datetime", date("m/d/y"));
$template->publish();
?>
JuanMartínez López 175
 When you run the above script, index.php, it will output the
following:
 <html>
<head>
<title>My Template Class</title>
</head>
<body>
<h3>Hello William!</h3>
<p>The time is: 03/10/04</p>
<p>Embedded PHP works too!</p>
</body>
</html>
 This code, as you can see, is very simple. It supports
embedding PHP into the original template file (design.html). You
could easily extend it to pull data from a database such as
MySQL
JuanMartínez López 176
Manipulando correo con php
 PHP posee las herramientas necesarias para
poder enviar correo electronico.
 Para poder enviar un correo electronico
debemos de configurar el archivo php.ini.
Nombre
Predeterminado Modificable
SMTP "localhost" PHP_INI_ALL
smtp_port "25" PHP_INI_ALL
sendmail_from NULL PHP_INI_ALL
sendmail_path DEFAULT_SENDMAIL_PATH PHP_INI_SYSTEM
JuanMartínez López 177
Tabla completa
Nombre Default Descripción editable
SMTP "localhos
t"
Windows only: The DNS
name or IP address of the
SMTP server
PHP_INI_ALL
smtp_port "25" Windows only: The SMTP port
number. Available since PHP
4.3
PHP_INI_ALL
sendmail_fro
m
NULL Windows only: Specifies the
"from" address to be used in
email sent from PHP
PHP_INI_ALL
sendmail_pat
h
NULL Unix systems only: Specifies
where the sendmail program
can be found (usually
/usr/sbin/sendmail or
/usr/lib/sendmail)
PHP_INI_SYST
EM
JuanMartínez López 178
La función Mail
 Esta funcion es utilizada para enviar correo
electronico desde un script.
 Sintaxis.
mail ( string para, string asunto, string mensaje
[, string cabeceras_adicionales [, string
parametros_adicionales]]).
JuanMartínez López 179
ejemplo
<?php
$to = “picalongoa@yahoo.com";
$subject = “clase php";
$message = “Adelante Houston desde el itla.";
$from = “juan5654@gmail.com";
$headers = "From: $from";
mail($to,$subject,$message,$headers);echo "Mail
Sent.";
?>
JuanMartínez López 180
Ejemplo 2. de mail()
<html>
<head><title>Envio de E-mail</title></head>
<body> <center>
<h1>envio de E-mail</h1>
<br>
<FORM METHOD=“POST” ACTION=“prumail.php”>
Escriba el mesaje y presion enviar
<br>
<TEXTAREA NAME=“mensaje” COLS=“50” ROWS=“6”></TEXTAREA>
<BR>
<BR>
<INPUT TYPE =“SUBMIT” VALUE =“Envar”>
</form></center>
<body><html>
JuanMartínez López 181
Se envio un correo electronico
<br>
<?php
$resultado = mail(“chuki@hotmail.com”,
“correo electronico de la web”,
$_REQUEST[“mensaje”]);
?>
JuanMartínez López 182
Creacion de un formulario de
retro-alimentacion tu sitio
EJEMPLO
Como funciona.
1- determina si se ha llenado el correo
2- el le mostrara la pagina como si fuera la primera vez
3- si esta lleno envia un e-mail desde el formulario
4 Cuando presiona el boton enviar el recarga la agina para deerminar si
se ha llenado el formulario si es asi envia un correo
JuanMartínez López 183
Base de datos
Una de las opciones más útiles de
PHP es la posibilidad de gestionar
bases de datos en ordenadores
remotos.
 Existen multitud de programas de
servidores de bases de datos y
PHP dispone de funciones para el
manejo de muchos de ellos tales
como:
JuanMartínez López 184
Bloque para establecer una
conexion
<?php
$mysql_server=“localhost”;
$mysql_login=“root”;
$mysql_pass=“”;
$link = mysql_connect ($mysql_server, $mysql_login,
$mysql_pass) {
or die ("Could not connect");
}
print ("Connected successfully");
mysql_close ($link);
?>
JuanMartínez López 185
Creacion de una base de datos
<?php
$query = “CREATE DATABASE prueba”;
mysql_query($query);
?>

Weitere ähnliche Inhalte

Andere mochten auch

Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicioswilliam kozisck
 
Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPJesus Castagnetto
 
Manual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con EjemplosManual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con EjemplosSteven Gomez
 
Luz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular SenpirLuz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular SenpirÁngel Acaymo M. G.
 
PHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHPPHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHPRightster
 
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebPHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebRightster
 
PHP Avanzado: Patrones de diseño
PHP Avanzado: Patrones de diseñoPHP Avanzado: Patrones de diseño
PHP Avanzado: Patrones de diseñoRightster
 
Users - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQLUsers - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQLAndrés Pizarro
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigoepetekaun
 
Iniciación a las artes marciales con Python
Iniciación a las artes marciales con PythonIniciación a las artes marciales con Python
Iniciación a las artes marciales con PythonIsrael Fermin Montilla
 
ECMAScript 6, o cómo usar el JavaScript del futuro hoy
ECMAScript 6, o cómo usar el JavaScript del futuro hoyECMAScript 6, o cómo usar el JavaScript del futuro hoy
ECMAScript 6, o cómo usar el JavaScript del futuro hoySoftware Guru
 
Tutorial básico control puerto paralelo con visual basic 6.0
Tutorial básico control puerto paralelo con visual basic 6.0Tutorial básico control puerto paralelo con visual basic 6.0
Tutorial básico control puerto paralelo con visual basic 6.0Eddy Solano
 
Introducción al ecosistema de React.js
Introducción al ecosistema de React.jsIntroducción al ecosistema de React.js
Introducción al ecosistema de React.jsJoaquín Salvachúa
 
Aplicaciones PHP para empresas (PHPBarcelona en Lancelona)
Aplicaciones PHP para empresas (PHPBarcelona en Lancelona)Aplicaciones PHP para empresas (PHPBarcelona en Lancelona)
Aplicaciones PHP para empresas (PHPBarcelona en Lancelona)Oriol Jiménez
 
IDEs PHP (PHPBarcelona en Lancelona)
IDEs PHP (PHPBarcelona en Lancelona)IDEs PHP (PHPBarcelona en Lancelona)
IDEs PHP (PHPBarcelona en Lancelona)Oriol Jiménez
 
Curso PHP Academia Usero
Curso PHP Academia UseroCurso PHP Academia Usero
Curso PHP Academia UseroIES Kursaal
 

Andere mochten auch (20)

Php desde cero
Php desde ceroPhp desde cero
Php desde cero
 
Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicios
 
Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHP
 
Manual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con EjemplosManual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con Ejemplos
 
Luz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular SenpirLuz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular Senpir
 
ejercicios php rfo
ejercicios php rfoejercicios php rfo
ejercicios php rfo
 
JavaScript desde Cero
JavaScript desde CeroJavaScript desde Cero
JavaScript desde Cero
 
PHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHPPHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHP
 
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebPHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad Web
 
PHP Avanzado: Patrones de diseño
PHP Avanzado: Patrones de diseñoPHP Avanzado: Patrones de diseño
PHP Avanzado: Patrones de diseño
 
Users - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQLUsers - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQL
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
Iniciación a las artes marciales con Python
Iniciación a las artes marciales con PythonIniciación a las artes marciales con Python
Iniciación a las artes marciales con Python
 
ECMAScript 6, o cómo usar el JavaScript del futuro hoy
ECMAScript 6, o cómo usar el JavaScript del futuro hoyECMAScript 6, o cómo usar el JavaScript del futuro hoy
ECMAScript 6, o cómo usar el JavaScript del futuro hoy
 
Microsoft Visual C++
Microsoft Visual C++Microsoft Visual C++
Microsoft Visual C++
 
Tutorial básico control puerto paralelo con visual basic 6.0
Tutorial básico control puerto paralelo con visual basic 6.0Tutorial básico control puerto paralelo con visual basic 6.0
Tutorial básico control puerto paralelo con visual basic 6.0
 
Introducción al ecosistema de React.js
Introducción al ecosistema de React.jsIntroducción al ecosistema de React.js
Introducción al ecosistema de React.js
 
Aplicaciones PHP para empresas (PHPBarcelona en Lancelona)
Aplicaciones PHP para empresas (PHPBarcelona en Lancelona)Aplicaciones PHP para empresas (PHPBarcelona en Lancelona)
Aplicaciones PHP para empresas (PHPBarcelona en Lancelona)
 
IDEs PHP (PHPBarcelona en Lancelona)
IDEs PHP (PHPBarcelona en Lancelona)IDEs PHP (PHPBarcelona en Lancelona)
IDEs PHP (PHPBarcelona en Lancelona)
 
Curso PHP Academia Usero
Curso PHP Academia UseroCurso PHP Academia Usero
Curso PHP Academia Usero
 

Ähnlich wie Curso PHP básico (20)

Php
PhpPhp
Php
 
Php basico
Php basicoPhp basico
Php basico
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Programacion en php
Programacion en phpProgramacion en php
Programacion en php
 
3144
31443144
3144
 
Php
PhpPhp
Php
 
DESARROLLO-CON-PHP-pptx.pptx
DESARROLLO-CON-PHP-pptx.pptxDESARROLLO-CON-PHP-pptx.pptx
DESARROLLO-CON-PHP-pptx.pptx
 
Mini manual php
Mini manual phpMini manual php
Mini manual php
 
Php informacion
Php informacion Php informacion
Php informacion
 
Php
PhpPhp
Php
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Mini manual php
Mini manual phpMini manual php
Mini manual php
 
Php
PhpPhp
Php
 
Manual de php basico
Manual de php basicoManual de php basico
Manual de php basico
 
Manual basico de PHP
Manual basico de PHPManual basico de PHP
Manual basico de PHP
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 

Kürzlich hochgeladen

Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 

Kürzlich hochgeladen (20)

Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 

Curso PHP básico

  • 2. JuanMartínez López 2 objetivos  Conoce la estructura básica de PHP  Crea aplicaciones simples  Confecciona formulario y lo lee por código PHP  Instala y Configura el servidor apache, Y PHP
  • 3. JuanMartínez López 3 CONTENIDO  CONCEPTO SOBRE PHP.  Mi primer programa en php.  Instalacion y configuracion de wamp  Tag de PHP  Variables en PHP
  • 4. JuanMartínez López 4 ¿Qué es PHP?  PHP (acrónimo de "PHP: Hypertext Preprocessor") es un lenguaje de "código abierto" interpretado, de alto nivel, incrustado en páginas HTML y ejecutado en el servidor.
  • 5. JuanMartínez López 5 EJEMPLO  <html> <head> <title>Prueba </title> </head> <body> <?php echo “Bienvenido al curso de PHP básico!"; ?> </body> </html>
  • 6. JuanMartínez López 6 PODER DE PHP  Adabas  DIngresOracle (OCI7 and OCI8)  dBase  InterBase  Ovrimos  Empress  FrontBase  Postgre  SQL  FilePro (read-only)  Msql  SolidHyperwave  Direct MS-SQL  Sybase  IBM DB2  MySQL  Velocis  Informix  ODBC  Unix dbm
  • 7. JuanMartínez López 7 Versiones de PHP  PHP/FI  PHP/FI 2.0  PHP 3  PHP 4  PHP 5
  • 8. JuanMartínez López 8 Requerimiento para Instalar PHP  Servidor web (apache, IIS, otros)  Appserver  Foxserv  Wamp, map y lamp  Instalación  Localhost o 127.0.0.1
  • 9. JuanMartínez López 9 Variables  Una variable es un contenedor de información, en el que podemos meter números enteros, números decimales, caracteres  En PHP todas las variables comienzan con el símbolo del dólar $  Ejemplo  $nombre, $_nombre, $nombre_completo
  • 10. JuanMartínez López 10 Ejemplo de uso de variable  <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 1; $b = 3.34; $c = "Hola Mundo"; echo $a,"<br>",$b,"<br>",$c; ?> </body> </html>  Usuario gx-240 clave gx-240itladell  Gx-240 inapdell
  • 11. JuanMartínez López 11 <?php $var = "Bob"; $Var = "Joe"; echo "$var, $Var"; // Sale "Bob, Joe" $4site = 'not yet'; // invalida; starts with a number $_4site = 'not yet'; // valid; starts with an underscore $täyte = 'mansikka'; // valid; 'ä' is ASCII 228 (Extendido) ?>
  • 13. JuanMartínez López 13 Ejemplo html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; echo $a + $b,"<br>"; echo $a - $b,"<br>"; echo $a * $b,"<br>"; echo $a / $b,"<br>"; $a++; echo $a,"<br>"; $b--; echo $b,"<br>"; ?> </body> </html>
  • 14. JuanMartínez López 14 Practica 2  TOMADO EN CUENTA QUE DOMINA LAS OPERACIONES ARITMETICA REALIZA EL SIGUIENTE PROGRAMA.  CALCULAR TU EDAD EN LOS SIGUINETES RENGLONES - POR MES, SEMAMA, DIAS, HORA , MINUTOS Y SEGUNDO.  DEBE GRABAR EL ARCHIVO CON EL NOMBRE DE calculo.php
  • 16. JuanMartínez López 16 Operadores de Asignación  El operador básico de asignación es "=". A primera vista, usted podría pensar en él como "es igual a". No lo haga. Lo que quiere decir en realidad es que el operando de la izquierda recibe el valor de la expresión a la derecha (es decir, "se define a").  El valor de una expresión de asignación es el valor que se asigna. Es decir, el valor de "$a = 3" es 3. Esto le permite hacer una que otra cosa curiosa:
  • 17. JuanMartínez López 17 Ejemplo de Comparación <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; $c = 3; echo $a == $b,"<br>"; echo $a != $b,"<br>"; echo $a < $b,"<br>"; echo $a > $b,"<br>"; echo $a >= $c,"<br>"; echo $b <= $c,"<br>"; ?> </body> </html>
  • 18. JuanMartínez López 18 Operadores de Control de Errores  PHP ofrece soporte para un operador de control de errores: el signo de arroba (@). Cuando es colocado al comienzo de una expresión en PHP, cualquier mensaje de error que pudiera generarse a causa de esa expresión será ignorado.
  • 19. JuanMartínez López 19 ejemplo  <?php /* Error intencional de archivo */ $mi_archivo = @file ('archivo_que_no_existe') or die ("La apertura de archivo ha fallado: el error fue '$php_errormsg'"); // esto funciona con cualquier expresion, no solo con funciones: $valor = @$cache[$llave]; // no producira una anotacion si el indice $llave no existe. ?>
  • 20. JuanMartínez López 20 Lógicos  Los operadores lógicos son usados para evaluar varias comparaciones, combinando los posibles valores de estas
  • 21. JuanMartínez López 21 Ejemplo  <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; $c = 3; echo ($a == $b) && ($c > $b),"<br>"; echo ($a == $b) || ($b == $c),"<br>"; echo !($b <= $c),"<br>"; ?> </body> </html>
  • 22. JuanMartínez López 22 Operadores de Incremento/Decremento PHP ofrece soporte de operadores de pre- y post-incremento y decremento, estilo-C.
  • 24. JuanMartínez López 24 Condicionales  Las sentencias condicionales nos permiten ejecutar o no unas ciertas instrucciones dependiendo del resultado de evaluar una condición. Las más frecuentes son la instrucción if y la instrucción switch.  Sentencia if ... else
  • 25. JuanMartínez López 25 sintaxis  <?php if (condición) { Sentencias a ejecutar cuando la condición es cierta. } else { Sentecias a ejecutar cuando la condición es falsa. } ?>
  • 26. JuanMartínez López 26 Ejemplo  <html> <head> <title>Ejemplo de PHP</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>
  • 27. JuanMartínez López 27 Ejemplo <html> <body> <?php $d=date("D"); if ($d=="Fri") { echo "Hello!<br />"; echo "Have a nice weekend!"; echo "See you on Monday!"; } ?> </body> </html>
  • 29. JuanMartínez López 29 Practica 3. Vamos a crear un programa donde podamos hacer la siguiente condición. Donde si el valor numérico es mayor de 20 y menor de 30, imprime un letrero edad de productividad Si la edad es mayor de 30 y menor de 50, imprime un letrero indicando edad rica Si es mayor de 50 Edad de los contrario no califica.
  • 30. JuanMartínez López 30 elseif  como su nombre sugiere, es una combinación de if y else. Como else, extiende una sentencia if para ejecutar una sentencia diferente en caso de que la expresión if original se evalúa como FALSE. No obstante, a diferencia de else, ejecutará esa expresión alternativa solamente si la expresión condicional elseif se evalúa como TRUE. Por ejemplo, el siguiente código mostraría a es mayor que b, a es igual a b o a es menor que b:
  • 31. JuanMartínez López 31 Ejemplo  <?php if ($a > $b) { echo "a es mayor que b"; } elseif ($a == $b) { echo "a es igual que b"; } else { echo "a es mayor que b"; } ?>
  • 32. JuanMartínez López 32 Ejemplo <html> <body> <?php $d=date("D"); if ($d=="Fri") echo "Have a nice weekend!"; elseif ($d=="Sun") echo "Have a nice Sunday!"; else echo "Have a nice day!"; ?> </body> </html>
  • 33. JuanMartínez López 33 La Sentencia Switch  podemos ejecutar unas u otras instrucciones dependiendo del valor de una variable
  • 34. JuanMartínez López 34 Ejemplo del Swict <html> <body> <?php switch ($x) { case 1: echo "Number 1"; break; case 2: echo "Number 2"; break; case 3: echo "Number 3"; break; default: echo "No number between 1 and 3"; } ?> </body> </html>
  • 35. JuanMartínez López 35 Ejemplo  <html> <head> <title>Ejemplo de PHP</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>
  • 36. JuanMartínez López 36 Sentencia while  repetir la ejecución de un conjunto de instrucciones mientras se cumpla una condición.  Mientras la condición sea cierta se reiterará la ejecución de las instrucciones que están dentro del while.  Crea un loop hasta que la condicion se cumpla.
  • 37. JuanMartínez López 37 Sintaxis de While  <?php while (condición) { intrucciones a ejecutar. } ?>
  • 38. JuanMartínez López 38 Ejemplo 1 de while <html> <body> <?php $i=1; while($i<=5) { echo "The number is " . $i . "<br />"; $i++; } ?> </body> </html>
  • 39. JuanMartínez López 39 Ejemplo 1 de while <html> <body> <?php $i=10; while($i>=1) { echo "The number is " . $i . "<br />"; $i=$i - 1 } ?> </body> </html>
  • 40. JuanMartínez López 40 Ejemplo 2 de While <html> <head> <title>Ejemplo de PHP</title> </head> <body> Inicio<BR> <?php $i=0; while ($i<10) { echo "El valor de i es ", $i,"<br>"; $i++; } ?> Final<BR> </body> </html>
  • 41. JuanMartínez López 41 Do.. while  Los bucles do..while son muy similares a los bucles while, excepto que las condiciones se comprueban al final de cada iteración en vez de al principio, es decir, que esta sentencia primero se ejecuta y luego evalúa.
  • 42. JuanMartínez López 42 Ejemplo <?php $i = 1; do { echo $i; $i++; } while ($i< 15); ?> Crea un bucle de los numeros del 1 al 14. <?php $i = 0; do { print $i; } while ($i>0); ?> Este ejemplo solo se ejecutara una sola vez
  • 43. JuanMartínez López 43 For  Los bucles for son los bucles más complejos en PHP. Se comportan como su contrapartida en C. La sintaxis de un bucle for es.  for ($i = 1; $i <= 10; $i++) Se define condición Incremento
  • 44. JuanMartínez López 44 Ejemplos  <html> <head> <title>Ejemplo de PHP</title> </head> <body> Parte de HTML normal. <BR> <?php echo "Parte de PHP<br>"; for($i=0;$i<10;$i++) { echo "Linea ".$i."<br>"; } ?> </body> </html>
  • 45. JuanMartínez López 45 Array  array -- Crear una matriz  Devuelve una matriz con los parámetros que se le pasan. A dichos parámetros se les puede dar un índice usando el operador =>.  Descripción  array array ( mixed ...)
  • 46. JuanMartínez López 46 Ejemplos  $frutas = array ( "frutas" => array("a"=>"naranja", "b"=>"plátano", "c"=>"manzana"), "números" => array(1, 2, 3, 4, 5, 6), "hoyos" => array("primero", 5 => "segundo", "tercero") );
  • 47. JuanMartínez López 47 foreach  tal como perl y algunos otros lenguajes. Esto simplemente da un modo fácil de iterar sobre matrices.  funciona solamente con matrices y devolverá un error si se intenta utilizar con otro tipo de datos ó variables no inicializadas Nota: foreach no soporta la caracteristica de suprimir mensajes de error con '@'.
  • 48. JuanMartínez López 48 La primera forma recorre el array dado por expresion_array. En cada iteración, el valor del elemento actual se asigna a $value y el puntero interno del array se avanza en una unidad (así en el siguiente paso, se estará Sintaxis de foreach  foreach(expresion_array as $value) sentencia  foreach(expresion_array as $key => $value) sentencia La segunda manera hace lo mismo, salvo que la clave del elemento actual será asignada a la variable $key en cada iteración
  • 49. JuanMartínez López 49 ejemplo  <?php $arr = array("one", "two", "three"); reset ($arr); while (list(, $valor) = each ($arr)) { echo "Valor:”, $valor<br>n"; } foreach ($arr as $valor) { echo “Valor:”, $valor<br>n"; } ?>
  • 50. JuanMartínez López 50 DEFINE  Define una constante con nombre, que es similar a una variable.  Descripción int define ( string name, mixed value [, int case_insensitive]) . EJEMPLO <?php define("CONSTANT", "HOLA php."); echo CONSTANT; // outputs "HOLA PHP.“ ?>
  • 51. JuanMartínez López 51 Constante  Las constantes no tienen un símbolo dólar '$' precediéndolas;  Las constantes son accesibles desde cualquier lugar sin tener en cuenta las reglas de ámbito de las variables.  Las constantes no pueden ser redefinidas o iniciadas una vez que han sido establecidas, y  Las constantes sólo pueden evaluar valores escalares
  • 52. JuanMartínez López 52 MANEJANDO CADENAS DE CARCTERES EN PHP  Dado el uso del lenguaje PHP el tratamiento de cadenas es muy importante, existen bastantes funciones para el manejo de cadenas, a continuación explicaremos las más usadas.
  • 53. JuanMartínez López 53  strlen(cadena). Nos devuelve el número de carácteres de una cadena.  split(separador,cadena). Divide una cadena en varias usando un carácter separador.  sprintf(cadena de formato, var1, var2...). Formatea una cadena de texto al igual que printf pero el resultado es devuelto como una cadena.  substr(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio y de longitud.  $email=juan5654@gmail.com  Split(@,email)
  • 54. JuanMartínez López 54  chop(cadena). Elimina los saltos de línea y los espacios finales de una cadena.  strpos(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicándonos la posición en la que se encuentra.  str_replace(cadena1, cadena2, texto). Reemplaza la cadena1 por la cadena2 en el texto.
  • 55. JuanMartínez López 55 EJEMPLO  <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php echo strlen("12345"),"<br>"; $palabras=split(" ","Esto es una prueba"); for($i=0;$palabras[$i];$i++) echo $palabras[$i],"<br>"; $resultado=sprintf("8x5 = %d <br>",8*5); echo $resultado,"<br>"; echo substr("Devuelve una subcadena de otra",9,3),"<br><br>"; if (chop("Cadena nn ") == "Cadena") echo "Iguales<br><br>"; echo strpos("Busca la palabra dentro de la frase", "palabra"),"<br><br>"; echo str_replace("verde","rojo","Un pez de color verde, como verde es la hierba."),"<br>"; ?> </body> </html>
  • 56. JuanMartínez López 56 Ejemplos de matrices  <?php $carro [0] = “cepillo”; $carro [1] = “BMW”; $carro [2]= “Toyota”; for ($index = 0; $index <count($carro); $index++) { Echo $carro[$index],”<br>”; } ?>
  • 57. JuanMartínez López 57  Tabla de contenidos  array_change_key_case -- Devuelve una matriz con todas las claves de las cadenas convertidas a mayúsculas o minúsculas  array_chunk -- Divide una matriz en segmentos  array_combine -- Crea una nueva matriz, usando una matriz para las claves y otra para sus valores  array_count_values -- Cuenta todos los valores de una matriz  array_diff_assoc -- Comprueba las diferencias entre matrices teniendo en cuenta los índices  array_diff_key -- Calcula la diferencia de matrices usando las llaves para la comparación  array_diff_uassoc -- Computa la diferencia entre matrices con un chequeo adicional de índices, el cual es realizado por una llamada de retorno entregada por el usuario  array_diff_ukey -- Calcula la diferencia de matrices usando callback function on the keys for comparison  array_diff -- Comprueba las diferencias entre matrices
  • 58. JuanMartínez López 58  array_map -- Aplica la llamada de retorno especificada a los elementos de las matrices dadas  array_merge_recursive -- Une dos o más matrices recursivamente  array_merge -- Combina dos o más matrices  array_multisort -- Ordena múltiples matrices, o matrices multi- dimensionales  array_pad -- Rellena una matriz con un valor hasta el tamaño especificado  array_pop -- Extrae el último elemento de la matriz  array_product -- Calcula el producto de valores en una matriz  array_push -- Inserta uno o más elementos al final de la matriz  array_rand -- Selecciona una o más entradas aleatorias de una matriz  array_reduce -- Reduce iterativamente una matriz a un solo valor usando una función llamada de retorno  array_reverse -- Devuelve una matriz con los elementos en orden inverso
  • 59. JuanMartínez López 59  de retorno  array_udiff -- Computa la diferencia entre matrices, usando una llamada de retorno para la comparación de datos  array_uintersect_assoc -- Calcula la intersección de matrices con chequeo adicional de ídices, comparando los datos por una función del usuario  array_uintersect_uassoc -- Calcula la intersección de matrices con chequeo adicional de índices, compara los datos y los índices por una función del usuario  array_uintersect -- Calcula la interseccón de matrices, compara los datos con una función del usuario  array_unique -- Remueve valores duplicados de una matriz  array_unshift -- Introduce uno o más elementos al principio de la matriz  array_values -- Devuelve todos los valores de una matriz
  • 60. JuanMartínez López 60  each -- Devuelve el siguiente par clave/valor de una matriz y avanza el apuntador  end -- Mueve el puntero interno de una tabla al último elemento  extract -- Importa variables a la tabla de símbolos desde una matriz  in_array -- Revisa si un valor existe en una matriz  key -- Obtiene una clave de una matriz asociativa  krsort -- Ordena una matriz por clave en orden inverso  ksort -- Ordena una matriz por clave  list -- Asigna variables como si fueran una matriz  natcasesort -- Ordena una matriz usando un algoritmo de "orden natural" sin distinguir mayúsculas de minúsculas  natsort -- Ordena una matriz usando un algoritmo de "orden natural"  next -- Avanza el puntero interno de una matriz
  • 61. JuanMartínez López 61  pos -- Alias de current()  prev -- Rebobina el puntero interno de una matriz  range -- Crea una matriz que contiene un rango de elementos  reset -- Fija el puntero interno de una matriz a su primer elemento  rsort -- Ordena una matriz en orden inverso  shuffle -- Mezcla una matriz  sizeof -- Alias of count()
  • 62. JuanMartínez López 62  array_search -- Busca un valor determinado en una matriz y devuelve la clave correspondiente en caso de éxito  array_shift -- Extrae un elemento del comienzo de la matriz  array_slice -- Extrae una porción de la matriz  array_splice -- Suprime una porción de la matriz y la sustituye por otra cosa  array_sum -- Calcula la suma de los valores en una matriz  array_udiff_assoc -- Computa la diferencia entre matrices con un chequeo de índices adicional, comparando los datos con una llamada de retorno  array_udiff_uassoc -- Computa la diferencia entre matrices con un chequeo de índices adicional, comparando los datos y los índices con una llamada
  • 63. JuanMartínez López 63  array_fill -- Llena una matriz con valores  array_filter -- Filtra elementos de una matriz mediante una función "callback"  array_flip -- Intercambia los valores de una matriz con sus índices  array_intersect_assoc -- Calcula la intersección de matrices verificando que también coincidan los índices  array_intersect_key -- Calcula la intersección de matrices usando las llaves para la comparación  array_intersect_uassoc -- Calcula la intersección de matrices con chequeo de índices adicional por una función de usuario  array_intersect_ukey -- Calcula la intersecció de matrices usando una función de usuario para la comparación de los índices  array_intersect -- Calcula la intersección de matrices  array_key_exists -- Comprueba si el índice o clave dada existe en la matriz  array_keys -- Devuelve todas las claves de una matriz
  • 64. JuanMartínez López 64  sort -- Ordena una matriz  uasort -- Ordena una matriz mediante una función de comparación definida por el usuario y mantiene la asociación de índices  uksort -- Ordena una matriz por claves mediante una función definida por el usuario  usort -- Ordena una matriz por sus valores usando una función de comparación definida por el usuario
  • 65. JuanMartínez López 65  array_walk_recursive -- Aplicar una función de usuario recursivamente a cada miembro de una matriz  array_walk -- Aplica una función del usuario a cada elemento de una matriz.  array -- Crear una matriz  arsort -- Ordena una matriz en orden inverso y mantiene la asociación de índices  asort -- Ordena una matriz y mantiene la asociación de índices  compact -- Crea una matriz que contiene variables y sus valores  count -- Cuenta los elementos de una matriz o propiedades de un objeto  current -- Devuelve el elemento actual de una matriz
  • 66. JuanMartínez López 66 Comando para trabajar en matrices Unset  Se usa para eliminar un elemento de la matriz o la matriz entera Sintaxis  Unset($matriz[3]) (este borra el elemento cuyo indice es igual a 3).  Unset ($matriz) este opcion elimina la matriz completa.
  • 67. JuanMartínez López 67 Otro ejemplo de matrices  <?php $carro = array (“Toyota”, “suzuky”,”volvo”); print_r($carro); sort($carro); echo “<hr>”; print _r($carro); ?>
  • 68. JuanMartínez López 68 <?php $fruta[0] = "pina"; $fruta[1] = "manzana"; $fruta[2] = "coco"; $fruta[3] = "mango"; for ($index = 0; $index < count($fruta); $index++) { echo $fruta[$index], "<br>"; } echo "<hr>"; print_r($fruta); echo "<hr>"; // sacando un numero aleatorio de una matriz $n= array_rand($fruta); echo $n; echo "<hr>"; // ordenando una matriz sort ($fruta); print_r($fruta); echo "<hr>"; $carro["nuevo"] = "toyota"; $carro["usado"] = "honda civic"; $carro["chocado"]= "bmw"; $carro["alquilado"]= "murano"; print_r($carro); $c= array_rand($carro); echo "<br>"; echo $c; ?>
  • 69. JuanMartínez López 69 ejercicio Tener dos matriz una de estudiantes y la otra de premio. Se sacara u n estudantes de forma aleatoria y luego se sacara el premio de forma aleatoria. Recuerde que la cantidad de estudiantes son Y la cantidadad de premio sera. La salida por pantalla sera de la sgts. Forma el nombre del ganador KKKKK y el premio es ppppppp Luego imprimir todos los concursantes en orden alfabetico y luego
  • 70. JuanMartínez López 70 Recorriendo una matriz  La funcion current. Se usa para obtener el elemento actual de una matriz. echo “Actual: “, current (variable);  Funcion next mueve el puntero al proximo elemento de la matriz next(variable);  La funcion prev desplaza el puntero al elemento anterior de la matriz prev(variable)
  • 71. JuanMartínez López 71  La funcion end lleva el puntero al final de la matriz end(variable)  reset va al inicio de la matriz. reset(variable)
  • 72. JuanMartínez López 72 RETROALIMENTACION  TIENE UNA VARIABLE QUE ALMACENA EL NOMBRE Y UNA CLAVE CON UN MINIMO DE 6 DIGITO. ADEMAS TIENE OTRA QUE ES CARGO.  AQUÍ DEBEMOS UTILIZAR LAS OPCIONES CASE Y LA DE IF PARA EL CASO DE QUE EL CARGO ES IGUAL GERENTE IMPRIME UN LETRERO CALIFICA , SI EL SUELDO DE ESTE GERENTE ES MAYOR DE 30000 PESOS ENTONCE EL IMPUESTO SOBRE LA RENTA SERA IGUAL A SUELDO MENOS 30000 POR 4%  DE LO CONTARARIO NO APLICA DESCUENTO  SI EL CARGO ES MENSAJERO IMPRIME LETRERO EMPLEADO DE BAJO NIVEL ADEMAS SI EL SUELDO ES MENOR DE 10000 TENDRA UN AUMENTO DE 2000 PESOS DE LO CONTRARIO UN AUMENTO DE 500 PESOS.  SI LA CLAVE ES MENOR DE 6 CARACTERES ENTONCE A LA CLAVE SE CAMBIARA POR ¨PHPBASICO¨ DE LO CONTRARIO IMPRIME EL LETRO QUE DIGA CLAVE ACEPTADA  LA IMPRESION DE ESTA PARTE SERA LA SIGUIENTE. NOMBRE DEL EMPLEADO, LA CLAVE DE ESTE Y EL SUELNO NETO .
  • 73. JuanMartínez López 73 2DA FASES  HACER UN BUCLE QUE LE IMPRIME EL LETRO SOY UN WEB MASTER. 5 VECES SI EL LETRERO TIENE UNA LONGITUD DE MAYOR O IGUAL 10, SI ES MENOR QUE SE IMPRIMA DOS VECES.
  • 74. JuanMartínez López 74 FASE 3  HACER UNA matriz QUE ALMACENES EL LA VARIABLE EMPLEADO CON EL NOMBRE CODIGO COMO INDEX Y SERSA IGUAL AL SUELDO. LUEGO SELECCIONAR UN EMPLEADO DE FORMA ALEATORIO IMPRIMIR DE FORMA ORDENADA LA matriz Y LUEGO IMPRIMIR EL VALOR SELECCIONADO DE FORMA ALEATORIA.
  • 75. JuanMartínez López 75 SINTAXIS <?php function Hiperlink () { // Entre parentesis () podemos incluir valores que // deba usar nuestra función. El uso de () // es siempre necesario. // El código de la función entre llaves {} } Hiperlink(); // esta linea llama la función ?>
  • 76. JuanMartínez López 76 LA FUNCION  Una función de usuario en PHP no es mas que una porción de código que podemos llamar en cualquier momento  Para definir una función debemos usar la palabra reservada function. Para llamar la función basta con invocar su nombre
  • 77. JuanMartínez López 77 OBSERVACIONES DE LA FUNCION  PHP no distingue entre mayusculas y minusculas al nombrar las funciones, asi que HiperLink sería lo mismo que Hiperlink, aunque es buena práctica ser consistente en la forma de escribir los nombres. Como curiosidad, podrás observar que en los mensajes de error, PHP siempre designa tus funciones en minuscula. Los parentesis permiten pasar valores a las funciones (como veremos despues) y son siempre necesarios, aunque no vayas a pasar valor alguno
  • 78. JuanMartínez López 78 EJEMPLO  <?php function TradicionalHolaMundo (){ echo "hola mundo"; } TradicionalHolaMundo(); // que sorpresa ! im prime "hola mundo" ?> El código que puedes incluir en una función es cualquier código php válido
  • 79. JuanMartínez López 79 funciones y parámetros  Podemos pasar a nuestras funciones valores para que operen sobre ellos. PHP permite pasar a las funciones variables, cadenas de texto, números o arrays Los datos pasados a la función pueden ser por valor o por referencia. En el primer caso solo pasamos el valor del dato, no su contenedor, de forma que dicho dato (por ejemplo almacenado en una variable) conserva su valor original fuera de la función, sin verse afectado por los cambios que la función pueda ejecutar. En cambio si pasamos el valor por referencia, el dato original quedará afectado por el resultado de la función:
  • 80. JuanMartínez López 80  <?php $msg = "Como estás ?"; function TradicionalHolaMundo ($msg) { $msg= "Hola Mundo !!".$msg; echo $msg; } TradicionalHolaMundo ($msg); // vuelca "Hola Mundo !! Como estas ? echo $msg; // vuelca "Como estás ?" $msg = "Como estás ?"; function TradicionalHolaMundo (&$msg) //advierte que usamos &$ { $msg= "Hola Mundo !!".$msg; echo $msg; } TradicionalHolaMundo ($msg); // $msg -> Hola Mundo !! Como estas ? echo $msg; // vuelca "Hola Mundo !! Como estás ?" ?>
  • 81. JuanMartínez López 81 Puedes tambien prever un valor por defecto para la función, que se aplicará salvo que especifiques otro al llamarla: <?php function TradicionalHolaMundo ($msg = "Hola como estás") { ...} TradicionalHolaMundo(); // Hola Mundo !! H ola como estás ? TradicionalHolaMundo("hasta luego");// Hola Mund o !! hasta luego TradicionalHolaMundo(""); // Hola Mundo !! ?>
  • 82. JuanMartínez López 82  <?php function TradicionalHolaMundo ($msg) { return "Hola Mundo !!".$msg; } $blah = TradicionalHolaMundo ($msg); ?>
  • 83. JuanMartínez López 83 Return  Si la función debe retornar algun valor al script, debes indicarlo por medio de la expresión return. El código existente en la función despues de return no será ejecutado.  En los sencillos ejemplos que hemos usado no empleamos return ya que la unica instrucción de la función es precisamente una orden echo. Pero podría suceder que la función no tuviera por finalidad volcar nada a pantalla, sino manipular un valor para, por ejemplo, pasarselo a otrá función. En tal caso usamos return.
  • 84. JuanMartínez López 84 ejemplo <?php $blah = "http://www.ignside.net"; function hiperlink($CadenaTexto) { $CadenaTexto = preg_replace("/(http://[0-9a-zA-Z-._/]+)/", "<a href="1">1</a>", $CadenaTexto); print $CadenaTexto; } hiperlink($blah); // devuelve la url como un enlace clickable // <A href="http://www.ignside.net">http://www.ignsid e.net</A> ?> Como ya está bien de TradicionalHolaMundo() vamos a ver una función sencilla pero algo mas útil: la función hiperlink() que buscará urls dentro de una cadena de texto, convirtiendolas en enlaces
  • 85. JuanMartínez López 85 opciones  La anterior función toma un parámetro y busca en él, con preg_replace, la existencia de una url correctamente escrita (http://....) y si la encuentra construye un link que apunta a esa direccion, usando la misma como texto visible del enlace.
  • 86. JuanMartínez López 86 Manipulando con 2 parametros  Podemos perfeccionarla un poco con dos parámetros:  <?php $blah = "http://www.ignside.net"; function hiperlink($CadenaTexto, $textovisible) { $CadenaTexto = preg_replace("/(http://[0-9a-zA-Z-._/] +)/", "<a href="1">$textovisible</a>", $CadenaTexto); print $CadenaTexto; } hiperlink($blah, "pulsa aqui"); // devuelve //<A href="http://www.ignside.net">pulsa aqu i</A> ?>
  • 87. JuanMartínez López 87 ¿ Desventajas ?  PHP consume mas recursos (y por tanto es ligeramente mas lento) llamando y ejecutando una función que ejecutando código que encuentra en linea, embebido en el script. Por eso no tiene sentido usar funciones salvo que efectivamente vayas a utilizar esa porción de código varias veces.
  • 88. JuanMartínez López 88 Los Formularios  Es el mecanismos por el cual podemos manipular datos de forma ordenada dentro de una aplicación web.  El lenguaje de PHP proporciona una manera muy sencillas para manejar los formularios.  Los Formularios no forman parte de PHP, sino del lenguaje estándar de Internet, HTML, pero como éstos van a aparecer muchas veces durante el curso, vamos a dedicar esta líneas . Lo que viene a continuación es HTML y no PHP.
  • 89. JuanMartínez López 89  Todo formulario comienza con la etiqueta <FORM ACTION="lo_que_sea.php" METHOD="post/get"> .  Con ACTION indicamos el script que va procesar la información que recogemos en el formulario, mientras que METHOD nos indica si el usuario del formulario va ha enviar datos (post) o recogerlos (get). La etiqueta </FORM> indica el final del formulario.
  • 90. JuanMartínez López 90 Elementos de un formularios  Cuadro de texto: <input type="text" name="nombre" size="20" value="jose">  Cuadro de texto con barras de desplazamiento: <textarea rows="5" name="descripcion" cols="20">Es de color rojo</textarea>  Casilla de verificación: <input type="checkbox" name="cambiar" value="ON">  Botón de opción: <input type="radio" value="azul" checked name="color">  Menú desplegable: <select size=“1” class="codigo"><select size="1" name="dia"> <option selected value="lunes">lunes</option> <option>martes</option> <option value="miercoles">miercoles</option> </select>
  • 91. JuanMartínez López 91  Boton de comando:  <input type="submit" value="enviar" name="enviar">  Campo oculto:  <input type="hidden" name="edad" value="55"> Este último tipo de campo resulta especialmente útil cuando que remos pasar datos ocultos en un formulario. Elementos de un formularios
  • 92. JuanMartínez López 92 El method GET y el POST  GET Muestra las informaciones que estan siendo enviada por un formulario en la barra de direccion.  Post. No muestra las informaciones que esta siendo enviada en la barra de direccion.
  • 93. JuanMartínez López 93 Ejemplo de un formulario <form action=“amigo.php” METHOD= “GET”> Su nombre:<input type=“text” name=“nombre”<br> Su apellido:<input type=“text” name=“apellidos”<br> <input type= submit value=“Enviar”> </form>
  • 94. JuanMartínez López 94 Ejemplo 2 <HTML> <BODY> <FORM METHOD="post" ACTION="lee.php"> <input type="hidden" name="edad" value="35"> <p>Tu nombre <input type="text" name="nombre" size="30"></p> <p>Tu sistema favorito <select size="1" name="sistema"> <option selected value="Linux">Linux</option> <option value="Unix">Unix</option> <option value="Macintosh">Macintosh</option> <option value=&qmargin-left: 75"><option value="Windows">Windows</option> </select></p> <p>¿Te gusta PHP ? <input type="checkbox" name=“programa" value="ON"></p> <p>¿Cual es tu sexo?</p> <blockquote> <p>Hombre<input type="radio" value="hombre" checked name="sexo"></p> <p>Mujer <input type="radio" name="sexo" value="mujer"></p>
  • 95. JuanMartínez López 95 Recibir datos de matrices personalizadas  PHP permite organizar los datos que obtenemos de un formulario ens propias matrices personalizada
  • 96. JuanMartínez López 96 EJEMPLO <html> <body> <FORM METHOD="POST" ACTION="phpprueba.php"> Cual es tu nombre? <INPUT NAME="texto[nombre]" Type="Text"> <br> <br> CUAL ES TU COLOR FAVORITO? <INPUT NAME="texto[color]" Type="text"> <br> <br> <input type=submit Value=Enviar> </form> </body> </html>
  • 97. JuanMartínez López 97 EJEMPLO 2 <?php echo "su nombre es..."; $text = $_POST['texto']; echo $text['nombre'], "<br>"; ?> Su color Favorito es <?php $text = $_POST['texto']; echo $text['color']. "<br>"; ?>
  • 98. JuanMartínez López 98 Aplicaciones Web en una sola Pagina  La mayoria de las aplicaciones de formularios cuenta con dos pagina una que recibe y la otra que envia. Es decir las paginas de html que recopilaban los datos y las de php que los recibian  Pero si usamos los mismo script en la misma pagina podemos ejecutar ambas opciones en la misma pagina. Veamos
  • 99. JuanMartínez López 99 ejemplo <?PHP if(isset($_POST["nombre"])){ ?> <h1>Uso de Cuadro de texto</h1> <?php echo $_POST["nombre"]; $clave = $_REQUEST[‘clave’]; print ($clave); } else { ?> <FORM METHOD="POST"> Cual es tu Nombre? <INPUT NAME="nombre" TYPE="TEXT"> Contraseña: <INPUT TYPE="password" NAME="clave"> <BR><BR> <INPUT TYPE=SUBMIT VALUE=Enviar> </form> <?php } ?>
  • 100. JuanMartínez López 100 Funciones Empecemos con el ejemplo más difícil y el causante de que tuviera que programar estas funciones. <SELECT> Crear elementos de selección <select></select> Con php es muy habitual trabajar con arrays, ya sea con datos que nos proporcione una consulta SQL o simples valores. Veamos un ejemplo en el que queremos mostrar un <select> para que el usuario seleccione su rango de edad: <select name=’edad’> <option value=0>Seleccione</option> <option value=1>Entre 0-18</option> <option value=2>Entre 19-30</option> <option value=3>Entre 31-50</option> <option value=4>Más de 50</option> <select/>
  • 101. JuanMartínez López 101 La función que nos salvará la vida es: frm_select($name, $arr_txt, $arr_vals, $default='', $extra_tag='') $name = Nombre del elemento del formulario $arr_txt = Array con los textos a mostrar http://www.distintiva.com/jose/_perf_form jose [arroba] distintiva [dot] com $arr_vals = Array con los valores asociados a cada texto $default= [opcional] si se indica el valor aparecerá preseleccionado dicha opción $extra_tag= [opcional] por si necesitamos incluir información adicional al select, como por ejemplo $extra_tag=” class=cssazul ” o $extra_tag=” onChange=alert()”
  • 102. JuanMartínez López 102 Ejemplo: $arr_txt=array(‘españa’, ‘portugal’, ‘francia’); $arr_vals=array(‘ES’, ‘PT’, FR’); <?=frm_select (‘paises’, $arr_txt, $arr_vals) ?> De esta forma cualquier modificación sólo hay que hacerla en los arrays sin alterar la parte visual. A veces es conveniente conservar el valor de un campo del formulario entre llamadas o posts del mismo por ejemplo cuando estamos validando entradas y hay que volver al formulario para que rellene algún campo requerido
  • 103. JuanMartínez López 103 Para hacer esto de forma sencilla tan solo tenemos que usar el parámetro $default de la siguiente forma.: <?=frm_select (‘paises’, $arr_txt, $arr_vals, $_POST[‘paises’]) ? > (o $_GET dependiendo el método que usemos en nuestro formulario) <SELECT> (tipo lista con varios elementos visibles) Funciona exactamente igual que el anterior pero en este caso tenemos la típica lista de selección con scroll mostrando X elementos. La función es: frm_list($name,$size, $arr_txt, $arr_vals, $default='', $extra_tag='') En este caso el nuevo parámetro es $size que indica cuántos elementos serán mostrados visiblemente en la lista. 829 317-0468 97-7559
  • 104. JuanMartínez López 104 Otras funciones <SELECT> (tipo lista con varios elementos visibles y con multiselección) Igual que el ejemplo anterior pero permitimos que el usuario seleccione uno o varios elementos de la lista con el CTRL+Click o SHIFT+Click La función es: frm_list_multi($name, $size, $arr_txt, $arr_vals, $default='', $extra_tag='') ... Y también tenemos funciones correspondientes para los demás elementos de formulario aprovechando la capacidad de mantener el valor entre posts.
  • 105. JuanMartínez López 105 <Checkboxes> La función es: frm_check($name, $ck_val, $var_in='', $extra_tag='') $name= Nombre del campo $ck_val= Valor que se enviará cuando esté seleccionado $var_in=[opcional] Funciona como el $default y permitirá que se muestre checkeado Ejemplo: Se muestra un checkbox que se mantiene seleccionado entre posts del formulario <?= frm_check(‘fumador’, ‘SI’, $_POST[‘fumador’])?>
  • 106. JuanMartínez López 106 <Radio>  En este caso para mostrar radiobuttons se hace exactamente como el caso anterior  pero con la siguiente función:  frm_radio($name, $val, $var_in='', $extra_tag=''
  • 107. JuanMartínez López 107 <INPUT> Permite mostrar cuadros de texto con las ventajas que voy ofreciendo en todas las funciones y para ello hay que usar: frm_text($name, $val, $size, $max_length, $extra_tag='') $name = Nombre del campo $val = Valor o texto que se mostrará (funciona como el $default de las otras funciones) $size = Tamaño del campo de texto $max_length = Longitud máxima permitida
  • 108. JuanMartínez López 108  PASSWORD Contraseña: <INPUT TYPE="password" NAME="clave"> <?PHP $clave = $_REQUEST[‘clave’]; print ($clave); ?>
  • 109. JuanMartínez López 109 <PASSWORD>  El caso es exactamente como el anterior pero esta vez oculta el texto con asteriscos  frm_password($name, $val, $size, $max_length, $extra_tag='')
  • 110. JuanMartínez López 110 Ejercicios1 de formularios  Hacer un formulario que contenga todos los controles y incluyendo un control oculto que sea igual al nombre de programador.
  • 111. JuanMartínez López 111 Enviar un Archivo a través de un formularios.  HTML NOS PERMITEN CARGAR archivoS EN EL SERVIDOR, Y PHP NOS AYUDARA EN ESTA TAREA.  PARA ENVIAR UN ARCHIVO AL SERVIDOR, TENDREMOS QUE UTILIZAR UN FORMULARIOS MULTIPLE
  • 112. JuanMartínez López 112 PASO PARA CREAR UN FORMULARIO MULTIPLE  EL ATRIBUTO ENCTYPE DEL ELEMENTO HTML <form>:  Sintaxis <form ENCTYPE=“multipart/form-data” ACTION=“nombre.php” method=“POST”> Enviar este archivo: <INPUT NAME=“archivo” TYPE=“file”> </form> Note que estamos llamando al control “archivo” Sera el nombre por el cual accederemos al aechivos que se envie.
  • 113. JuanMartínez López 113 La matriz $_FILES  Esta es una matriz super global, eso quierre decir que puede ser usada en cualquier parte del codigo..  Cuando usamos controles de archivos nos necesitamos las matrizes $_POST, $_GET Y $_REQUEST
  • 114. JuanMartínez López 114 EJEMPLO <FORM ENCTYPE="multipart/form-data" ACTION=“archivo2.php" METHOD="post"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="100000"> <p><b>Archivo a descargar<b><br> <INPUT type="file" name="archivo" size="35"></p> <p><INPUT type="submit" name="enviar" value="Aceptar"></p> </FORM>
  • 115. JuanMartínez López 115 Subida de archivos al servidor ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. file_uploads = On ; Temporary directory for HTTP uploaded files (will use ; system default if not specified). ;upload_tmp_dir = ; Maximum allowed size for uploaded files. upload_max_filesize = 2M php.ini formulario <INPUT TYPE=”HIDDEN” NAME=”MAX_FILE_SIZE” VALUE='102400'> <INPUT TYPE=”FILE” NAME="archivo">
  • 116. JuanMartínez López 116 Subida de archivos al servidor <INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="102400"> <INPUT TYPE="FILE" SIZE="44" NAME="imagen">  La variable $_FILES contiene toda la información del archivo subido: $_FILES['imagen']['name'] Nombre original del archivo en la máquina cliente $_FILES['imagen']['type'] Tipo mime del archivo. Por ejemplo, "image/gif" $_FILES['imagen']['size'] Tamaño en bytes del archivo subido $_FILES['imagen']['tmp_name'] Nombre del archivo temporal en el que se almacena el archivo subido en el servidor $_FILES['imagen’]['error'] Código de error asociado al archivo subido
  • 117. JuanMartínez López 117 Funciones de acceso a archivos  En esta lección sólo vamos a las funciones básicas, abrir (fopen), cerrar (fclose), leer (fgets) y escribir (fputs). Estas cuatro nos solventaran la mayoria de problemas (fputs). Estas cuatro nos solventaran la mayoria de problemas que nos surgan con respecto al acceso a archivos.
  • 118. JuanMartínez López 118 fopen (archivo, modo)  Con esta función abrimos un archivo, bien sea local o una dirección de internet (http:// o ftp://).  La función fopen nos devuelve un valor numérico (indicador de archivo) de tipo integer que nos ser virará para hacer referencia al archivo abierto.
  • 119. JuanMartínez López 119 Con fopen podemos abrir un archivo de los siguientes modos  r solo lectura  r+ lectura y escritura  w solo escritura. Sino existe el archivo lo crea, si ya existe lo re-escribe  w+ lectura y escritura. Sino existe el archivo lo crea, si ya existe le re-escribe  a solo lectura. Sino existe el archivo lo crea, si ya existe empieza a escribir al final del archivo.  a+ lectura y escritura. Sino existe el archivo lo crea, si ya existe empieza a escribir al final del archivo.
  • 120. JuanMartínez López 120 Ejemplo de fopen() <?PHP if ( ! fopen("http://www.ciberaula.com/", "r")) { echo "El archivo no se puede abrirn"; exit; } ?> Abriendo un archivo con el protocolo hhtp. Los modos r, r+ , w , w+ colocan el puntero de lectura/escritura a principio del archivo, los modos a , a+ lo colocan al final.
  • 121. JuanMartínez López 121 fgets (indicador_archivo, longitud)  La función fgets nos devuelve una cadena con la longitud especifica del archivo al que apunta el indicador de archivo. <?PHP $archivo = fopen("dlass="codigo">$archivo = fopen("data.txt" , "r"); if ($archivo) { while (!feof($archivo)) { $linea = fgets($archivo, 255); echo $linea; } } fclose ($archivo) ?> La función feof devuelve TRUE si puntero de lectura/escritura se encuetra al final del archivo, y FALSE en caso contrario.
  • 122. JuanMartínez López 122 fputs (indicador_archivo, cadena)  La función fputs escribe una cadena en el archivo indicado. Para escribir en una archivo este debe haber sido previamente abierto. La función fputs devuelve TRUE si se ha escrito con éxito, en caso contrario devuelve FALSE. <?PHP $archivo = fopen("data.txt" , "w"); if ($archivo) { fputs ($archivo, "Hola Mundo"); } fclose ($archivo); ?>
  • 123. JuanMartínez López 123 file_exists (archivo)  Esta función devuelve TRUE si el archivo especificado existe, y FALSE en caso contrario. <?PHP if (file_exists("data.txt")) { echo "El archivo existe"; } else { echo "El archivo NO existe"; } ?>
  • 124. JuanMartínez López 124 copy (origen, destino)  La función copy : copia un archivo de un lugar (origen) a otro (destino), devuelve TRUE si la copia a tenido éxito y FALSE en caso contrario. <?PHP if (copy("data.txt", "/tmp/data.txt")) { echo "El archivo ha sido copiado con éxito"; } else { echo "El archivo NO se copio" style="margin-left: 50">echo "El archivo NO se ha podido copiar"; } ?>
  • 125. JuanMartínez López 125 Validación de datos que se envían en los formularios.  Programa ejemplo
  • 126. JuanMartínez López 126 TRABAJANDO CON CLASE Y OBJETOS  LA POO se diseño para proyectos de programacion grandes. Sin embargo si va a seguir usando aplicaciones grandes en php es aconsejable que domine la tecnica de OOP.
  • 127. JuanMartínez López 127 Que son los objetos  Es donde se agrupa un conjunto de funciones también los datos que estas funciones necesitaría  Aglutinar las funciones y los datos nos permitirá seccionar mucho mas los scripts. Por ejemplo, un objeto podría controlar lo que se muestra por pantalla, otra validar los datos, otro se encargaría de la gestión de la base de datos.
  • 128. JuanMartínez López 128 Creando una clase  Es un conjunto de variables y funciones en termino de la POO, tambien propiedades y metodos.  Una clase es un tipo y generamos objetos de ese tipo y lo almacenamos en variables de PHP  Sintaxis class estudiante{.......}
  • 129. JuanMartínez López 129 ejemplo class carro { var $name; Function set_name($text) { $this->name = $text; } Function get_name() { return $this->name; } } $honda = new carro; $honda->set_name(“accord”); Echo “el modelo de su nuevo carro es”,$honda->get_name(), “.”; ?> Creamos la clases llamada carro Funciones dentro de una clase son los métodos Name es la variable interna llamada en POO propiedad New crea objeto de esta clase Ejemplo
  • 130. JuanMartínez López 130 La sentencia var  Esta sentencia se usa para de clarar las variables interna de una clase.  Sintaxis Class socio { var $nombre; } Nota para acceder a esta propieda simplemente como nombre: Esto ayudara a su proceso interno.
  • 131. JuanMartínez López 131 Ejemplo <?php class my_class { var $value; } $a = new my_class; $a->my_value = 5; $b = $a; $b->my_value = 10; echo $a->my_value; ?>
  • 132. JuanMartínez López 132 Ejemplo de clase class conectar{ var $cn; var $res; var $status; function conectar(){ mysql_connect ("localhost","root",""); mysql_select_db ("carrito"); $this->status=true; } function Ejecutar_sql($sql){ if($this->status){ $this->res = mysql_query ($sql) or die ("SQL incorrecto : $sql"); return true; }else{ return false; } } } ?> Aquí vemos como podemos utilizar una clases para conectarnos a ua base de datos y realizar una consulta
  • 133. JuanMartínez López 133 Los metodos set_name y get_name  El metodo set_name: se usa para especificar el nombre del objeto. Tomando en cuenta el ejemplo de la diapositiva 127. . Function set_name($text) para acceder al nombre paso a set_name en la propiedad name, usaremos una variable especial $this que apunta a la clase actual, para eso usaremos operador flecha para`que haga referencia a los datos de la propiedad. $this->name =$text; .
  • 134. JuanMartínez López 134 Como se crean los objetos dentro de una clase.  La sentencia new se usa cuando se quiere crear un objeto de una clase.  Sintaxis $civic= new carro; $civic->set_name(“sedan”); Con el operador -> podremos acceder tanto a los metodos de un objetos como a su propiedad.
  • 135. JuanMartínez López 135 Los metodos de acceso  Se usa para especificar especificar los valores de la propiedad , ya que podremos restringir el tipo de datos almacenaremos en la propiedad.  Ejemplo Function set_name($text) { If (strlen($text) <= 50){ $this->name =$text; } }
  • 136. JuanMartínez López 136 Ejercicios  Haga una clase llamada celular donde se creara un nuevo objeto de esta clase llamdo motorola y su modelo sera V3.  La salida de este escript sera la siguiente. su celular es motorola y es el modelo V3
  • 137. JuanMartínez López 137 Restringir acceso a la propiedades y metodos  PHP posee una serie de modificadores de acceso. -public accesible para todos -private accesible de la misma clase - Public accesible de la misma clase y de la clase derivadas de esas clase. Nota. Por defecto todos los metodos y propiedades se declaran como publicas lo que implica que no tendremos restrinciones a la hora de acceder a ellos.
  • 138. JuanMartínez López 138 Ejemplo <?php class computadora { private $name; fuction set_name($text) ($this->name = $text;} fuction get_name() { return $this->name;} } $dell = new computadora; $dell ->set name(“Inspiron”); Echo “ el nombre de su nueva computadora del es”, $dell->name” ?> Cuando quiera acceder a esta propiedad como $dell->name recibira un mensaje de error
  • 139. JuanMartínez López 139 Inicializa los objetos constructores  En php un objeto constructor es un metodo especial declarado con la sintanxis  nombre__construct (son dos guiones bajo seguido por la palabra reservada construct  cuando creamos este objeto especial debemos de crear una sintaxis especial para pasarle informacion al constructor.
  • 140. JuanMartínez López 140 ejemplo <?php Class animal { var $name; function __construct($text){ $this ->name =$text; } Function set_name($text) } Function get_name() { return $this->name; } } $lion = new animal(“leo”); Echo “El nuevo nombre de su leon es “, $lion->get_name(); ?>
  • 141. JuanMartínez López 141 ejemplo2 <?php class base_class { var $var1; function base_class ($value) { $this->var1 = $value; } function calc_pow ($exp) { return pow ($this->var1, $exp); } } class new_class extends base_class { var $var2; function new_class ($value) { $this->var2 = $value; $this->var1 = $value * 10; } } $obj = new new_class (10); echo $obj->calc_pow (4); ?>
  • 142. JuanMartínez López 142 Basar una clase en otra (Herencia)  La Herencia es el metodo que nos permite escribir todos metodos de una clase existente a una clase nueva.  Al usar usar la herencias,propiedades de la clase base tambien perteneceran al conjunto de metodos y clases derivadas de ella  Luego podremos personalizar las clases derivadas agregando los metodos y propiedades especifico para esa clase
  • 143. JuanMartínez López 143 Planteamiento  Tenemos una clase llamada Vehiculo que tiene implementado todo tipo de metodo para cualquier tipo de tarea relacionada como: color, arrancar, acelerar, girar y parar. Ahora queremos crear otras class que sean tipos de vehiculos: jeepeta, guagua, motores y otros.mas
  • 144. JuanMartínez López 144 ejemplo <?php class $vehiculo { var $carro; Function set_name($text){ $this->carro=$text; } Function get_name(){ Return $this->carro; } } class honda extends vehiculo { var $carro; Fuction alquilado() { echo “! “, $this->carro, “ esta alquilado <br>”; } } Echo “Su nuevo carro honda...<br>”; $civic = new honda; $civic->set_name(“Civic 2003”); $civic->alquilado (); ?> Esta cláusula se utiliza para derivar una clase desde otra. Indicamos la clase va heredar, indicando de que clase va heredaremos
  • 145. JuanMartínez López 145 Sobrecargar metodos  Esto ocurre si queremos derivar una clase nueva desde una clase base y necesitamos usar un metodo en la nueva clase con el mismo nombre que uno de los metodos de la clase base.  Porque el metodo de la clase base, y los objeto de la nueva clase utilizaran el nuevo metodo en lugar del precedente de la clase base.
  • 146. JuanMartínez López 146 Ejemplo <?php class animal { var $nombre; function set_name($text) { $this->nombre =$text; } function get_name() { return $this->nombre; } } class Leon extends animal { var $name; function rugir() { echo "! ",$this->name, "esta rugiendo <br>"; } function set_name($text) { $this->name = strtoupper($text); } } echo " Creando su nuevo felino...<br>"; $leon = new leon; $leon->set_name ("kiko "); $leon->rugir(); ?>
  • 147. JuanMartínez López 147 Ejercicio Que imprime este script <?php class a { var $c=5; function a ($pass) { $this->c = $pass; } function print_data() { echo $this->$c; } } $a = new a(10); $a->print_data(); ?>
  • 148. JuanMartínez López 148 Que imprime este programa <?php error_reporting(E_ALL); class a { var $c; function a() { $this->c = 10; } } class b extends a { function print_a() { echo $this->c; } } $b = new b; $b->print_a(); ?>
  • 149. JuanMartínez López 149 Ejercicio  Cree una clase llamada computadora esta tendra una variable llamada labtop  A la clase computadora le sacara una clases llamada estatu  En la clase statu tendra una variable llamda labtop y una funcion llamada estatu donde tu imprime que la labtop esta reparada.  Imprime el letrero “su computadora labtop dell inspiron esta reparada.
  • 150. JuanMartínez López 150 Las Cookies  Las Cookies son un mecanismo que sirve para almacenar datos en el navegador del usuario remoto, para así poder identificar al usuario cuando vuelva  Se pueden poner cookies usando la función setcookies().  Las Cookies son parte de la cabecera HTTP, por tanto la función setcookie() debe ser llamada antes de que se produzca cualquier salida al navegador
  • 151. JuanMartínez López 151 sintaxis  setcookie(nombre,valor,expiracion,ruta,dominio,segura) Ejemplo <setcookie(“message”, “sin problema.”); ?> <html> <head><title> genera una cookie</title> <body> <h1>generar una cookie </h1> se ha generado una cooke! Mire en <A HREF=“cook.php”>cook.php</a> ahora </center> </body> </html>
  • 152. JuanMartínez López 152 Parametro de una cookie  Nombre el nombre de una cookie  Valor – valor de la cookie. Este valor se almacenara en el ordenador de cliente. (no es prudente almacenar informacion importante.  Expiracion- el tiempo en que expirara una cookie.(el tiempo se expresa en segundo)  Ruta – la ruta en el servidor donde estara disponible la cookie
  • 153. JuanMartínez López 153  Dominio- el dominio para el que la cookie es valida.  Segura – indica que la cookie se trasmitira a traves de una conexion segura HTTPS. Cuando tiene el valor 1, la cookie solo se enviara en que caso de que exista una conexion de esa caracteristicas. El valor por defecto es cero.(0).
  • 154. JuanMartínez López 154 Leer una Cookies  Despue de general una cookies podemos acceder a ella en un momento posterior acudiendo a la matriz $_COOKIES  SINTAXIS $_COOKIE [“message”].
  • 155. JuanMartínez López 155 ejemplo La cookie dice: <?php if (isset($_COOKIE[“message”])){ echo $_COOKIE[“message”]; } ?>
  • 156. JuanMartínez López 156 Los nombres de las cookie  Tambien se pueden declarar como nombre de matrices y estaran disponible como matrices en nuestro scripts de php.  Por ejemplo. setcookie(“cookie[uno]”, “Sin”); setcookie(“cookie[dos]”, “Problemas”); setcookie(“cookie[tres]”, “hoy.”);
  • 157. JuanMartínez López 157 Continuacion  Ahora que se genero esta cookies, las leeremos la proximas vez que el navegador nos envien los datos de esta forma: If (isset($_COOKIE[“cookie”])) { Foreach($_COOKIE[“cookie”] as value) { echo “$value <br>”; } }
  • 158. JuanMartínez López 158 Periodo de expiracion de las cookie  Este parametro es usado para determinar que tiempo existira una cookie en el ordenador de un usuario.  La hora almacenada en este parametro esta en formato de UNIX en segundo. Ejemplo <?php setcookie(“micookie”, $value, time()+3600); ?>
  • 159. JuanMartínez López 159 Ejemplo  <?php setcookie(“message”, “no tendra problema en 10 dias.”, time() +60*60*24*10); ?> <html> <head><title>configura una cookie</title></head> <body> <h1>una cookie</h1> ! La cookie expirara en 10 dias, miren <A HREF=“cook.php”>cook.php</a> Ahora </body> </html>
  • 160. JuanMartínez López 160 Eliminar una cookie  Para eliminar una cookie solo basta con establecer su valor a “ ” y llamar a setcookie con los mismos parametros que genero dicha cookies.  Sintaxis <?php setcookie (“message”, “ “); ?> Es recomendado asegurarnos de que la fecha de expiracion se ha cumplido
  • 161. JuanMartínez López 161 Ejemplo  <?php setcookie(“message”,” “,time() – 3600); ?> <html> <head><title>eliminar cookie</title></head> <body> <center> <h1>eliminar una cookie</h1> la cookie se ha eliminado. Mire en <a href=“cook.php”>cook.php</a> </center> </body> </html> Cuando Carguemos la pagina de nuevo, el script cook.php ya no sera capaz de encontrar la cookie
  • 162. JuanMartínez López 162 Trabajando con sesiones  Las sesiones se diseñaron para almacenar datos en el servidor. Cada usuario recibe una cookie con su identificador de sesion, lo que siginifica que PHP sera capaz de reenviar todos los datos correspondientes a la sesion de cada usuario automaticamente, incluso a traves de multiples acceso a pagina.
  • 163. JuanMartínez López 163 Session_start()  Esta claupsula da inicio a la creacion de una sesion,  Sintaxis session_start();  Para almacenar datos dentro de una sesion se utiliza la matriz global de $_session  Sintaxis $_SESSION[“NOMBRE”] = “VALOR”
  • 164. JuanMartínez López 164 EJEMPLO  session_start(); $_SESSION[“color”] = “verde”; A partir de este momento, cualquier otro acceso a pagina (ya sea la misma u otra pagina distinta), podremos acceder a los datos bajo la clave “color”, si accedemos a $_SESSION de nuevo. session_start(); $color = $_SESSION[“color”];
  • 165. JuanMartínez López 165 Php.ini  El comportamiento de una sesion esta determinado por la configuracion que se detalla en este archivo de configuracion  session,save_path “*/tmp”  Session.name “PHPSESSID”  Session. Save_handler “file”  Session. Auto_start “0”  Session.cache_expire “180”  Entre otros
  • 166. JuanMartínez López 166 Alamacenando datos en sesiones  Ejemplo <html> <body> <?php session_start(); $_SESSION[“temperatura”] = “30”; ?> Se almaceno la temperatura con el valor de 30 grado <br> Para leer la temperatura en una nueva pagina <a href =“leersesion.php”> Haga clic aqui</a> </body></html>
  • 167. JuanMartínez López 167 Leer datos de una sesion  <?php session_star(); if(isset($_SESSION[“temperatura”])){ echo “Bienvenido su temperatura es”, $_SESSION[“temperatura”]; ?> Leersession.php
  • 168. JuanMartínez López 168 Creando un contador de visita  Primer intento! <html> <body> Bienvenido , Ha estado aqui <?php $count++; echo $count; ?> Veces anteriormente. </body> </html>
  • 169. JuanMartínez López 169 Contador de visita corregido  Bienvenido. Ha estado aqui <?php session_start(); if(isset($_SESSIOn[“contador’])){ $_SESSION[“contador”] = 0; }else { $_SESSION[contador]++; } Echo $_SESSION[“contador”]; ?> Veces anteriormente.
  • 170. JuanMartínez López 170 Uso de sesiones sin cookie  Para poder guardar datos en una sesion sin cookie lo haremos utilizando la funcion session_id en una variable oculta llamada PHPESSID.  EJEMPLO
  • 171. JuanMartínez López 171  <?PHP session_start(); $_SESSION[“temperatura”]=“30”; ?> Se guardo la temperatura <br> Para leer la temperatura en una pagina haga click en enviar. <br> <FORM ACTION =“session4.php” METHOD=“POST”> <INPUT TYPE =“HIDDEN” NAME =“PHPSESSID” VALUE=“ <?PHP echo session_id(); ?> “> < INPUT TYPE =“SUBMIT” VALUE=“Enviar”> </form> </body>
  • 172. JuanMartínez López 172  Simple PHP Template Class The purpose of this tutorial is to show you how to implement a simple class to handle page templates. It can be extended in any way you wish.  The Class (template.class.php) <? class Template { public $template; function load($filepath) { $this->template = file_get_contents($filepath); } function replace($var, $content) { $this->template = str_replace("#$var#", $content, $this- >template); } function publish() { eval("?>".$this->template."<?"); } } ?>
  • 173. JuanMartínez López 173 The Template File (design.html)  This file will contain the design of your web site and the blank fields that will be merged with content data.  <html> <head> <title>#title#</title> </head> <body> <h3>Hello #name#!</h3> <p>The time is: #datetime#</p> <? echo "<p>Embedded PHP works too!</p>"; ?> </body> </html>
  • 174. JuanMartínez López 174  Usage (index.php)  Now we will create a script that load the template and use the class to merge the data.  <? include "template.class.php";  $template = new Template; $template->load("design.html"); $template->replace("title", "My Template Class"); $template->replace("name", "William"); $template->replace("datetime", date("m/d/y")); $template->publish(); ?>
  • 175. JuanMartínez López 175  When you run the above script, index.php, it will output the following:  <html> <head> <title>My Template Class</title> </head> <body> <h3>Hello William!</h3> <p>The time is: 03/10/04</p> <p>Embedded PHP works too!</p> </body> </html>  This code, as you can see, is very simple. It supports embedding PHP into the original template file (design.html). You could easily extend it to pull data from a database such as MySQL
  • 176. JuanMartínez López 176 Manipulando correo con php  PHP posee las herramientas necesarias para poder enviar correo electronico.  Para poder enviar un correo electronico debemos de configurar el archivo php.ini. Nombre Predeterminado Modificable SMTP "localhost" PHP_INI_ALL smtp_port "25" PHP_INI_ALL sendmail_from NULL PHP_INI_ALL sendmail_path DEFAULT_SENDMAIL_PATH PHP_INI_SYSTEM
  • 177. JuanMartínez López 177 Tabla completa Nombre Default Descripción editable SMTP "localhos t" Windows only: The DNS name or IP address of the SMTP server PHP_INI_ALL smtp_port "25" Windows only: The SMTP port number. Available since PHP 4.3 PHP_INI_ALL sendmail_fro m NULL Windows only: Specifies the "from" address to be used in email sent from PHP PHP_INI_ALL sendmail_pat h NULL Unix systems only: Specifies where the sendmail program can be found (usually /usr/sbin/sendmail or /usr/lib/sendmail) PHP_INI_SYST EM
  • 178. JuanMartínez López 178 La función Mail  Esta funcion es utilizada para enviar correo electronico desde un script.  Sintaxis. mail ( string para, string asunto, string mensaje [, string cabeceras_adicionales [, string parametros_adicionales]]).
  • 179. JuanMartínez López 179 ejemplo <?php $to = “picalongoa@yahoo.com"; $subject = “clase php"; $message = “Adelante Houston desde el itla."; $from = “juan5654@gmail.com"; $headers = "From: $from"; mail($to,$subject,$message,$headers);echo "Mail Sent."; ?>
  • 180. JuanMartínez López 180 Ejemplo 2. de mail() <html> <head><title>Envio de E-mail</title></head> <body> <center> <h1>envio de E-mail</h1> <br> <FORM METHOD=“POST” ACTION=“prumail.php”> Escriba el mesaje y presion enviar <br> <TEXTAREA NAME=“mensaje” COLS=“50” ROWS=“6”></TEXTAREA> <BR> <BR> <INPUT TYPE =“SUBMIT” VALUE =“Envar”> </form></center> <body><html>
  • 181. JuanMartínez López 181 Se envio un correo electronico <br> <?php $resultado = mail(“chuki@hotmail.com”, “correo electronico de la web”, $_REQUEST[“mensaje”]); ?>
  • 182. JuanMartínez López 182 Creacion de un formulario de retro-alimentacion tu sitio EJEMPLO Como funciona. 1- determina si se ha llenado el correo 2- el le mostrara la pagina como si fuera la primera vez 3- si esta lleno envia un e-mail desde el formulario 4 Cuando presiona el boton enviar el recarga la agina para deerminar si se ha llenado el formulario si es asi envia un correo
  • 183. JuanMartínez López 183 Base de datos Una de las opciones más útiles de PHP es la posibilidad de gestionar bases de datos en ordenadores remotos.  Existen multitud de programas de servidores de bases de datos y PHP dispone de funciones para el manejo de muchos de ellos tales como:
  • 184. JuanMartínez López 184 Bloque para establecer una conexion <?php $mysql_server=“localhost”; $mysql_login=“root”; $mysql_pass=“”; $link = mysql_connect ($mysql_server, $mysql_login, $mysql_pass) { or die ("Could not connect"); } print ("Connected successfully"); mysql_close ($link); ?>
  • 185. JuanMartínez López 185 Creacion de una base de datos <?php $query = “CREATE DATABASE prueba”; mysql_query($query); ?>