CIBELLI, CHRISTIAN
C1. Programación con PHP........ 1
PHP.................................................... 1
¿Dónde encontramos PHP?............ 3
PHP 5 PHP 6! ............................ 5
Programación Orientada a Objetos ......................................... 6
Herencia ......................................... 7
Herencia múltiple ............................ 8
Polimorfismo................................. 10
Encapsulamiento........................... 10
Entorno de trabajo LAMP
y WAMP........................................... 11
PHP INFO .................................... 12
Técnicas de programación........... 13
C2. PHP con clase....................... 15
Anatomía de una clase.................. 15
Constructor y destructor............... 15
Visibilidad....................................... 18
Public............................................ 18
Private........................................... 20
Protected...................................... 21
Métodos mágicos.......................... 21
__call ............................................ 21
Autocarga de clases...................... 23
Clases abstractas ......................... 24
Alcance de variables...................... 26
Variables globales.......................... 27
Variables estáticas......................... 28
Crear y extender clases................. 29
Instalación ..................................... 39 docBlock ....................................... 41
Generando documentación ......... 44
Resumen ........................................ 46
C3. Tipos de datos...................... 47
Validación de datos server-side ... 48
Arrays.............................................. 60
Arrays asociativos ......................... 62
Arrays multidimensionales ............ 62
Recuperando todo el contenido.... 63
Cortar cadenas en forma esmerada .................................... 70
Palíndromos ................................. 80
Proteger cadenas de texto ........... 84
Generación de strings aleatorios...................................... 94
Calcular edad................................ 99
Restar fechas.............................. 105
Calendario con clase .................. 126
Resumen ...................................... 108
C4. Recetas Web....................... 121
Trabajando con cookies ............. 121
Seguridad en el uso de cookies....129
Después de las cookies: sesiones ...................................... 129
Autentificación de usuarios ....... 131
Cookies + sesiones .................... 131
Autentificación HTTP .................. 136
Creando un captcha con GD ...... 140
Creando firmas dinámicas para
nuestros e-mails .......................... 145
Protegiendo nuestras imágenes
con marcas de agua .................... 148
Generación de thumbnails
usando GD ................................... 152
URL amigables con PHP ............ 159
Modificando contenido
con Output Buffering ................... 161
ob_start ........................................162
ob_end_flush ................................163
Detectando crawlers de motores
de búsqueda ................................ 166
Resumen ...................................... 169
C5. Orígenes de datos.............. 171
Trabajando con bases de datos ... 171
Bases de Datos MySQL............... 172
Creando un buscador de contenidos
alojados en base de datos........... 177
Paginando los resultados............. 181
Almacenando consultas en cache... 186
Bases de datos Microsoft SQL
Server desde PHP ....................... 191
Bases de datos portables con
SQLife ......................................... 197
Intercambio de datos vía XML .... 204
Cargando un XML externo con
Simple XML .................................204
Creando el Mapa de nuestro sitio Web ......................................210
Mapa del Sitio con índice ...........215
Resumen ...................................... 224
C6. Performance, seguridad y buenas prácticas.................... 225
Contenido estático versus contenido dinámico ...................................... 225
Estatizando en archivos HTML .... 226
Estatizando contenido con funciones PHP para el manejo de sistema de archivos ........................................226
Validando errores en los archivos ,estáticos .......................................228
Creando estáticas bajo demanda y/o como tareas programadas .......... 229
Manejo de errores ....................... 230
Creando nuestra clase para el control de errores ...................... 231
Mejoras de seguridad y buenas prácticas ......................... 237
Utilizar Programación orientada a objetos .................................... 238
Leer el manual oficial .................. 238
No comenzar con un framework, pero sí tenerlo en cuenta ........... 238
Utilizar un IDE ............................. 239
Configuración sugerida de PHP ... 240
No mostrar los errores ................. 240
Desactivar register_globals........... 241
Deshabilitar las funciones peligrosas que no necesitemos ................... 242
No permitir la apertura e inclusión de archivos remotos .....................243
Limitar los archivos y directorios que se pueden abrir .....................244
Aplicar límites al tiempo de ejecución de nuestros scripts, uso de memoria y tamaño de datos a enviar, y recibir por POST o subida de archivos ....244
No dejar un archivo con phpinfo() en nuestro servidor .......................245
Permitir la apertura de código PHP con tags "cortos" ..........................245
Cross Site Scripting .................... 245
SQL Injection .................................249
Herramientas para verificar la seguridad en PHP ...................... 253
PhpSecinfo....................................253
Resumen ...................................... 255
PHP, Programación Web avanzada para profesionales reune una colección de problemas y soluciones con ejemplos prácticos de programación orientada a objetos. El libro es una guía en el desarrollo de soluciones día a día e intenta ser una base para que las recetas sean extendidas de acuerdo a la necesidad o bien disparen nuevas ideas para sus proyectos. Es ideal para nuevos programadores que pueden tomar las recetas como buenas prácticas sustentadas en la experiencia del autor o para programadores avanzados que busquen soluciones puntuales. Qué encontrará: Definición y beneficios de la programación orientada a objetos, técnicas para considerar todo lo necesario para posicionamiento Web, uso de bases de datos en múltiples motores y técnicas de seguridad entre otras muchas recetas. Christian Cibelli: está especializado en la gestión y gerenciamiento de proyectos utilizando metodologías ágiles. Fue Gerente de Desarrollo en un importante multimedio argentino. Es parte de una compañía líder en Latinoamérica gerenciando proyectos de desarrollo