Descubriendo PHP. Taller de PHP CaFeCONF 2005 Sergio Cayuqueo sergio@linuxv.com.ar



Documentos relacionados
Desarrollo de sitios web con PHP y MySQL

Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR

HTML, PHP y bases de datos

Formularios HTML. Desarrollo de Aplicaciones Web Departamento Informática y Sistemas Universidad de Murcia Curso 2013/2014

Los formularios irán delimitados por las etiquetas <FORM> y </FORM>, la cual tiene dos parámetros:

A continuación se confeccionara un formulario para el ingreso de un nombre y un botón para el envío del dato ingresado al servidor:

PÁGINAS DINÁMICAS WEB CON PHP. Unidad 4 Aplicaciones Web

PHP y MySQL. Aplicaciones Web: PHP y base de datos MySQL (décima parte) Autor: Johnny Zulca Mamani

Curso de PHP. Acceso a bases de datos MySQL en PHP

PHP. Introducción (1) Introducción (3) Introducción (2) PHP 1

APRENDE A CREAR UNA PÁGINA WEB CON HTML

Tomar información por pantalla con JavaScript

TEMA 1.- Conceptos Generales y Entorno de Trabajo Objetivo

CURSO ONLINE INSTALACIÓN Y ADMINISTRACIÓN DE CENTRALITAS VoIP ASTERISK

PROCESO DE INSTALACIÓN Y CONFIGURACIÓN DE APACHE, PHP Y MySQL

CapÍtulo 3: Manejo de Forms.

PHP Básico. PHP para principiantes

Tema 3. Introducción a programas en el lado del servidor

2- Formularios y JavaScript Course: Developing web- based applica=ons

MAESTRO DE PHP PHP NIVEL 1

Introducción. PHP, es un lenguaje orientado a conexiones entre páginas Web y servidores donde se almacenan toda clase de Bases de Datos.

MySQL y Sesiones en PHP. Área de Ingeniería Telemática

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

PHP LUIS JOSÉ SÁNCHEZ GONZÁLEZ

La presente documentación va a explicar detalladamente la instalación de un entorno de programación APACHE-PHP-MYSQL en Guadalinex 2004.

Programación PHP de bases de datos mysql

CURSO DE PROGRAMACIÓN PHP MySQL

Pedro A. Castillo Valdivieso Departamento ATC (ugr)

Práctica 6: Webs dinámicas

Aprender a desarrollar un sitio Web con PHP y MySQL Ejercicios prácticos y corregidos

INSTITUTO POLITÉCNICO NACIONAL WEB APPLICATION DEVELOPMENT. CIFUENTES ALVAREZ ALEJANDRO SIGFRIDO 3cm3 PROYECTO TERCER PARCIAL MI HOTMAIL CON JOOMLA

Práctica 02. Formularios

PRACTICA 1 PHP HOLA MUNDO. El comando de PHP para imprimir dentro de la página se llama echo. Nuestro programa "Hola Mundo" será entonces:

PHP y MySQL. Indice: - Envia de datos de formulario - Método de envio - La variable de interprete - Envio de archivo - Propiedades

Bases de Datos. Marta Elena Zorrilla Pantaleón. Rafael Duque Medina DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN

Juan José Taboada León Implantación de aplicaciones WEB IES San Sebastian Huelva 1

Índice: Tema Conexión con Bases de Datos

Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS

Introducción a PHP. * No es necesario declarar previamente las variables.

>> Instalación y Configuración de un Servidor WEB. >> HTML & PHP

ELABORACIÓN DE PÁGINAS WEB. CBTIS No. 02 ISC. RICARDO GARCÍA LÓPEZ

MySQL: Guía de Referencia

1. Servidor Web. (apache). 2. PHP. 3. Manejador de base de datos (mysql, postgress).

Contents. 1 Instalacion de Observium

Bloque IV: Usos avanzados

Taller de Desarrollo de Aplicaciones Web

Construcción de una aplicación web para crear un sistema de encuestas con la tecnología PHP y la base de datos MySQL.

Curso de PHP con MySQL Gratis

Sistema CRM 2.0 (Administración)

Partes del formulario

EUROPIO ENGINE LAB: FORMULARIOS WEB Y TABLAS HTML EN SOLO

PROGRAMACIÓN EN PHP. 1. Identificar las características y modalidad de programación bajo PHP.

HTML_QuickForm para el procesamiento de Formularios en PHP. Farid Alfredo Bielma Lopez.

Escribiendo el HTML. Un formulario se declara entre estos dos tags:

Programación de páginas web dinámicas con CGIs

Instalando el Apache

Introducción a PostgreSQL con PHP

FORMACIÓN ESPECIALIZADA EN HERRAMIENTAS Y LENGUAJES DE PROGRAMACIÓN WEB

PHP Y BASES DE DATOS. Introducción a SQL

Centro de Capacitación en Tecnologías de la Información

PHP y MySQL. Aplicaciones Web: programación PHP I (quinta parte) Autor: Johnny Zulca Mamani

Server side processing: Introducción a PHP. Área de Ingeniería Telemática

Instalación Básica De PHP Con Apache GRID Uniquindio

MANUAL PRÁCTICO DE PHP

MANUAL DE FORMULARIOS EN HOSTING

Programando con Pl/Python

Desarrollo PHP con Webmatrix

Tema 5. PHP. Contenido. Introducción

Laboratorio de Sistemas Departamento de Ingeniería en Sistemas de Información Universidad Tecnológica Nacional Facultad Regional Córdoba. Porque PHP?

Temario correspondiente al curso de: PHP Y MYSQL

Jorge García Ochoa de Aspuru -aka - e-ghost ESIDE Universidad de Deusto

WebSite Control Panel. Manual del usuario

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Unidad Didáctica 1 PREPARACIÓN DEL ENTORNO DE DESARROLLO

SQL INJECTION. Benitez, Marcelo Chinikailo, Cristian De la Cruz, Leonardo Klas, Julián Criptografía y Seguridad Informática.

Seminario 1: PHP. Índice. Objetivo HTML PHP Acceso a BD. Objetivo HTML PHP Acceso a BD MAQUINA2 MAQUINA1. Objetivo HTML PHP Acceso a BD

TALLER DE SQL INJECTION

BASES DE DATOS Y PHP. Índice. INTRODUCCIÓN Calendario de Prácticas. INTRODUCCIÓN Contacto INTRODUCCIÓN ACCESO A BASES DE DATOS PRÁCTICAS - PARTE B

Índice: Tema Aplicaciones basadas en Sesiones

Más sobre PHP. Francisco José Naranjo Abad

EXTENSIÓN DE UML PARA APLICACIONES WEB

Este tipo de situaciones son solventadas a partir de las variables de sesión.

INDICE Qué es SQLyog Instalación del programa...4

CONTROLES FORMULARIOS PRIMERA PARTE

MANUAL INSTALACION PLATAFORMA IE MODULO SERVIDOR

TUTORIAL SOBRE EXPRESIONES REGULARES EN JAVASCRIPT PARA VALIDACIÓN DE CAMPOS EN FORMULARIOS HTML:

Guía del Lenguaje de Programación PHP - CEF NAC

Conectar Flash con Access usando MDM Zinc

Formas de llevar a cabo un backup de una base de datos MySQL

[ Programación en PHP ]

La única regla que debe de tener presente siempre, es que cada etiqueta que abra <etiqueta> debe de cerrarla en el mismo orden < /etiqueta cerrada>.

INSTRUCTIVO DE INSTALACIÓN DE OMEKA 2.1.4

INSTALACIÓN Y CONFIGURACIÓN DE UN SERVIDOR DE CORREO EXIM 4.8 EN FEDORA 20 FRAYBA SERYEY OTALORA TORRES JOSE EDUARDO JAIMES BARRERA

PHP y MySQL. Indice: Switch Bucles For While do...while

Programación páginas web. Servidor (PHP)

Creando un Foro en PHP y Mysql

Funcionamiento del sistema de autentificación en PHP

Introducción al desarrollo web (idesweb)

Transcripción:

Descubriendo PHP Taller de PHP CaFeCONF 2005 Sergio Cayuqueo sergio@linuxv.com.ar

Que es PHP y por que conviene PHP: Hipertext Preprocessor Creación de sitios web dinámicos. Muy rápidamente. Desarrollo de proyectos grandes y complejos. Muy documentado Fácil de aprender. Soporte de múltiples servidores y sistemas de archivos Soporte de mas de 10 servidores de bases de datos Libre.

Instalar PHP Ubuntu / debian y derivados apt-get install php5 php5-mysql libapache2-modphp5 apache2 Mandriva urpmi php5-mysql apache2-mod_php5 Fedora yum install php php-devel php-pear php-mysql

Configurar Apache /etc/apache2/httpd.conf LoadModule php5_module lib/apache/libphp5.so DirectoryIndex index.html index.php index.html.var AddType application/x-httpd-php.php AddType application/x-httpd-php-source.phps phpinfo.php phpinfo();

PHP y HTML <HTML> <HEAD> <TITLE>Este es mi primer script en PHP</TITLE> </HEAD> <BODY> <? print ("Hola mundo"); </BODY> </HTML>

Sintaxis Básica : Variables variables.php $variable = "Hola mundo\n"; $Variable ="Chau\n"; // Esto es un comentario /* Esto es un comentario mas grande*/

Sintaxis Básica : Variables II Caracteres especiales \ Comillas \\ Barra invertida \n Nueva linea \t Tabulador Concatenar Variables $variable. $otravariable;

Sintaxis Básica - Funciones Función($parametro1, $paramentro2, CONSTANTE) Funciones matemáticas Funciones de texto Funciones de base de datos Funciones de sistema de archivos Funciones cíclicas Funciones de sesiones o cookies Funciones encriptación Funciones sockets Nuestras funciones :-) etc etc etc... phpinfo();

Sintaxis Básica : Salida salida.php <html> <body> echo Hola Mundo\n ; echo Este es mi texto de salida, esto es una nueva linea\n ; echo Esta es una tabulación\t ; </body> </html>

Sintaxis Básica : Constantes constantes.php <html> <body> define ("CONSTANTE", "Hola Mundo"); printf (CONSTANTE); </body> </html>

Sintaxis Básica : Operadores operadores.php <? $a = 20; $b = 30; echo $a + $b; echo $a - $b; echo $a * $b; echo $a / $b; 50-10 600 0.666666666667

Sintaxis Básica : Control control.php $a = 50; $b = 30; if ($a > $b) { echo a es mayor que b ; else{ echo a es menor que b ;

Sintaxis Básica - Control control2.php switch ($dia) { case "Lunes": echo "Hoy es Lunes"; break; case "Martes": echo "Hoy es Martes"; break; case "Domingo": echo "Hoy es Domingo"; break; default: echo "Esa cadena no corresponde a ningún día de la semana";

Sintaxis Básica - Ciclos while (expr) sentencia cicloswhile.php /* ejemplo 1 */ $i = 1; while ($i <=10) { print $i++; /* El valor impreso seria $i antes del incremento (postincremento) */ /* ejemplo 2 */ $i = 1; while ($i <=10): print $i; $i++; endwhile;

Sintaxis Básica Ciclos II ciclosdowhile.php $i = 0; do { print $i; while ($i>0);

Sintaxis Básica Ciclos III for (expr1; expr2; expr3) sentencia ciclosfor.php /* ejemplo 1 */ for ($ = 1; $i <=10; $i++) { print $i; /* ejemplo 2 */ for ($ = 1; $i <=10; print $i, $i++) ;

Sintaxis Básica Tablas (array) Tabla usando indices tablas.php $ciudad[] = Capital Federal ; $ciudad[] = La Plata ; $ciudad[] = Florencio Varela ; $ciudad[] = Quilmes ; print ( Yo Vivo en. $ciudad[0]. \n ); print ( Yo Vivo en. $ciudad[1]. \n ); print ( Yo Vivo en. $ciudad[2]. \n ); print ( Yo Vivo en. $ciudad[3]. \n );

Sintaxis Básica Tablas II Tabla usando la función array( string, string) tabla2.php $ciudad = array( Capital Federal, La Plata, Florencio Varela, Quilmes ); // Conteo de los elementos de la tabla $numerodelementos = count ($ciudad); // Imprimimos todos los elementos de la tabla for ($i = 0; $i < $numerodelementos; $i++) { print( la ciudad $i es la $ciudad[$i] \n ); Especificar el primer índice diferente de 0 $ciudad = array(1=> Capital Federal, La Plata, Florencio Varela, Quilmes );

Sintaxis Básica Tablas III Tablas asociativas $visitas[0] = 200; $visitas[1] = 186;... $visitas[ lunes ] = 200; tablas3.php $visitas = array("lunes"=>200,"martes"=>186); echo $visitas["lunes"]."\n"; echo $visitas["martes"]."\n";

Sintaxis Básica Tablas IV Tablas multidimensionales Cada elemento dentro de la tabla es a su vez otra tabla $cfg['usuario']['nombre'] = "sergio"; $cfg['usuario']['password'] = "dificildeadivinar"; $cfg['usuario']['privilegios'] = "administrador";

Sintaxis Básica - Tablas V foreach.php $arr = array("one", "two", "three"); foreach ($arr as $value) { echo "Value: $value<br>\n";

Funciones de usuario Funcion ( argumento1, argumento2, argumento3) { Bloque de codigo; suma.php function suma ($x, $y) { $x = $x + 1; return $x+$y; $a = 1; $b = 2; //parámetros por valor echo suma ($a, $b); // imprimirá 4 echo $a; // imprimirá 1

Funciones para funciones if (function_exists('imagecreate')) { echo "GD Library is enabled <br>\r\n<pre>"; var_dump(gd_info()); echo "</pre>"; else { echo 'Sorry, you need to enable GD library first'; call_user_func -- Llamar una función de usuario dada por el primer parámetro call_user_func(array('clase', 'mimetododeretorno')); global Accede a una variable global de la aplicacion

Funciones function myrow($id, $data) { return " <tr> <th>$id</th> <td>$data</td> </tr>\n"; $arr = get_defined_functions(); print_r($arr); Array ( [internal] => Array ( [0] => zend_version [1] => func_num_args [2] => func_get_arg... [751] => bccomp ) [user] => Array ( [0] => myrow ) )

Include Include Require Include_once Require_once footer.inc <html> <body> feader.inc </body> </html> config.inc $cadena = "Hola Mundo"; index.php require ("config.inc"); include ("header.inc"); echo $cadena; include ("footer.inc");

Formularios formulario.html <FORM ACTION= dos.php METHOD= POST > Edad: <INPUT TYPE= text NAME= edad > <INPUT TYPE= submit VALUE= aceptar > </FORM> formulario.php $edad = $_REQUEST[ edad ]; print ( La edad es: $edad );

Formularios Acceso a los diferentes tipos de elementos de entrada de formulario Elementos de tipo INPUT TEXT RADIO CHECKBOX BUTTON HIDDEN PASSWORD SUBMIT Elemento SELECT Simple / múltiple Elemento TEXTAREA

Input - Text Introduzca la cadena a buscar: <INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto" SIZE="20"> print ($_REQUEST [ cadena ]);

Input - Radio <INPUT TYPE="radio" NAME="titulacion" VALUE= II CHECKED>I.Informática <INPUT TYPE="radio" NAME="titulacion" VALUE="ITIG">I.T.I. Gestión <INPUT TYPE="radio" NAME="titulacion" VALUE="ITIS">I.T.I. Sistemas print ($_REQUEST [ titulacion ]);

Input - Checkbox <INPUT TYPE="checkbox" NAME="extras[]" VALUE="garaje" CHECKED>Garaje <INPUT TYPE="checkbox" NAME="extras[]" VALUE="piscina">Piscina <INPUT TYPE="checkbox" NAME="extras[]" VALUE="jardin">Jardín foreach ($_REQUEST[ extras ] as $extra) print ( $extra<br>\n );

Input - Button <INPUT TYPE="button" NAME="nueva" VALUE="Añadir una más"> if ($_REQUEST [ nueva ]) print ("Se va a añadir una nueva");

Input - Hidden print( <INPUT TYPE= hidden NAME= username VALUE= $usuario >\n ); print ($_REQUEST [ username ]);

Input - Password Contraseña: <INPUT TYPE="password" NAME="clave"> <?PHP print ($_REQUEST [ clave ]);

Input - Submit <INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos"> if ($_REQUEST [ enviar ]) print ("Se ha pulsado el botón de enviar");

Input Select Simple <SELECT NAME="titulacion"> <OPTION VALUE="II" SELECTED>Ingeniería Informática <OPTION VALUE="ITIG">Ingeniería Técnica en Informática de Gestión <OPTION VALUE="ITIS">Ingeniería Técnica en Informática de Sistemas </SELECT> print ($_REQUEST [ titulacion ]);

Input Select múltiple <SELECT MULTIPLE SIZE="3" NAME="idiomas[]"> <OPTION VALUE="ingles" SELECTED>Inglés <OPTION VALUE="frances">Francés <OPTION VALUE="aleman">Alemán <OPTION VALUE="holandes">Holandés </SELECT> foreach ($_REQUEST[ idiomas ] as $idioma) print ( $idioma<br>\n );

Input - Textarea <TEXTAREA COLS= 30" ROWS= 4" NAME="comentario"> Este libro me parece... </TEXTAREA> print ($_REQUEST [ comentario ]);

Manejo de Archivos Fopen( path, modo) modos R W Fread (variable_fopen, buffer) archivos.php $archivos = fopen("archivos.texto",'r'); echo fread($archivos, 4096);

Manejo de Archivos II Fputs( indicador_archivo, cadena ) archivos2.php //abre un archivo y escribe en él $archivo = fopen("archivos.texto", "w"); if ($archivo) { fputs ($archivo, "Hola Mundo"); fclose ($archivo); Fclose ( indicador_archivo )

Manejo de Archivos III File_exists (archivo) archivos3.php if (file_exists("data.txt")) { echo "El fichero existe"; else { echo "El fichero NO existe";

Manejo de Archivos IV Copy (origen, destino) archivos4.php if (copy("archivos.texto", "/tmp/data.txt")) { echo "El fichero ha sido copiado con éxito"; else { echo "El fichero NO se higo"; echo "El fichero NO se ha podido copiar";

Funciones de texto Algunas funciones para procesar texto texto.php if (strstr($_server['http_user_agent'], "MSIE")) { echo "Usted usa Explorer :-("; else { echo "Usted no usa Explorer :-)"; strtoupper(string) vuelve todo a mayúsculas strtolower(string) vuelve todo a minúsculas

Funciones de texto Archivo base64 recibido por mail echo base64_decode ("UBBQAAAAAAC+bRi+gB+M3cC4AAHAuAFQjAzNzY ); $archivos = fopen("archivoencodeado",'r'); echo base64_decode(fread($archivos, 4096));

Funciones de Texto $file = "archivosinencodear"; if($fp = fopen($file,"rb", 0)) { $archivos = fread($fp,filesize($file)); // base64 encode the binary data, then break it // into chunks according to RFC 2045 semantics $base64 = chunk_split(base64_encode($archivos)); $archivo = fopen("archivoencodeado", "w"); if ($archivo) { fputs ($archivo, $base64); fclose ($archivo);

Enviar un mail // El mensaje $mensaje = "Linea 1\nLinea 2\nLinea 3"; // En caso de que cualquier linea tenga mas de 70 caracteres, habria // que usar wordwrap() $mensaje = wordwrap($mensaje, 70); $para = 'alguien@example.com'; $asunto = 'Mensaje de prueba'; $cabeceras = 'From: sergio@example.com'. "\r\n". 'Reply-To: sergio@example.com'. "\r\n". 'X-Mailer: PHP/'. phpversion(); mail($para, $asunto, $mensaje, $cabeceras);

Bases de datos - MySQL Instalar MySQL apt-get install mysql-client mysql-common mysql-server Iniciar MySQL root@cd4046:/home/cd4046 # /etc/init.d/mysql start Starting MySQL database server: mysqld

Bases de datos - MySQL $link = mysql_connect("localhost", "nobody", "password"); mysql_select_db("mydb", $link); $result = mysql_query("select nombre, email FROM agenda", $link); if ($row = mysql_fetch_array($result)){ echo "<table border = '1'> \n"; echo "<th><b>nombre</b></th> \n"; echo "<th><b>e-mail</b></th> \n"; while ($row = mysql_fetch_array($result)) { echo "<tr> \n"; echo "<td>".$row["nombre"]."</td> \n"; echo "<td>".$row["email"]."</td>\n"; echo "</tr> \n"; echo "</table> \n";

Bases de datos - MySQL Consultas SQL SELECT * FROM agenda; SELECT * FROM agenda WHERE nombre LIKE '%nombre%'; SELECT nombre,email FROM agenda ORDER BY id ASC; SELECT nombre,email FROM agenda ORDER BY id DESC;

MySQL Backup $link = mysql_connect("localhost", "nobody", "password"); mysql_select_db("mydb", $link); $tablename = 'mypet'; $backupfile = 'backup/mypet.sql'; $query = "SELECT * INTO OUTFILE '$backupfile' FROM $tablename"; $result = mysql_query($query,$link);

MySQL Backup Restaurar $link = mysql_connect("localhost", "nobody", "password"); mysql_select_db("mydb", $link); $tablename = 'mypet'; $backupfile = 'mypet.sql'; $query = "LOAD DATA INFILE 'backupfile' INTO TABLE $tablename"; $result = mysql_query($query,$link);

MySQL Backup II $backupfile = $dbname. date("y-m-d-h-i-s"). '.gz'; $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname gzip > $backupfile"; system($command); Solución simple usar PhpMyAdmin

Templates table.html <table cellpadding="2" cellspacing="0" border="1"> <!-- INCLUDE table_header.html --> <!-- BEGIN table_row --> <tr> <td>{first_name</td> <td>{last_name</td> </tr> <!-- END table_row --> </table> table_header.html <tr> <th>first name</th> <th>last name</th> </tr>

Templates require_once 'HTML/Template/Sigma.php'; $data = array ( array("stig", "Bakken"), array("martin", "Jansen"), array("alexander", "Merz") ); $tpl =& new HTML_Template_Sigma('templates','cache'); $tpl->loadtemplatefile('table.html'); foreach ($data as $name) { // assign data $tpl->setvariable(array( 'first_name' => $name[0], 'last_name' => $name[1] )); $tpl->parse('table_row'); $tpl->show();

Objetos class foo { function hacer_foo() { echo "Haciendo foo."; $bar = new foo; $bar->hacer_foo();

Objetos prueba.php <? class A { function A() { function mostrar_nombre($nombre) { echo "Mi nombre es ".$nombre."\n"; $a = new A(); echo '$a is a '. get_class($a). "\n"; $a->mostrar_nombre('sergio')

Objetos class A { function example() { echo "I am the original function A::example().<br />\n"; class B extends A { function example() { echo "I am the redefined function B::example().<br />\n"; A::example(); A::example(); $b = new B; $b->example();

Objetos - get_var class A{ var $thing; function A() { $this->thing = "hello"; function get ($var) { return $this->$var; $a = new A(); echo $a->get('thing');

class A { function example() { class B extends A { function example() { echo "Hola yo soy un extend de ".get_parent_class($this)."\n"; $b = new B(); $b->example();

Herramientas Templates Sigma : http://pear.php.net Smarty: http://smarty.php.net Frameworks BiF: http://www.bif.org.ar CMS XOOPS: http://www.xoops.org Admin BD http://www.phpmyadmin.net NuSOAP http://sf.net/projects/nusoap/ Foros http://www.phpbb.com/ Noticias de PHP http://www.vivaphp.com.ar

Pregunta, Referencias PHP http://www.php.net PECL http://pecl.php.net PEAR http://pear.php.net Jabber cd4046@jabber.org Sergio Cayuqueo sergio@linuxv.com.ar