Beruflich Dokumente
Kultur Dokumente
R. Capilla
PHP. Introduccin
PHP (Personal Home Page Tools PHP Hypertext Processor) fue creado por Rasmus Lerdorf (1994) para crear pginas Web dinmicas. Es un lenguaje interpretado que se integra dentro de HTML al igual que Javascript. Surge como opcin vlida frente al ASP (Active Server Pages) de Microsoft.
URJC - Aplicaciones para la Web
2
R. Capilla
PHP. Introduccin
R. Capilla
PHP. Comprobacin
Llamada a phpinfo()
<?php phpinfo(); ?>
R. Capilla
R. Capilla
R. Capilla
Los comentarios se escirben con (/*comentario*/) y // comentario. Una sentencia PHP acaba en ; Admite la estructuracin del script en funciones y clases (version 5).
R. Capilla
Operadores.
Aritmticos (+, -, *, /, % ) //$a = $b + 1; Asignacin (=) // $a = 3; Operaciones con bits (&, |, <<, >>) Comparacin (==, !=, >=, <, etc.) // $a==$b; Incremento/decremento (++$a, $a++,-$a,$a--) // $a=3; $a++; echo$a (a=4) Cadenas de caracteres ( . ) //Concatena cadenas de caracteres
URJC - Aplicaciones para la Web
R. Capilla
8
Variables escalares. Se usan para almacenar datos numricos o cadenas de texto. Empiezan con el signo $.
$num_paginas= 358; $precio= 34.05; #En Euros claro est!! $titulo= Estamos en el curso de PHP;
R. Capilla
in_array(valor, array)
si valor est en el array
//retorna verdadero
R. Capilla
10
== 10
R. Capilla
R. Capilla
13
Sentencia break:
R. Capilla
16
R. Capilla
17
R. Capilla
18
R. Capilla
19
R. Capilla
20
MAX_FILE_SIZE <= directiva upload_max_filesize Por defecto = 2 MegaBytes tamao = getimagesize($fichero); //tamao de una imagen
URJC - Aplicaciones para la Web
R. Capilla
21
R. Capilla
22
R. Capilla
23
Acceso a Bases de Datos PHP permite el acceso a Bases de Datos para generar HTML dinmico Las funciones de acceso a BBDD varan segn la Base de Datos a la que se acceda. Ejemplo: dbase_open Abre una BD dBase dba_open Abre una BD DB2 de SleepyCat Software. No de IBM ora_logon Estable una conexin a una BD de Oracle
24
R. Capilla
Conexin a la BBDD Chequeo de Errores Crear la sentencia para los datos Ejecutar la sentencia Chequear Errores Mostrar los resultados Cerrar la BBDD
25
R. Capilla
/*Comprobacin de
Errores*/
R. Capilla
/*Chequear Errores*/
if (!$resultadoSQL) { echo Error en el resultado; exit; }
R. Capilla
27
?>
R. Capilla
28
Clases en PHP
R. Capilla
29
Clases en PHP
Instancia de la clase
<?php .. $instancia = new miclase // Llamada a mtodos $instancia->mimetodo() . ?>
R. Capilla
30
Clases en PHP
Ejemplo de clases
<?php class Multiplica { var $resultado; function multi($a,$b) { $this->resultado=$a*$b; } function imprime() { echo $this->resultado,"<br>"; } }
R. Capilla
31
Control de Errores
R. Capilla
32
Control de Errores
Funcin php_errormsg
// Inicializamos el control de errores ini_set('track_errors', true); // Mostramos el error
$login = @ ftp_login($ftpStream, "username", "password") or die(No puedo abrir el servidor de FTP:
$php_errormsg");
R. Capilla
33
Control de Errores
Informe de Errores
Funcin error_reporting() //Limita la captura de errores
E_ERROR // Error fatal tiempo de ejecucin E_WARNING // Error no fatal E_PARSE // Error en tiempo de compilacin E_NOTICE // Avisos en tiempo de ejecucin E_USER_WARNING // Mensaje de aviso generado por el usuario E_CORE_WARNING // Advertencia fatal al arrancar PHP
R. Capilla
34
Control de Errores
Control de Errores
R. Capilla
36
R. Capilla
Uso de Sesiones
R. Capilla
38
Uso de Sesiones
R. Capilla
39
Uso de Sesiones
Inicializacin
Session_start() : inicializa una sesin Session_register(variable) : registra una variable en una sesion Session_id() : obtiene el identificador de una sesin <?php session_start(); echo "He inicializado la sesin"; ?> <?php session_start(); echo 'La sesin actual es: '.session_id(); ?>
URJC - Aplicaciones para la Web
40
R. Capilla
Uso de Sesiones Ejemplo de un contador que se incrementa <?php session_register('contador'); echo '<a href="'.$PHP_SELF.'?'.$SID.'">Contador vale: '.++$_SESSION['contador']. '</a>'; ?>
$PHP_SELF // Script en ejecucin $SID // Constante con el nombre e identificador de sesin
Session_name(misesion) : nombre de una sesion La asignacin del nombre de sesin debe realizarse antes que ninguna otra funcin con sesiones, antes que session_start() o session_register().
URJC - Aplicaciones para la Web
R. Capilla
41
Uso de Sesiones Ejemplo Carro de Compra <?php // Manual de PHP de WebEstilo.com session_start(); session_register('itemsEnCesta'); $item=$_POST['item']; $cantidad=$_POST['cantidad']; $itemsEnCesta=$_SESSION['itemsEnCesta'];
R. Capilla
42
Uso de Sesiones
Ejemplo Carro de Compra if ($item){ if (!isset($itemsEnCesta)){ $itemsEnCesta[$item]=$cantidad; }else{ // $v= valor del elemento; $k=clave foreach($itemsEnCesta as $k => $v){ if ($item==$k){ $itemsEnCesta[$k]+=$cantidad; $encontrado=1; } } if (!$encontrado) $itemsEnCesta[$item]=$cantidad; } } $_SESSION['itemsEnCesta']=$itemsEnCesta; ?> URJC - Aplicaciones para la Web
R. Capilla
43
Uso de Sesiones
<html> <body> <tt> <form action="<?=$PHP_SELF."?".$SID?>" method="post"> Dime el producto <input type="text" name="item" size="20"><br> Cuantas unidades <input type="text" name="cantidad" size="20"><br> <input type="submit" value="Aadir a la cesta"><br> </form> <? if (isset($itemsEnCesta)){ echo'El contenido de la cesta de la compra es:<br>'; foreach($itemsEnCesta as $k => $v){ echo 'Artculo: '.$k.' ud: '.$v.'<br>'; } } ?> </tt> </body> </html>
URJC - Aplicaciones para la Web
R. Capilla
44
Uso de Sesiones
<?php class SessionUser { function SessionUser() { session_start(); } function isValid() { if (isset($_SESSION["login"] )) return true; return false;} function crearSesion($login) { session_register("login"); $_SESSION["login"] = $login; } function SessionDestroy() { session_unregister("login"); session_destroy(); } function getUsername() { if ($this->isValid()) return $_SESSION["login"]; else return ""; } function logout() { $this->SessionDestroy(); } }?>
R. Capilla
45
R. Capilla
46
Google Maps
$phoogle = new PhoogleMap(); $phoogle->setAPIkey('ABQIAAAAgnHj1ABl6hQQrQv9loTCqhQ2evcpjfkIZPdU9Omd6kOUx9w'); $phoogle->setHeight(400); $phoogle->setWidth(500); $phoogle->zoomLevel = 12; $phoogle->centerMap(40.396764, -3.55957); . DATOS DEL GRAFICO . $phoogle->printGoogleJS(); $phoogle->showMap();
http://www.phpinsider.com/php/code/GoogleMapAPI/
R. Capilla
47
XAJAX
http://xajaxproject.org
R. Capilla
48
XAJAX
Incluir con PHP el archivo donde se encuentre la clase xajax require ('xajax/xajax.inc.php'); Crear una instancia de un objeto de la clase xajax $xajax = new xajax();
49
R. Capilla
XAJAX
Escribimos una funcin en PHP que se invocar por medio de ajax. Esta funcin realizar acciones del lado del servidor. En la propia funcin realizaremos una instancia de un objeto AjaxResponse, que se usar para mostrar resultados en la pgina. $respuesta = new xajaxResponse(); return $respuesta;
URJC - Aplicaciones para la Web
R. Capilla
50
XAJAX El objeto xajaxResponse() sirve para realizar acciones en la pgina sin tener que recargar el documento. Dispone de varios mtodos o funciones: Ej: addAssign() asigna un valor a una propiedad de un elemento de la pgina. En el ejemplo asigna el valor contenido en la variable $salida al innerHTML de la capa "respuesta", con lo que se altera el texto contenido en esa capa.
$respuesta->addAssign("respuesta","innerHTML",$salida);
R. Capilla
51
Antes de enviar el contenido a la pgina hay que ejecutar un mtodo del objeto xajax para procesar las peticiones del que puedan llegar a la pgina. $xajax->processRequests();
R. Capilla
52
XAJAX
<? //inclumos la clase ajax require ('xajax/xajax.inc.php'); //instanciamos el objeto de la clase xajax $xajax = new xajax(); function procesar_formulario($form_entrada){ $salida = "Gracias por enviarnos tus datos. Hemos procesado esto:<p>"; $salida .= "Nombre: " . $form_entrada["nombre"]; $salida .= "<br>Apellidos: " . $form_entrada["apellidos"]; //instanciamos el objeto para generar la respuesta con ajax $respuesta = new xajaxResponse(); //escribimos en la capa con id="respuesta" el texto que aparece en $salida $respuesta->addAssign("mensaje","innerHTML",$salida); //tenemos que devolver la instanciacin del objeto xajaxResponse return $respuesta; } //registramos la funcin creada anteriormente al objeto xajax $xajax->registerFunction("procesar_formulario"); //El objeto xajax tiene que procesar cualquier peticin $xajax->processRequests(); ?>
R. Capilla
53
XAJAX
<html> <head> <title>Enviar y procesar un formulario con Ajax y PHP</title> <? //En el <head> indicamos al objeto xajax se encargue de generar el cdigo javascript necesario $xajax->printJavascript("xajax/"); ?> </head> <body> <h1>Recibir y procesar formulario con Ajax y PHP</h1> <div id="mensaje"> <form id="formulario"> Nombre: <input type="text" name="nombre"> <br> Apellidos: <input type="text" name="apellidos"> <br> <input type="button" value="Enviar" onclick="xajax_procesar_formulario(xajax.getFormValues('formulario'))"> </form> </div> </body> 54 </html> URJC - Aplicaciones para la Web R. Capilla