Prefacio
. xxiii
1. Introducción al contenido dinámico de la web
. 1
HTTP y HTML: los conceptos básicos de Berners-Lee
.. 2
Procedimiento de solicitud/respuesta
.. 2
Ventajas de PHP, MySQL, JavaScript, CSS y HTML5
.. 5
MariaDB: el clon de MySQL
.. 6
Utilización de PHP
. 7
Utilización de MySQL
. 7
Utilización de JavaScript
9
Utilización de CSS
.. 10
Y luego está HTML5
11
El servidor web Apache
.. 11
Uso de dispositivos móviles
.. 12
Sobre el software libre
. 12
Todo junto
13
Preguntas
. 14
2. Configuración de un servidor de desarrollo
. 17
¿Qué son WAMP, MAMP o LAMP?
.. 18
Instalación de AMPPS en Windows
.. 18
Prueba de la instalación
22
Acceso a la carpeta principal (Windows)
24
WAMP alternativos
.. 25
Instalación de AMPPS en macOS
.. 26
Acceso a la carpeta principal (macOS)
27
Instalación de LAMP en Linux
. 28
Trabajar de forma remota
28
Inicio de sesión
29
Utilización de FTP
.. 29
Utilización del editor de programas
30
Utilización del EDI
. 31
Preguntas
. 33
3. Introducción a PHP
.. 35
Inclusión de PHP en HTML
.. 35
Ejemplos de este libro
.. 37
Estructura de PHP
.. 37
Utilización de comentarios
. 37
Sintaxis básica
.. 38
Variables
39
Operadores
. 44
Asignación de valores a variables
.. 47
Comandos de varias líneas
. 49
Tipificación de variables
51
Constantes
.. 52
Constantes predefinidas
.. 53
Diferencia entre los comandos echo y print
.. 54
Funciones
54
Ámbito de aplicación de variables
. 55
Preguntas
. 61
4. Expresiones y control de flujo en PHP
. 63
Expresiones
63
¿TRUE o FALSE?
.. 63
Literales y variables
65
Operadores
. 66
Prioridades de los operadores
.. 66
Asociatividad
68
Operadores relacionales
.. 70
Condicionales
73
La declaración if
. 74
La declaración else
. 75
La declaración elseif
. 77
La declaración switch
.. 78
El operador ?
. 81
Bucles
82
Bucles while
.. 83
Bucles do
while
84
Bucles for
.. 85
Salida del bucle
.. 87
Declaración continue
88
Conversión implícita y explícita
88
Enlaces dinámicos en PHP
90
Enlaces dinámicos en acción
90
Preguntas
. 91
5. Funciones y objetos en PHP
. 93
Funciones en PHP
. 94
Definición de función
. 95
Devolución de un valor
. 95
Devolución de una matriz
.. 97
Paso de argumentos por referencia
.. 98
Devolución en variables globales
. 99
Recapitulación sobre el ámbito de aplicación de las variables
. 100
Inclusión y requisición de archivos
. 100
La declaración include
.. 100
Utilización de include_once
. 101
Utilización de require y require_once
. 101
Compatibilidad de las versiones PHP
.. 102
Objetos en PHP
102
Terminología
.. 103
Declaración de clases
. 104
Creación de objetos
. 105
Acceso a objetos
.. 105
Clonación de objetos
.. 107
Constructores
. 108
Destructores
108
Métodos de escritura
.. 109
Declaración de propiedades
110
Declaración de constantes
110
Ámbito de las propiedades y de los métodos
. 111
Métodos estáticos
. 112
Propiedades estáticas
. 113
Herencia
114
Preguntas
.. 117
6. Matrices en PHP
..119
Introducción
119
Matrices indexadas numéricamente
119
Matrices asociativas
121
Asignación mediante la palabra clave array
122
Bucle foreach
as
. 123
Matrices de varias dimensiones
. 125
Uso de funciones en matrices
.. 128
is_array
.. 128
count
.. 128
sort
.. 128
shuffle
129
explode
.. 129
extract
. 130
compact
. 131
reset
. 132
end
132
Preguntas
.. 132
7. PHP práctico
..135
Uso de printf
135
Ajustes de la precisión
.. 136
Relleno de cadenas
.. 138
Uso de sprintf
. 139
Funciones de fecha y hora
139
Constantes de fecha
. 142
Uso de la verificación de fecha
142
Manejo de archivos
. 143
Verificación de la existencia de un archivo
143
Creación de archivos
.. 143
Lectura de archivos
. 145
Copia de archivos
. 146
Movimiento de archivos
.. 146
Eliminación de archivos
147
Actualización de archivos
147
Bloqueo de archivos debido a accesos múltiples
. 148
Lectura de archivos completos
.. 150
Carga de archivos
. 151
Llamadas al sistema
156
¿XHTML o HTML5?
. 158
Preguntas
.. 158
8. Introducción a MySQL
..161
Fundamentos de MySQL
. 161
Resumen de términos de bases de datos
.. 162
Acceso a MySQL mediante la línea de comandos
.. 162
Inicio de la interfaz de la línea de comandos
. 163
Uso de la interfaz de la línea de comandos
167
Comandos MySQL
168
Tipos de datos
173
Índices
183
Creación de un índice
. 183
Consulta de bases de datos MySQL
.. 189
Unión de tablas
.. 199
Uso de operadores lógicos
. 201
Funciones MySQL
.. 202
Acceso a MySQL mediante phpMyAdmin
. 202
Preguntas
.. 203
9. Dominio de MySQL
.205
Diseño de bases de datos
.. 205
Claves principales: las claves de las bases de datos relacionales
. 206
Normalización
207
Primera forma normal
208
Segunda forma normal
.. 210
Tercera forma normal
212
Cuándo no utilizar la normalización
.. 214
Relaciones
215
Uno a uno
. 215
Uno a muchos
216
Muchos a muchos
217
Bases de datos y anonimato
218
Transacciones
. 219
Motores de almacenamiento de transacciones
.. 219
Uso de BEGIN
.. 220
Uso de COMMIT
. 221
Uso de ROLLBACK
.. 221
Uso de EXPLAIN
. 222
Copias de seguridad y restauración
. 223
Uso de mysqldump
.. 223
Creación de archivos de copias de seguridad
. 225
Restauración del archivo de la copia de seguridad
. 227
Descarga de datos en formato CSV
. 227
Planificación de copias de seguridad
. 228
Preguntas
.. 228
10. Acceso a MySQL mediante PHP
.231
Consultas de la base de datos MySQL con PHP
.. 231
El proceso
231
Creación del archivo de inicio de sesión
.. 232
Conexión a la base de datos MySQL
. 233
Un ejemplo práctico
239
La matriz $_POST
.. 242
Eliminación de un registro
.. 243
Visualización del formulario
.. 243
Consulta de la base de datos
.. 244
Ejecución del programa
245
MySQL práctico
246
Creación de una tabla
247
Descripción de una tabla
. 247
Eliminación de una tabla
. 248
Adición de datos
.. 249
Recuperación de datos
.. 250
Actualización de datos
.. 251
Borrado de datos
.. 251
Uso de AUTO_INCREMENT
.. 252
Realización de consultas adicionales
. 253
Prevención de intentos de piratería
. 254
Pasos que puedes seguir
. 255
Uso de marcadores de posición
.. 256
Prevención de la inyección de HTML
. 259
Uso procedimental de mysqli
.. 260
Preguntas
.. 262
11. Gestión de formularios
..263
Creación de formularios
263
Extracción de los datos enviados
. 265
Valores por defecto
. 266
Tipos de entradas
. 267
Desinfección de entradas
. 274
Programa de ejemplo
.. 276
Mejoras en HTML5
. 279
Atributo autocomplete
.. 279
Atributo autofocus
.. 279
Atributo placeholder
.. 279
Atributo required
.. 280
Atributos de sustitución
280
Atributos width y height
280
Atributos min y max
280
Atributo step
.. 281
Atributo form
. 281
Atributo list
. 281
Tipo de entrada color
. 281
Tipos de entradas number y range
282
Selectores de fecha y hora
282
Preguntas
.. 282
12. Cookies, sesiones y autenticación
.283
Uso de cookies en PHP
.. 283
Configuración de cookies
285
Acceso a cookies
.. 286
Eliminación de cookies
. 286
Autenticación HTTP
.. 286
Almacenamiento de nombres de usuario y contraseñas
290
Programa de ejemplo
. 292
Uso de sesiones
.. 295
Inicio de sesión
. 296
Finalización de sesión
298
Configuración del tiempo de espera
299
Seguridad de sesión
. 300
Preguntas
.. 303
13. Exploración de JavaScript
.305
Texto JavaScript y HTML
.. 305
Uso de scripts en el encabezamiento de documentos
307
Navegadores antiguos y no estándar
.. 307
Inclusión de archivos JavaScript
.. 308
Depuración de errores en JavaScript
.. 309
Uso de comentarios
.. 310
Signos de punto y coma
310
Variables
. 310
Variables de cadena de caracteres
. 311
Variables numéricas
.. 311
Matrices
312
Operadores
.. 312
Operadores aritméticos
. 313
Operadores de asignación
313
Operadores de comparación
314
Operadores lógicos
.. 314
Asignación creciente, decreciente y abreviada
. 314
Concatenación de cadenas
.. 315
Caracteres de escape
.. 315
Escritura de variables
.. 316
Funciones
. 317
Variables globales
317
Variables locales
317
Modelo de objetos del documento
.. 318
Otro uso del símbolo $
. 320
Uso del DOM
. 321
Sobre document.write
. 322
Uso de console.log
.. 322
Uso de alert
.. 322
Escritura en elementos
322
Uso de document.write
.. 323
Preguntas
.. 323
14. Expresiones y control de flujo en JavaScript
325
Expresiones
. 325
Literales y variables
. 326
Operadores
.. 327
Prioridad de operadores
328
Asociatividad
. 328
Operadores relacionales
329
Declaración with
.. 332
Uso de onerror
333
Uso de try
catch
.. 334
Condicionales
. 335
Declaración if
335
Declaración else
.. 335
Declaración switch
.. 336
Operador ?
.. 338
Bucles
. 338
Bucles while
338
Bucles do
while
.. 339
Bucles for
. 340
Salida del bucle
. 341
Declaración continue
. 341
Conversión explícita
342
Preguntas
.. 343
15. Funciones, objetos y matrices de JavaScript
345
Funciones JavaScript
. 345
Definición de función
345
Devolución de un valor
.. 347
Devolución de una matriz
349
Objetos JavaScript
350
Declaración de clase
.. 350
Creación de objetos
. 351
Acceso a objetos
.. 352
La palabra clave prototype
. 352
Matrices JavaScript
. 355
Matrices numéricas
. 355
Matrices asociativas
357
Matrices de varias dimensiones
358
Métodos de uso de matrices
. 359
Preguntas
.. 364
16. Validación de JavaScript y PHP y tratamiento de errores
..367
Validación de la entrada de usuario con JavaScript
.. 367
Documento validate.html (Parte 1)
. 367
Documento validate.html (Parte 2)
. 370
Expresiones regulares
. 373
Concordancia mediante metacaracteres
373
Concordancia de caracteres difusos
374
Agrupación mediante paréntesis
.. 375
Clase de caracteres
.. 376
Indicación del intervalo
. 376
Negación
.. 376
Otros ejemplos más complicados
. 377
Resumen de metacaracteres
379
Modificadores generales
.. 381
Uso de expresiones regulares en JavaScript
. 382
Uso de expresiones regulares en PHP
.. 382
Nueva visualización del formulario después de la validación PHP
. 383
Preguntas
.. 389
17. Uso de comunicaciones asíncronas
..391
¿Qué es la comunicación asíncrona?
.. 392
Uso de XMLHttpRequest
. 392
Tu primer programa asíncrono
.. 394
Uso de GET en lugar de POST
. 399
Envío de solicitudes XML
.. 401
Uso de frameworks para la comunicación asíncrona
. 406
Preguntas
.. 406
18. Introducción a CSS
407
Importación de hojas de estilo
408
Importación de CSS desde HTML
.. 408
Ajuste de estilo integrados
.. 409
Uso de ID
.. 409
Uso de clases
409
Uso del punto y coma
.. 410
Reglas CSS
.. 410
Asignaciones múltiples
. 410
Uso de comentarios
.. 411
Tipos de estilos
.. 412
Estilos por defecto
412
Estilos de usuario
.. 412
Hoja de estilo externas
.. 413
Estilos internos
.. 413
Estilos en línea
.. 414
Selectores CSS
.. 414
Selector de tipo
. 414
Selector de descendiente
.. 414
Selector de hijo
. 415
Selector de ID
416
Selector de clase
417
Selector de atributo
. 418
Selector universal
. 418
Selección por grupo
419
Cascada CSS
.. 419
Creadores de hojas de estilo
420
Métodos de hojas de estilo
.. 420
Selectores de hojas de estilo
.. 421
Diferencia entre los elementos div y span
.. 423
Medidas
. 425
Fuentes y tipografía
. 427
font-family
.. 427
font-style
.. 428
font-size
428
font-weight
.. 429
Tratamiento de estilos de texto
.. 429
Decoración
.. 429
Espaciado
. 430
Alineación
430
Transformación
. 430
Sangrado
.. 430
Colores CSS
431
Cadenas reducidas para determinar el color
432
Degradados
. 432
Elementos de posicionamiento
.. 434
Posicionamiento absoluto
434
Posicionamiento relativo
.. 434
Posicionamiento fijo
.. 435
Pseudoclases
437
Reglas abreviadas
. 439
El modelo de caja y el diseño
. 440
Fijación de márgenes
. 440
Aplicación de bordes
.. 442
Ajuste de relleno
.. 443
Contenidos del objeto
445
Preguntas
.. 445
19. CSS avanzado con CSS3
..447
Selectores de atributos
448
Partes coincidentes de las cadenas
.. 448
Propiedad box-sizing
.. 449
Fondos CSS3
.. 450
Propiedad background-clip
. 450
Propiedad background-origin
. 452
Propiedad background-size
. 452
Uso de auto Value
453
Múltiples fondos
.. 453
Bordes CSS3
.. 455
Propiedad border-color
. 455
Propiedad border-radius
456
Sombras de caja
. 459
Desbordamiento de elementos
.. 460
Diseño en varias columnas
.. 460
Colores y opacidad
.. 462
Colores HSL
.. 462
Colores HSLA
463
Colores RGB
.. 463
Colores RGBA
.. 463
Propiedad opacity
. 464
Efectos de texto
464
Propiedad text-shadow
.. 464
Propiedad text-overflow
464
Propiedad word-wrap
. 465
Fuentes web
.. 466
Fuentes de la web de Google
. 467
Transformaciones
. 468
Transformaciones 3D
469
Transiciones
470
Propiedades de las transiciones
. 470
Duración de las transiciones
.. 471
Retardo en las transiciones
.. 471
Tiempo de transición
.. 471
Sintaxis abreviada
472
Preguntas
.. 474
20. Acceso a CSS desde JavaScript
475
Revisión de la función getElementById
475
La función O
.. 475
La función S
476
La función C
.. 477
Inclusión de funciones
.. 478
Acceso a las propiedades de CSS desde JavaScript
478
Algunas propiedades de uso frecuente
.. 479
Otras propiedades
. 480
JavaScript en línea
482
Palabra clave this
. 482
Anexión de eventos a objetos en un script
.. 483
Anexión a otros eventos
484
Adición de nuevos elementos
. 485
Eliminación de elementos
486
Alternativas para añadir y eliminar elementos
.. 487
Uso de interrupciones
.. 488
Uso de setTimeout
488
Cancelación del tiempo de espera
489
Uso de setInterval
. 489
Uso de interrupciones en animaciones
. 491
Preguntas
.. 493
21. Introducción a jQuery
.495
¿Por qué jQuery?
.. 495
Inclusión de jQuery
. 496
Elección de la versión adecuada
. 496
Descarga
498
Uso de una red de entrega de contenido
.. 498
Personalización de jQuery
.. 499
Sintaxis de jQuery
499
Un sencillo ejemplo
500
Cómo evitar conflictos entre bibliotecas
.. 501
Selectores
. 501
Método css
.. 502
Selector de elemento
.. 502
Selector de ID
503
Selector de clase
503
Combinación de selectores
. 503
Tratamiento de eventos
. 504
En espera de que el documento esté preparado
505
Funciones y propiedades de eventos
.. 506
Eventos de enfoque y desenfoque
507
Palabra clave this
. 508
Eventos click y dblclick
508
Evento keypress
509
Programación amable
. 511
Evento mousemove
. 511
Otros eventos del ratón
. 514
Métodos alternativos del ratón
.. 515
Evento submit
516
Efectos especiales
. 517
Ocultación y presentación
518
Método toggle
519
Desvanecimiento de entrada y salida
. 520
Elementos deslizantes hacia arriba y hacia abajo
521
Animaciones
.. 522
Detención de animaciones
.. 525
Tratamiento del DOM
526
Diferencia entre los métodos text y html
. 527
Métodos val y attr
. 527
Adición y eliminación de elementos
.. 529
Aplicación dinámica de clases
.. 531
Modificación de dimensiones
. 531
Métodos width y height
. 532
Métodos innerWidth e innerHeight
.. 534
Métodos outerWidth y outerHeight
534
Atravesar el DOM
535
Elementos padre
535
Elementos hijo
.. 539
Elementos hermanos
.. 539
Selección de elementos anteriores y posteriores
.. 541
Atravesar selecciones jQuery
.. 543
Método is
. 544
Uso de jQuery sin selectores
.. 546
Método $.each
546
Método $.map
547
Uso de la comunicación asíncrona
. 548
Uso del método POST
548
Uso del método GET
.. 549
Complementos
549
Interfaz de usuario de jQuery
. 550
Otros complementos
.. 550
Preguntas
.. 550
22. Introducción a jQuery Mobile
.553
Inclusión de jQuery Mobile
. 554
Primeros pasos
.. 555
Páginas enlazadas
. 557
Enlace síncrono
. 557
Enlace en un documento de varias páginas
. 558
Transiciones de página
.. 558
Botones de diseño
562
Gestión de listas
565
Filtrado de listas
566
Divisores de listas
568
¿Y ahora qué?
. 571
Preguntas
.. 571
23. Introducción a HTML5
573
El lienzo
573
Geolocalización
. 575
Audio y vídeo
. 577
Formularios
. 578
Trabajadores de la web
. 579
Microdatos
.. 579
Preguntas
.. 579
24. El lienzo HTML5
.581
Creación y acceso al lienzo
. 581
Función toDataURL
583
Especificación del tipo de imagen
. 584
Método fillRect
. 585
Método clearRect
. 585
Método strokeRect
.. 585
Combinación de estos comandos
. 585
Método createLinearGradient
587
Método addColorStop detallado
.. 589
Método createRadialGradient
590
Uso de patrones para el relleno
592
Escritura de texto en el lienzo
.. 593
Método strokeText
594
Propiedad textBaseLine
594
Propiedad font
595
Propiedad textAlign
595
Método fillText
.. 596
Método measureText
. 596
Dibujo de líneas
. 597
Propiedad lineWidth
.. 597
Propiedades lineCap y lineJoin
. 597
Propiedad miterLimit
. 599
Uso de rutas
. 600
Métodos moveTo y lineTo
.. 600
Método stroke
600
Método rect
. 601
Áreas de relleno
. 601
Método clip
. 603
Método isPointInPath
. 606
Trabajo con curvas
607
Método arc
.. 607
Método arcTo
. 610
Método quadraticCurveTo
.. 611
Método bezierCurveTo
. 612
Tratamiento de imágenes
. 613
Método drawImage
. 613
Redimensionado de imágenes
614
Selección del área de la imagen
614
Copias del lienzo
.. 616
Adición de sombras
. 616
Edición a nivel de píxel
. 618
Método getImageData
618
Método putImageData
621
Método createImageData
. 621
Efectos gráficos avanzados
. 621
Propiedad globalCompositeOperation
.. 621
Propiedad globalAlpha
.. 624
Transformaciones
. 624
Método scale
.. 625
Método save y restore
Si quiere crear sitios web interactivos apoyados en bases de datos con la potente combinación de tecnologías de código abierto y estándares web, incluso sin tener conocimientos básicos de HTML, ha llegado al libro indicado.
Gracias a esta guía práctica, abordará la programación web dinámica con la última versión de las principales herramientas del momento: PHP, MySQL, CSS, HTML5 y las bibliotecas clave de jQuery. Asimismo, aprenderá a utilizar estas tecnologías en su conjunto y accederá a valiosas prácticas de programación web.
-Explorar MySQL desde la estructura de la base de datos hasta consultas complejas
-Utilizar la extensión MySQLi, la interfaz MySQL mejorada de PHP
-Crear páginas web dinámicas que se adaptan al usuario
-Gestionar las cookies y las sesiones, y conservar un alto grado de seguridad
-Mejorar el lenguaje JavaScript con las bibliotecas jQuery y jQuery Mobile
-Utilizar las llamadas con AJAX para la comunicación en segundo plano entre el navegador y el servidor
-Diseñar páginas web con las habilidades que adquirirá en CSS2 y CSS3
-Implementar las características de HTML5, incluidas la geolocalización, el audio, el vídeo y el elemento lienzo
-Reformatear sus sitios web con aplicaciones web para móviles