SlideShare una empresa de Scribd logo
Introducción a PHP Aitor Gómez Goiri [email_address] www.twolf.eu 16 a 18 de Julio de 2008 e-ghost ESIDE – Universidad de Deusto
Copyleft Esta presentación ha sido realizada por  Aitor Gómez Goiri  (twolf), en base a la presentación realizada por  Jorge García Ochoa de Aspuru  (bardok) para los cursillos de Julio de 2005 y 2006. El logotipo de la portada es propiedad de  Vincent Pontier  (El Roubio). El resto del contenido está licenciado bajo los términos de la licencia  “Reconocimiento – No comercial – Compartir igual” de Creative Commons . Para ver una copia de esta licencia visite: http://creativecommons.org/licenses/by-nc-sa/2.5/es
Índice ,[object Object],[object Object],[object Object],[object Object],[object Object]
Índice ,[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Qué es? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Características ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pros y contras ,[object Object],[object Object],[object Object],[object Object]
Historia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Historia (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PHP 5 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Cómo funciona? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Cómo funciona? (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Cómo funciona? (3) ,[object Object],Servidor web interpreta  código  PHP para  generar la página HTML . Es probable que en el código se hagan  llamadas  a bases de datos para  obtener datos  con lo que completar dicho HTML.
Configuración del servidor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Configuración servidor (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Configuración servidor (3) ,[object Object],[object Object],[object Object],[object Object]
Configuración servidor (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],sudo a2enmod userdir sudo /etc/init.d/apache2 force-reload
Configuración servidor (5) ,[object Object],[object Object],[object Object],[object Object]
Índice ,[object Object],[object Object],[object Object],[object Object],[object Object]
Fundamentos de PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Fundamentos de PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Primeros pasos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Primeros pasos (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Primeros pasos (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],<html> <body> <?php echo 'Hola mundo!'; ?> </body> </html>
Primeros pasos (4) ,[object Object],<html> <body> Hola mundo! </body> </html>
Fundamentos de PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sintaxis ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Fundamentos de PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tipos ,[object Object],[object Object],[object Object],[object Object],[object Object],<?php $un_bool = TRUE;  // un valor booleano $un_str  = &quot;foo&quot;;  // una cadena $un_int  = 12;  // un entero echo gettype($un_bool); // imprime: boolean // Si este valor es un entero, incrementarlo en cuatro if (is_int($un_int)) $un_int += 4; ?>
Variables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<?php $mensaje1 = 'Hola'; $mensaje2 = 'mundo!'; echo $mensaje1.' '.$mensaje2; ?>
Variables (2) ,[object Object],[object Object],[object Object],$nombre = 'juan'; echo (&quot;El valor de la variable nombre es $nombre.&quot;); $var = &quot;pepe&quot;; unset($var); // Ahora no tiene valor (NULL) if (isset($var)) { echo 'Tiene valor'; }
Fundamentos de PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operadores ,[object Object],[object Object]
Operadores (2) ,[object Object],[object Object],[object Object]
Fundamentos de PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estructuras de control ,[object Object],[object Object],[object Object]
Condicionales ,[object Object],[object Object]
Condicionales (2) ,[object Object]
Condicionales (3) ,[object Object],//$x = 4; //descomentadlo después de probarlo una vez if( ! isset($x) ) { echo '<p>Por favor, establezca un valor para la variable.</p>'; } else { echo '<p>La variable está correctamente definida y es</p>'; switch ($x) { case 1: echo (' el uno.</p>'); break; case 2: echo (' el dos.</p>'); break; case 3: echo (' el tres.</p>'); break; default: echo ('distinta a 1, 2 o 3.</p>'); break; } }
Bucles ,[object Object],[object Object],[object Object],$a = 1; while ( $a < 10) { echo &quot;<p>El número actual es $a</p>&quot;; $a++; }
Bucles (2) ,[object Object],[object Object],[object Object],$a = 0; do { $a++; echo ('<p>El número es '.$a.'</p>'); } while ( $a < 10);
Bucles (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],for ($a = 1; $a <= 10; $a++) { echo ('<p>El número es '.$a.'</p>'); }
Bucles (4) ,[object Object],[object Object],[object Object],$arr = array('perro','gato','okapi','ornitorrinco'); foreach ($arr as $elem) { // En cada vuelta, elem guarda uno de los strings echo (&quot;<p>El elemento es: $elem.</p>&quot;); } foreach ($arr as $index => $elem) { // En cada vuelta, elem guarda uno de los strings, e index el índice echo (&quot;<p>El elemento $index es: $elem.</p>&quot;); }
Bucles (5) ,[object Object],[object Object]
include y require ,[object Object],[object Object],[object Object],[object Object],vars.php <?php $color = 'verde'; $fruta = 'manzana'; ?> test.php <?php echo &quot;Una $fruta $color&quot;; // Una include 'vars.php'; echo &quot;Una $fruta $color&quot;; // Una manzana verde ?>
Fundamentos de PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Matrices ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Matrices (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],$matriz[7] = &quot;Texto de la posición 7&quot;; // si no especificamos un índice, se inserta en la siguiente posición $matriz[] = &quot;Esto iría en la posición 8&quot;;
Matrices (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],$matriz = array(3 => 'Oso', 5 => 'Lagarto'); unset($matriz[3]); // No hay nada en la posición 3 unset($matriz); // No hay nada en la matriz
Matrices (4) ,[object Object],[object Object],$modelo['identificador'] = 3; $modelo['fabricante'] = 'ABB'; $modelo['nombre'] = 'detector presencia'; foreach ($modelo as $clave => $valor) { echo &quot;El $clave es $valor<br />&quot;; }
Fundamentos de PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Funciones ,[object Object],[object Object],function <nombre_función> ($parm1, $parm2, ...) { ... return <resultado>; } function negrita($texto) { return '<b>'.$texto.'</b>'; } echo 'Quiero '.negrita('remarcar').' lo que es '.negrita('importante');
Fundamentos de PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Errores ,[object Object],[object Object],[object Object]
Excepciones ,[object Object],[object Object],function division($dividendo, $divisor) { if($divisor==0) throw new Exception('No dividas entre cero!',0); return $dividendo/$divisor; } try { echo division(15,0); } catch(Exception $e) { echo $e->getMessage(); }
Función die ,[object Object],[object Object],<?php $x = 15; $y = 0; echo 'llego aquí<br />'; if($y==0)  die('División imposible.'); // Probad a comentarlo echo ($x/$y); echo '<br />llego al final'; ?>
Fundamentos de PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Métodos avanzados de escape ,[object Object],<?php function negrita($texto) { ?> <span style=&quot; font-weight: bold;&quot;><?php echo $texto; ?></span> <?php } $numero=15; $limite=16; if($numero<$limite) $ret='menor'; else $ret='mayor o igual'; ?> <p>El número especificado es <?php negrita($ret); ?> que <?php negrita($limite); ?>.</p>
Fundamentos de PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Objetos ,[object Object],class NombreClase [extends ClasePadre] [implements Iinterfaz] { const CONSTANTE = 1; static private $instanciasCreadas = 0; protected $atributo; public function __construct($a) { $this->atributo = $a; self::metodoEstatico(); } function __destruct() {} static private function metodoEstatico() { self::$instanciasCreadas++; } public function __toString() { return 'Clase con atributo '.$this->atributo; } }
Objetos (2) ,[object Object],[object Object],[object Object],[object Object],class ClaseA { protected $num; function getNum() // Si no se especifica nada, es público { return $this->num; // &quot;num&quot; no lleva &quot;$&quot; } }
Objetos (3) ,[object Object],[object Object],[object Object],[object Object],class MiClase extends ClasePadre { public static $my_static = 'static var'; public static function doubleColon() { parent::doubleColon(); echo self::$my_static . &quot;&quot;; } } MiClase::doubleColon();
Objetos (4) ,[object Object],[object Object],class Persona { private $nombre; function __construct($nom) { $this->nombre = $nom; } function __toString() { return $this->nombre; } } $p = new Persona(&quot;Twolf&quot;); echo $p;
Objetos (5) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Objetos (6) ,[object Object],<?php class ClaseA { protected $attrA = 'A'; function getAttrA() { return $this->attrA; } } class ClaseB extends ClaseA { private $attrB = 'B'; function getAttrB() { return $this->attrB; } } $obj = new ClaseB; echo $obj->getAttrA(); echo $obj->getAttrB(); ?>
Índice ,[object Object],[object Object],[object Object],[object Object],[object Object]
Información de usuario ,[object Object],[object Object],[object Object]
Superglobales ,[object Object],[object Object],[object Object],[object Object],[object Object],<?php echo $_SERVER['SERVER_ADDR'].'<br />'; echo $_SERVER['SERVER_NAME'].'<br />'; echo $_SERVER['QUERY_STRING'].'<br />'; echo $_SERVER['DOCUMENT_ROOT'].'<br />'; echo $_SERVER['REMOTE_ADDR'].'<br />'; ?>
Superglobales (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
GET y POST ,[object Object],[object Object],[object Object],[object Object],[object Object]
GET y POST (2) ,[object Object],[object Object],<html> <body> <?php foreach ($_GET as $nombre => $param) { ?> <p><?=$nombre.': '.$param?></p> <? } ?> </body> </html> http://localhost/~ubuntu/ejerparams.php? login=bardok&pass=1234$email=mail@server.com
GET y POST (3) ,[object Object],[object Object],<html> <body> <form method=&quot;get&quot; action=&quot;ejerparams.php&quot;> Login: <input type=&quot;text&quot; name=&quot;login&quot; /><br /> Password: <input type=&quot;password&quot; name=&quot;pass&quot; /><br /> Email: <input type=&quot;text&quot; name=&quot;email&quot; /><br /> <input type=&quot;submit&quot; value=&quot;Enviar&quot; /> </form> </body> </html>
GET y POST (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],echo 'El nombre de usuario utilizado es '.$_GET['login']; <input type=&quot;checkbox&quot; name=&quot;sel[]&quot; value=&quot;v1&quot;/>Valor 1 <input type=&quot;checkbox&quot; name=&quot;sel[]&quot; value=&quot;v2&quot;/>Valor 2
GET y POST (5) ,[object Object],[object Object],sel[0] => &quot;v1&quot; sel[1] => &quot;v2&quot; <html><head><title>Ejemplo de uso de $_REQUEST</title></head> <body><?php if( isset($_REQUEST['provincia']) ) { ?> <p>Eres de <?php echo $_REQUEST['provincia']; ?>.</p> <?php } else { ?> <form method=&quot;get&quot; action=&quot;ejrequest.php&quot;> <select name=&quot;provincia&quot;> <option value=&quot;Álava&quot;>Álava</option> ... <option value=&quot;Murcia&quot;>Murcia</option> </select><input type=&quot;submit&quot; value=&quot;Enviar&quot; /> </form> <?php } ?> </body></html>
Sesiones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sesiones (2) ,[object Object],[object Object],<?php session_start(); if (isset($_GET[&quot;accion&quot;])) { $accion = $_GET[&quot;accion&quot;]; if ($accion == &quot;Login&quot;) { $_SESSION[&quot;login&quot;] = $_GET[&quot;login&quot;]; } else if ($accion == &quot;Desconectar&quot;) { unset($_SESSION[&quot;login&quot;]); } } $registrado = isset($_SESSION[&quot;login&quot;]); if ($registrado) $login = $_SESSION[&quot;login&quot;]; ?>
Sesiones (3) <html><body> <?php if ($registrado) { ?> <p>Bienvenido, <b><?=$login?></b></p> <p><a href=&quot;private_login.php&quot;>Link a una página privada</a></p> <form method=&quot;get&quot; action=&quot;public_private.php&quot;> <input type=&quot;submit&quot; name=&quot;accion&quot; value=&quot;Desconectar&quot; /> </form> <?php } else { ?> <p>Por favor, introduce tu nombre de usuario</p> <form method=&quot;get&quot; action=&quot;public_private.php&quot;> Nombre de usuario: <input type=&quot;text&quot; name=&quot;login&quot; /><br /> <input type=&quot;submit&quot; name=&quot;accion&quot; value=&quot;Login&quot; /> </form> <?php } ?> </body></html>
Sesiones (4) ,[object Object],<?php session_start(); ?> <html> <body> <?php if (isset($_SESSION[&quot;login&quot;])) { echo (&quot;El nombre de usuario es &quot;.$_SESSION[&quot;login&quot;]); } else { echo(&quot;No hay nombre de usuario&quot;); } ?> </body> </html>
Índice ,[object Object],[object Object],[object Object],[object Object],[object Object]
Acceso a base de datos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Configuración del servidor de BB.DD. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Configuración del servidor de BB.DD. (2) ,[object Object],[object Object]
Creación de un usuario ,[object Object],[object Object],[object Object],[object Object]
Creación de una tabla ,[object Object],[object Object],[object Object]
Estructura de una tabla ,[object Object]
PHP Data Objects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PHP Data Objects (2) ,[object Object],[object Object],[object Object],[object Object],$pdo = new PDO('mysql:dbname=nombreDB;host=nombreHost','usuario','password'); try { $pdo = new PDO('mysql:dbname=php;host=localhost','php','php'); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); }
PHP Data Objects (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PHP Data Objects (4) ,[object Object],[object Object],[object Object],[object Object],$sql = 'SELECT * FROM animales'; foreach ($pdo->query($sql) as $row) { echo '('.$row['identificador'].','.$row['denominacion'].')'.””; }
Importar archivo ,[object Object],[object Object]
Prepared Statements ,[object Object],[object Object],[object Object]
Prepared Statements (2) ,[object Object],[object Object],$stmt = $pdo->prepare('INSERT INTO animales (identificador, denominacion) VALUES (:id, :name)'); $stmt->bindParam(':name', $name); $stmt->bindParam(':id', $id); // inserta una fila $name = 'vaca'; $value = 8; $stmt->execute(); // inserta otra fila con valores distintos $name = 'pajaro'; $value = 9; $stmt->execute();
Ejercicio favoritos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejercicio favoritos (1) ,[object Object]
Ejercicio favoritos (2) ,[object Object]
Ejercicio favoritos (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejercicio favoritos (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo práctico ,[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo práctico (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo práctico (3) ,[object Object],<form enctype=&quot;multipart/form-data&quot; action=&quot;procesar_fichero.php&quot; method=&quot;post&quot;> <fieldset> <legend>Selección de ficheros</legend> <input type=&quot;hidden&quot; name=&quot;MAX_FILE_SIZE&quot; value=&quot;1000000&quot; /> <label for=&quot;fichero&quot;>Selecciona el fichero (imagen jpeg): <input type=&quot;file&quot; name=&quot;fichero&quot; id=&quot;fichero&quot; /> </label> <br /> <input type=&quot;submit&quot; value=&quot;Enviar&quot; /> </fieldset> </form>
Ejemplo práctico (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo práctico (5) ,[object Object],[object Object],[object Object],[object Object],function comillas_inteligentes($valor) { // Retirar las barras if (get_magic_quotes_gpc()) {  $valor = stripslashes($valor); } // Colocar comillas si no es entero if (!is_numeric($valor)) {  $valor = &quot;'&quot; . mysql_real_escape_string($valor) . &quot;'&quot;; } return $valor; }
Ejemplo práctico (6) ,[object Object],[object Object],$nombre_f = $_FILES['fichero']['name']; $type_f = $_FILES['fichero']['type']; $tmp_name_f = $_FILES['fichero']['tmp_name']; ... // Leer el fichero en un array de bytes $data = file_get_contents($tmp_name_f); // Pasamos la codificación a BASE 64 $data = base64_encode($data); // Meter el fichero en la base de datos $comando = sprintf(&quot;insert into FICHEROS(FIC_Data,FIC_Type) VALUES(%s,%s)&quot; ,comillas_inteligentes($data) ,comillas_inteligentes($type_f) ); mysql_query($comando);
Ejemplo práctico (7) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo práctico (8) ,[object Object],[object Object],[object Object],[object Object],[object Object],$sql_data = &quot;SELECT FIC_Data, FIC_Type FROM FICHEROS WHERE FIC_Codigo=$codigo&quot;; $res_data = mysql_query($sql_data,$db); if ($arr_data = mysql_fetch_array($res_data)) { $datos = $arr_data['FIC_Data']; $datos = base64_decode($datos); $tipo = $arr_data['FIC_Type']; header(&quot;Content-type: $tipo&quot;); echo ($datos); }
Índice ,[object Object],[object Object],[object Object],[object Object],[object Object]
Otros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SimpleXML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SimpleXML (2) ,[object Object],<animales> <animal raza=&quot;perro&quot;> <patas>4</patas> <clase>mammalia</clase> <longevidad>15</longevidad> </animal> <animal raza=&quot;gato&quot;> <patas>4</patas> <clase>mammalia</clase> <longevidad>16</longevidad> </animal> <animal raza=&quot;periquito&quot;> <patas>2</patas> <clase>aves</clase> <longevidad>6</longevidad> </animal> </animales>
SimpleXML (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SimpleXML (3) ,[object Object],[object Object],$xml = new SimpleXMLElement('animales.xml',null,TRUE); foreach ($xml->animal as $animal) { echo 'El '.$animal->attributes()->raza; echo ' (<span style=&quot;font-style:italic&quot;>'.$animal->clase. '</span>)'; echo ' vive una media de '.$animal->longevidad.' años y tiene '; echo $animal->patas.' patas.<br />'; } foreach ($xml->animal as $animal) { echo '<ul><li>Animal: '.$animal->attributes()->raza.'</li>'; echo '<ul>'; foreach ($animal->children() as $elemento=>$valor) { echo '<li>'.$elemento.': '.$valor.'</li>'; } echo '</ul></ul>'; }
SimpleXML (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SimpleXML (5) ,[object Object],[object Object],[object Object],$xml = new SimpleXMLElement('animales.xml',null,TRUE); $panda = $xml->addChild('animal'); $panda->addAttribute('raza','oso panda'); $patas = $panda->addChild('patas','4'); $clase = $panda->addChild('clase','mammalia'); $edad = $panda->addChild('longevidad','12'); echo $xml->asXML(); // Mejor ved el código fuente //echo htmlentities($xml->asXML()); // Para verlo bien desde el navegador
SimpleXML (6) ,[object Object],[object Object],$nombre_archivo = 'animales.xml'; $contenido = $xml->asXML(); if (is_writable($nombre_archivo)) { if (!$gestor = fopen($nombre_archivo, 'w')) { echo &quot;No se puede abrir el archivo ($nombre_archivo)&quot;; exit; } if (fwrite($gestor, $contenido) === FALSE) { echo &quot;No se puede escribir al archivo ($nombre_archivo)&quot;; exit; } echo &quot;Éxito, se escribió ($contenido) al archivo ($nombre_archivo)&quot;; fclose($gestor); } else echo &quot;No se puede escribir sobre el archivo $nombre_archivo&quot;;
XTemplate ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XTemplate (2) ,[object Object],[object Object],[object Object],[object Object]
XTemplate (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XTemplate (4) ,[object Object],<!-- BEGIN: main --> <html><head><title>Listado usuarios</title></head><body> <h1>{TITULO}</h1> <!-- BEGIN: table --> <table><thead> <tr><th>Nombre</th><th colspan=”2”>Apellidos</th></tr></thead> <tbody> <!-- BEGIN: row --> <tr> (...) <td width=&quot;30%&quot;>{PERSONA.APELLIDO1}</td> <td width=&quot;30%&quot;>{PERSONA.APELLIDO2}</td></tr> <!-- END: row --> <!-- BEGIN: norow --> <tr> <td colspan=&quot;3&quot; align=&quot;center&quot;>Nada.</td></tr> <!-- END: norow --> </tbody> </table> <!-- END: table --> </body></html> <!-- END: main -->
XTemplate (5) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XTemplate (6) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XTemplate (7) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XTemplate (8) ,[object Object],// definición del array $usu[0]['USERNAME']='twolf'; (...) require_once('xtpl/xtemplate.class.php'); $xtpl = new XTemplate('listadoUsuarios.html'); $xtpl->set_null_string('-'); $xtpl->assign('TITULO','Listado de usuarios'); if(isset($usu) && is_array($usu)) { $primero = true; foreach($usu as $usuario) { $xtpl->assign('CHECKED',($primero)?'checked=&quot;checked&quot;':''); $xtpl->assign('PERSONA',$usuario); $primero = false; $xtpl->parse('main.table.row'); } } else $xtpl->parse('main.table.norow'); $xtpl->parse('main.table');  $xtpl->parse('main'); $xtpl->out('main');
PHP en línea de comandos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PHP en línea de comandos (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PEAR ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PEAR (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PEAR (3) ,[object Object],[object Object],[object Object],[object Object],<?php require_once 'Mail.php'; $params['host'] = 'mail.deusto.es'; // p.e. $params['auth'] = TRUE;  $params['debug'] = TRUE; $params['username'] = '9aigomez@rigel.deusto.es'; $params['password'] = 'passwd'; $obj = &Mail::factory('smtp',$params); $recipients = 'tulvur@gmail.com'; $headers['From']  = '9aigomez@rigel.deusto.es'; $headers['To']  = 'tulvur@gmail.com'; $headers['Subject'] = 'Asunto interesante'; $body = 'Mensaje más interesante aún (si cabe).'; $obj->send($recipients, $headers, $body); ?>
PEAR (4) ,[object Object],DEBUG: Recv: 220 smtp-in2.deusto.es ESMTP DEBUG: Send: EHLO localhost (...) DEBUG: Send: MAIL FROM:<9aigomez@rigel.deusto.es> (...) DEBUG: Send: DATA DEBUG: Recv: 354 End data with <CR><LF>.<CR><LF> DEBUG: Send: From: 9aigomez@rigel.deusto.es To: tulvur@gmail.com Subject: Asunto interesante Mensaje más interesante aún (si cabe). . DEBUG: Recv: 250 2.0.0 Ok: queued as 2F2F346A7E7 DEBUG: Send: QUIT DEBUG: Recv: 221 2.0.0 Bye
¿Por dónde continuar? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Por dónde continuar? (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Por dónde continuar? (3) ,[object Object],[object Object],[object Object],[object Object]
Agur ;-) ,[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
Vero Pailiacho
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
uts
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysql
Juan Timoteo Cori
 
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
Juan Belón Pérez
 
Php!
Php!Php!
PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01
Eddye Arturo Sanchez Castillo
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
Irontec
 
Manual php completo by_ desarrolloweb
Manual php completo by_ desarrollowebManual php completo by_ desarrolloweb
Manual php completo by_ desarrolloweb
Jomar Burgos Palacios
 
Exposicion de php
Exposicion de phpExposicion de php
Exposicion de php
angie barre
 
Iniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónIniciación PHP 5. Introducción
Iniciación PHP 5. Introducción
Rightster
 
Mini manual php
Mini manual phpMini manual php
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
Daniel Zambrano
 
Php Con Postgres
Php Con PostgresPhp Con Postgres
Php Con Postgres
Jorge Arevalo
 
Php curso03
Php   curso03Php   curso03
Php curso03
viruscraquer
 
7 razones para usar funciones en php
7 razones para usar funciones en php7 razones para usar funciones en php
7 razones para usar funciones en php
JOSEHERIBERTO
 
Curso Php
Curso PhpCurso Php
Curso Php
larasaregune
 
Iniciacion a PHP (I)
Iniciacion a PHP (I)Iniciacion a PHP (I)
Iniciacion a PHP (I)
Francisco Calderón
 
Php
PhpPhp
54 Php. La Opcion Include
54 Php. La Opcion Include54 Php. La Opcion Include
54 Php. La Opcion Include
José M. Padilla
 

La actualidad más candente (19)

Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysql
 
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
 
Php!
Php!Php!
Php!
 
PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
 
Manual php completo by_ desarrolloweb
Manual php completo by_ desarrollowebManual php completo by_ desarrolloweb
Manual php completo by_ desarrolloweb
 
Exposicion de php
Exposicion de phpExposicion de php
Exposicion de php
 
Iniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónIniciación PHP 5. Introducción
Iniciación PHP 5. Introducción
 
Mini manual php
Mini manual phpMini manual php
Mini manual php
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Php Con Postgres
Php Con PostgresPhp Con Postgres
Php Con Postgres
 
Php curso03
Php   curso03Php   curso03
Php curso03
 
7 razones para usar funciones en php
7 razones para usar funciones en php7 razones para usar funciones en php
7 razones para usar funciones en php
 
Curso Php
Curso PhpCurso Php
Curso Php
 
Iniciacion a PHP (I)
Iniciacion a PHP (I)Iniciacion a PHP (I)
Iniciacion a PHP (I)
 
Php
PhpPhp
Php
 
54 Php. La Opcion Include
54 Php. La Opcion Include54 Php. La Opcion Include
54 Php. La Opcion Include
 

Similar a Introducción a PHP5

QUE ES PHP
QUE ES PHPQUE ES PHP
Php
PhpPhp
Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basico
Yo ♥ Tacna
 
Manual php
Manual phpManual php
PHP IUTE
PHP IUTEPHP IUTE
PHP IUTE
guestefc95b
 
Php
PhpPhp
Php
lifeth
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
Raaulroodriguez
 
Curso introduccionphp sql
Curso introduccionphp sqlCurso introduccionphp sql
Curso introduccionphp sql
nuevaizquierda2012
 
Guiacursophp sql
Guiacursophp sqlGuiacursophp sql
Guiacursophp sql
Jorge Caballero
 
Manual de php
Manual de phpManual de php
Manual de php
Manual de phpManual de php
Manual de php
crweb.es Reitter
 
33 php
33 php33 php
33 php
Jose Garcia
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
uts
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
uts
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
Apuntes phpApuntes php
Apuntes php
Javi
 
Programacion en php atavez de ejemplos
Programacion en php atavez de ejemplosProgramacion en php atavez de ejemplos
Programacion en php atavez de ejemplos
Robert Rodriguez
 
Tema4.pdf
Tema4.pdfTema4.pdf
Tema4.pdf
smartvSmartv
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
Juan Eladio Sánchez Rosas
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - Php
PROD LARD
 

Similar a Introducción a PHP5 (20)

QUE ES PHP
QUE ES PHPQUE ES PHP
QUE ES PHP
 
Php
PhpPhp
Php
 
Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basico
 
Manual php
Manual phpManual php
Manual php
 
PHP IUTE
PHP IUTEPHP IUTE
PHP IUTE
 
Php
PhpPhp
Php
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
 
Curso introduccionphp sql
Curso introduccionphp sqlCurso introduccionphp sql
Curso introduccionphp sql
 
Guiacursophp sql
Guiacursophp sqlGuiacursophp sql
Guiacursophp sql
 
Manual de php
Manual de phpManual de php
Manual de php
 
Manual de php
Manual de phpManual de php
Manual de php
 
33 php
33 php33 php
33 php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
Programacion en php atavez de ejemplos
Programacion en php atavez de ejemplosProgramacion en php atavez de ejemplos
Programacion en php atavez de ejemplos
 
Tema4.pdf
Tema4.pdfTema4.pdf
Tema4.pdf
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - Php
 

Más de Open University, KMi

Coordination of Resource-Constrained Devices through a Distributed Semantic S...
Coordination of Resource-Constrained Devices through a Distributed Semantic S...Coordination of Resource-Constrained Devices through a Distributed Semantic S...
Coordination of Resource-Constrained Devices through a Distributed Semantic S...
Open University, KMi
 
Redis
RedisRedis
Assessing data dissemination strategies
Assessing data dissemination strategiesAssessing data dissemination strategies
Assessing data dissemination strategies
Open University, KMi
 
RESTful Triple Spaces of Things
RESTful Triple Spaces of ThingsRESTful Triple Spaces of Things
RESTful Triple Spaces of Things
Open University, KMi
 
Presentación de Otsopack en Tecnalia
Presentación de Otsopack en TecnaliaPresentación de Otsopack en Tecnalia
Presentación de Otsopack en Tecnalia
Open University, KMi
 
Zuhaitzak
ZuhaitzakZuhaitzak
Errekurtsibitatea
ErrekurtsibitateaErrekurtsibitatea
Errekurtsibitatea
Open University, KMi
 
Egitura linealak
Egitura linealakEgitura linealak
Egitura linealak
Open University, KMi
 
Konposizioa, herentzia eta polimorfismoa
Konposizioa, herentzia eta  polimorfismoa Konposizioa, herentzia eta  polimorfismoa
Konposizioa, herentzia eta polimorfismoa
Open University, KMi
 
Fitxategiak
FitxategiakFitxategiak
2D arraya eta objetu arrayak
2D arraya eta objetu arrayak2D arraya eta objetu arrayak
2D arraya eta objetu arrayak
Open University, KMi
 
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
Open University, KMi
 
Triple Space adaptation for IoT
Triple Space adaptation for IoTTriple Space adaptation for IoT
Triple Space adaptation for IoT
Open University, KMi
 
A Triple Space-Based Semantic Distributed Middleware for Internet of Things
A Triple Space-Based Semantic Distributed Middleware for Internet of ThingsA Triple Space-Based Semantic Distributed Middleware for Internet of Things
A Triple Space-Based Semantic Distributed Middleware for Internet of Things
Open University, KMi
 
Presentacion Defensa
Presentacion DefensaPresentacion Defensa
Presentacion Defensa
Open University, KMi
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
Open University, KMi
 

Más de Open University, KMi (16)

Coordination of Resource-Constrained Devices through a Distributed Semantic S...
Coordination of Resource-Constrained Devices through a Distributed Semantic S...Coordination of Resource-Constrained Devices through a Distributed Semantic S...
Coordination of Resource-Constrained Devices through a Distributed Semantic S...
 
Redis
RedisRedis
Redis
 
Assessing data dissemination strategies
Assessing data dissemination strategiesAssessing data dissemination strategies
Assessing data dissemination strategies
 
RESTful Triple Spaces of Things
RESTful Triple Spaces of ThingsRESTful Triple Spaces of Things
RESTful Triple Spaces of Things
 
Presentación de Otsopack en Tecnalia
Presentación de Otsopack en TecnaliaPresentación de Otsopack en Tecnalia
Presentación de Otsopack en Tecnalia
 
Zuhaitzak
ZuhaitzakZuhaitzak
Zuhaitzak
 
Errekurtsibitatea
ErrekurtsibitateaErrekurtsibitatea
Errekurtsibitatea
 
Egitura linealak
Egitura linealakEgitura linealak
Egitura linealak
 
Konposizioa, herentzia eta polimorfismoa
Konposizioa, herentzia eta  polimorfismoa Konposizioa, herentzia eta  polimorfismoa
Konposizioa, herentzia eta polimorfismoa
 
Fitxategiak
FitxategiakFitxategiak
Fitxategiak
 
2D arraya eta objetu arrayak
2D arraya eta objetu arrayak2D arraya eta objetu arrayak
2D arraya eta objetu arrayak
 
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
 
Triple Space adaptation for IoT
Triple Space adaptation for IoTTriple Space adaptation for IoT
Triple Space adaptation for IoT
 
A Triple Space-Based Semantic Distributed Middleware for Internet of Things
A Triple Space-Based Semantic Distributed Middleware for Internet of ThingsA Triple Space-Based Semantic Distributed Middleware for Internet of Things
A Triple Space-Based Semantic Distributed Middleware for Internet of Things
 
Presentacion Defensa
Presentacion DefensaPresentacion Defensa
Presentacion Defensa
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
 

Último

trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdktrabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
KukiiSanchez
 
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajasSlideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
AdrianaRengifo14
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
Plantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptxPlantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptx
edwinedsonsuyo
 
trabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jimtrabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jim
jhonyaicaterodriguez
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdfCURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
LagsSolucSoporteTecn
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
La Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docxLa Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docx
luiscohailatenazoa0
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
INFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIAINFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIA
renzocruz180310
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
jgvanessa23
 
C1B3RWALL La red de cooperación de Madrid.pptx
C1B3RWALL La red de cooperación de Madrid.pptxC1B3RWALL La red de cooperación de Madrid.pptx
C1B3RWALL La red de cooperación de Madrid.pptx
Guillermo Obispo San Román
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
leia ereni
 
Herramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientasHerramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientas
yessicacarrillo16
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
codesiret
 

Último (20)

trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdktrabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
 
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajasSlideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
Plantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptxPlantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptx
 
trabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jimtrabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jim
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdfCURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
La Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docxLa Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docx
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
INFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIAINFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIA
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
 
C1B3RWALL La red de cooperación de Madrid.pptx
C1B3RWALL La red de cooperación de Madrid.pptxC1B3RWALL La red de cooperación de Madrid.pptx
C1B3RWALL La red de cooperación de Madrid.pptx
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
 
Herramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientasHerramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientas
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
 

Introducción a PHP5

  • 1. Introducción a PHP Aitor Gómez Goiri [email_address] www.twolf.eu 16 a 18 de Julio de 2008 e-ghost ESIDE – Universidad de Deusto
  • 2. Copyleft Esta presentación ha sido realizada por Aitor Gómez Goiri (twolf), en base a la presentación realizada por Jorge García Ochoa de Aspuru (bardok) para los cursillos de Julio de 2005 y 2006. El logotipo de la portada es propiedad de Vincent Pontier (El Roubio). El resto del contenido está licenciado bajo los términos de la licencia “Reconocimiento – No comercial – Compartir igual” de Creative Commons . Para ver una copia de esta licencia visite: http://creativecommons.org/licenses/by-nc-sa/2.5/es
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78. Sesiones (3) <html><body> <?php if ($registrado) { ?> <p>Bienvenido, <b><?=$login?></b></p> <p><a href=&quot;private_login.php&quot;>Link a una página privada</a></p> <form method=&quot;get&quot; action=&quot;public_private.php&quot;> <input type=&quot;submit&quot; name=&quot;accion&quot; value=&quot;Desconectar&quot; /> </form> <?php } else { ?> <p>Por favor, introduce tu nombre de usuario</p> <form method=&quot;get&quot; action=&quot;public_private.php&quot;> Nombre de usuario: <input type=&quot;text&quot; name=&quot;login&quot; /><br /> <input type=&quot;submit&quot; name=&quot;accion&quot; value=&quot;Login&quot; /> </form> <?php } ?> </body></html>
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.