220 likes | 374 Views
Aplicaciones Web. Fundamentos de PHP. Sergio Luján Mora Edgar Valarezo. PHP. Siglas recursivas: PHP Hypertext Pre- processor Creado por Rasmus Lerdorf Versiones: PHP 1: 1995 PHP 2: 1997 PHP 3: 1998 PHP 4: 2000 PHP 5: 2004 PHP 5.5: junio 2013. Qué es PHP?.
E N D
Aplicaciones Web Fundamentos de PHP Sergio Luján Mora Edgar Valarezo
PHP • Siglas recursivas: PHP HypertextPre-processor • Creado porRasmusLerdorf • Versiones: • PHP 1: 1995 • PHP 2: 1997 • PHP 3: 1998 • PHP 4: 2000 • PHP 5: 2004 • PHP 5.5: junio 2013
Qué es PHP? • Lenguaje de programación • Permite programación orientada a objetos (POO) • Código del lado del servidor • Diseñado para el desarrollo web de contenido dinámico • Código interpretado, no compilado • Fácil instalación, administración y uso • Fácil conexión con la mayoría de BDD
Principales sitios Web hechos con PHP • Facebook.com • Wikipedia.org • WordPress.com
Hola Mundo! <!DOCTYPE html> <htmllang="es"> <head> <meta charset="UTF-8" /> <title> Ejemplo básico PHP</title> </head> <body> <?php echo 'Hola mundo'; ?> </body> </html>
Características • Archivo con extensión .php • Código PHP delimitado por <?php y ?> • Comentarios • Una línea: // • Múltiples líneas, delimitadas por /* y */ • Final de línea con ; • Variables no son declaradas, empiezan con $ • Conversiones automáticas de tipos de datos
Funciones y alcance de variables <?php $hola = 'hola'; function saludar() { global $hola; echo $hola; } saludar(); ?>
Operadores • Aritméticos: +, -, *, /, % • Autoincremento y autodecremento: $a++, ++$a, $a--, --$a • Lógicos: and, or, xor, !, &&, || • Comparaciones: ==, ===, !=, !==, <, >, <=, >= • Concatenación: 'texto' . 'unido'
Condicionales: ifelse <?php $hola = 'hola'; if ($hola == 'hola') { echo 'HOLA!'; } else { echo CHAO! '; } ?>
Bucles: while <?php $numero = 1; while ($numero > 10) { echo 'HOLA! ' . $numero++; } ?>
Bucles: for <?php $numero = 1; for ($i = 0; $i < 10; $i++) { echo 'HOLA! ' . $i; } ?>
Bucles: foreach <?php $datos = array('uno' => 1, 'dos' => 2); foreach ($datos as $dato) { echo $dato; } foreach ($datos as $clave => $dato) { echo "[$clave:$dato]"; } ?>
Bucles internos: foreach <ol> <?php $datos = array( 'uno' => array(1, 11, 111), 'dos' => array(2, 22, 222), ); foreach ($datos as $dato) { foreach ($dato as $d) { echo $d; } } ?> </ol>
Ejercicio • Desarrollar una función que depliegue en una lista HTML los temas del temario guardados en un arreglo. <OL> <LI></LI> … </OL>
Creación de tabla para ejemplos CREATE TABLE tabla( id serial NOT NULL, dato text, CONSTRAINT tabla_pkey PRIMARY KEY (id) ); INSERT INTO tabla (dato) VALUES ('enero'); INSERT INTO tabla (dato) VALUES ('febrero'); INSERT INTO tabla (dato) VALUES ('marzo');
Conexión a la base de datos $conn = pg_connect("host=localhostport=5432 dbname=eduser=postgrespassword=Postgres2014"); $result = pg_query($conn, "SELECT * FROM tabla"); while ($row = pg_fetch_array($result)) { echo $row["id"] . " - "; } pg_close($conn);
PDO • Acrónimo de «PHP Data Object» • La misma forma de conectarse a distintas bases de datos. • Bases de datos soportadas: • PostgreSQL • MySQL • SQLite • Firebird • Informix • Oracle • ODBC • DBLIB • IBM
PDO $db = new PDO("pgsql:dbname=ed;host=localhost", "postgres","Postgres2014"); $db->query("select * from tabla"); $result = $db->fetch(PDO::FETCH_ASSOC); foreach ($result as $row) { echo $row['id'] . " - " . $row['dato'] . "|"; } $db = null;
PDO (simplificado) $db = new PDO("pgsql:dbname=ed;host=localhost", "username", "password" ); foreach ($db->query("select * from tabla") as $row) { echo $row['id'] . " - " . $row['dato'] . "|"; } $db = null;
Formularios <?php if (isset($_POST["dato"]) && !empty($_POST["dato"])) { $conn = pg_connect("dbname=eduser=postgrespassword=Postgres2014"); $post_dato = $_POST["dato"]; pg_query("INSERT INTO tabla (dato) VALUES ('$post_dato')"); echo "<h1>Insertado el valor de $post_dato</h1>"; } ?> <formmethod="POST"> Mes: <input name="dato" /> <input type="submit" /> </form>
Sesiones (1 de 2): ingreso.php <?php if (isset($_GET["dato"]) && $_GET["dato"] == 'marzo') { session_start(); $_SESSION['descripcion'] = 'Juan Perez'; header('Location:home.php'); } else { session_destroy(); } ?> <formmethod="GET"> Nombre: <input type="password"name="dato" /> <input type="submit" value="Ingresar" /> </form>
Sesiones (2 de 2): home.php <?php session_start(); if (isset($_SESSION["descripcion"])) { echo "<h1>Bienvenido " . $_SESSION['descripcion'] . "</h1>"; echo '<a href="ingreso.php">Cerrar sesion</a>'; } else { header("Location:ingreso.php"); } ?>