PDF de programación - Desarrollo web con PHP y MySQL

Imágen de pdf Desarrollo web con PHP y MySQL

Desarrollo web con PHP y MySQLgráfica de visualizaciones

Publicado el 21 de Junio del 2018
1.880 visualizaciones desde el 21 de Junio del 2018
2,8 MB
30 paginas
Creado hace 14a (12/02/2010)
Desarrollo web con
PHP y MySQL
Ejemplos prácticos


Piero Berni Millet

PID_00155711

CC-BY • PID_00155711

Desarrollo web con PHP y MySQL

Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a una licencia de Reconocimiento
(BY) v.3.0 España de Creative Commons. Podéis copiarlos, distribuirlos y transmitirlos públicamente siempre que citéis el
autor y la fuente (FUOC. Fundación para la Universitat Oberta de Catalunya). La licencia completa se puede consultar en
http://creativecommons.org/licenses/by/3.0/es/legalcode.es

CC-BY • PID_00155711

Índice

Desarrollo web con PHP y MySQL

1. Gráfico de barras con PHP y HTML..............................................

2. Web dinámica multilenguaje.........................................................

3. Formulario para enviar los datos a una cuenta Gmail............

4. El formulario anterior con código de seguridad anti

spambots (captcha)............................................................................


5. Geolocalización con GeoIp y Google Maps..................................

5.1. Acceso a la base de datos GeoIP para resolver la IP Address

Look Up de una IP .......................................................................

5.2. Geoposicionar en un mapa de Google la procedencia

geográfica del visitante ...............................................................

5

7

13

21

25

26

27

CC-BY • PID_00155711

5

Desarrollo web con PHP y MySQL

1. Gráfico de barras con PHP y HTML

Combinando PHP con HTML podemos generar fácilmente gráficas estadísticas
de barras para datos porcentuales sin necesidad de recurrir a un plug-in extra
de Flash o a una imagen GIF pregenerada dinámicamente con una librería
específica de PHP.

Vamos a ver cómo se construye un gráfico de barras para una encuesta sobre
navegadores de Internet, valiéndonos simplemente de las propiedades de las
tablas HTML para emular dicho gráfico.

Navegadores

% de votos

Color barra gráfica

MS Internet Explorer

Firefox

Netscape

Opera

40

30

10

20

red

green

blue

black

Programa: encuesta.php
Llamada: http://localhost/encuesta.php

CC-BY • PID_00155711

6

Desarrollo web con PHP y MySQL

CC-BY • PID_00155711

7

Desarrollo web con PHP y MySQL

2. Web dinámica multilenguaje

Combinando PHP con HTML podemos crear sitios web dinámicos multilen-
guaje con un alto grado de productividad. El sitio web de este ejemplo está
pensado para soportar tres o más idiomas: español (es), inglés (en) y catalán
(cat). Los contenidos se encuentran desvinculados de la plantilla web que con-
trola el diseño, la presentación y la navegación, lo que simplifica el manteni-
miento del sitio cuando se modifican o se añaden nuevos temas.

Estructura￿de￿la￿web￿multilenguaje

El￿programa￿principal￿(index.php)

Se accede al sitio mediante el script principal index.php. El recorrido por las
diferentes páginas de un idioma determinado se controla con los parámetros
‘pag’ e ‘idm’ que se pasan en la URL.

Por ejemplo:

• http://host/index.php Si no se incluyen los parámetros en la URL se carga
la página principal del sitio en el idioma predeterminado (ver index.php).

CC-BY • PID_00155711

8

Desarrollo web con PHP y MySQL

• http://host/index.php?pag=01&idm=es En este caso, los parámetros indi-
cados cargarán la página de contenido 01 (01_es.html) para el idioma es
(español).

El código del programa principal es el siguiente:

La￿plantilla￿(layer_$idm.html)

La plantilla del sitio se estructura en cuatro secciones:

• Cabecera. Espacio reservado para el título del sitio con su banner. En la
parte inferior izquierda se colocan el enlace de “ir a la página de inicio”,
más los tres enlaces que permiten seleccionar un idioma.

CC-BY • PID_00155711

9

Desarrollo web con PHP y MySQL

• Menú￿principal. La columna de la izquierda está reservada para el menú
de navegación, que se estructura en dos niveles (sección y subsecciones).
Haciendo clic en los enlaces del menú se abren las páginas de contenido
en el espacio central de la plantilla.

• Contenido. Aquí se incrustan dinámicamente los contenidos del sito. Por
ejemplo, los ficheros del sitio en español tienen la siguiente nomenclatura:
0_es.html (página de inicio o de bienvenida), 21_es.html (la página de
contenido del la sección 2.1 del menú 2.



Pie￿de￿página. Espacio reservado para los datos de contacto del sitio (di-
rección, correo electrónico).

Puesto que el sitio web soporta tres idiomas, la plantilla deberá triplicarse pa-
ra cada uno de ellos con las nomenclaturas: layer_es.html, layer_en.html, y
layer_cat.html

Incrustar￿los￿contenidos￿en￿el￿cuerpo￿de￿la￿plantilla

El mecanismo que controla las páginas de contenido y las incrusta en la sec-
ción Contenido se basa un pequeño script de PHP que debe residir en esa po-
sición de la plantilla del sito. Este programa comprueba si existe la página de
contenido en el sistema de archivos del servidor web. En caso de no existir,
por ejemplo, el contenido 2.1_es.html, se muestra un mensaje de error.

CC-BY • PID_00155711

10

Desarrollo web con PHP y MySQL

El código completo de la plantilla HTML es el siguiente:

CC-BY • PID_00155711

11

Desarrollo web con PHP y MySQL

CC-BY • PID_00155711

12

Desarrollo web con PHP y MySQL

CC-BY • PID_00155711

13

Desarrollo web con PHP y MySQL

3. Formulario para enviar los datos a una cuenta

Gmail

Generalmente, cuando se rellenan los campos de un formulario HTML y se
envían al servidor mediante un script de PHP, los datos se registran en una
base de datos. En otros casos, lo que se suele hacer es, tras procesarlos desde el
lado del servidor, enviarlos a una cuenta de correo electrónico. Típicamente
para el envío de correo con PHP se utiliza la función mail(), pero esta función
tiene varias limitaciones, por ejemplo, hay que tener una cuenta de usuario
registrada en el servidor que aloja la web y la función mail() no soporta el
envío de adjuntos.

Afortunadamente, los datos recogidos mediante un formulario HTML pueden
ser enviados a su destinatario mediante un servicio de correo externo tipo
Gmail. Para ello, es necesario utilizar una clase de PHP llamada PHPMailer que
facilita el envío de correo, añadiendo funcionalidad en el envío de correos
con adjuntos, en formato HTML y con diferentes codificaciones, soporte para
imágenes embebidas, headers personalizados y además funciona con múltiples
servidores de correo, entre los que se encuentra Gmail.

Para llevar a cabo este ejemplo práctico se necesita tener una cuenta de correo
Gmail y bajarse la clase phpmailer para php5/6 de la página de sus desarro-
lladores.

El código de la aplicación se distribuye en tres ficheros:







form.php. El script de PHP principal que carga el formulario HTML, valida
sus datos y los envía por correo a su destinatario mediante una cuenta
Gmail.

form.html. El archivo con el formulario HTML.

feedback.php. Una sencilla página web con la confirmación de envío y
recepción de los datos.

Lógica￿de￿aplicación:

CC-BY • PID_00155711

14

Desarrollo web con PHP y MySQL

Inicio￿del￿programa

El programa se arranca desde el script￿form.php. Si no existe una llamada desde
el formulario (si no se ha pulsado el botón “Enviar”), se carga el formulario
vacío (form.htm) por primera vez.

En el ejemplo particular, la validación del formulario tendrá en cuenta las
siguientes reglas:





Todos los campos son de dato obligatorio (no pueden estar vacíos).
El valor de código postal debe ser numérico (desde 00001 a 52999).
El valor del correo electrónico debe ser sintácticamente correcto.

CC-BY • PID_00155711

15

Desarrollo web con PHP y MySQL

Si no se cumple la validación, se devuelve el formulario con la notificación
del error y la memoria de datos.

Si la validación de los datos del formulario es correcta, éstos se envían por
correo mediante la clase phpmailer.

Finalmente, el usuario recibe la confirmación del envío.

Fichero￿principal￿(form.php)

CC-BY • PID_00155711

16

Desarrollo web con PHP y MySQL

CC-BY • PID_00155711

17

Desarrollo web con PHP y MySQL

CC-BY • PID_00155711

18

Desarrollo web con PHP y MySQL

Formulario￿HTML￿(form.html)

CC-BY • PID_00155711

19

Desarrollo web con PHP y MySQL

Confirmación￿de￿envío￿(feedback.html)

CC-BY • PID_00155711

20

Desarrollo web con PHP y MySQL

CC-BY • PID_00155711

21

Desarrollo web con PHP y MySQL

4. El formulario anterior con código de seguridad anti

spambots (captcha)

Captcha es el acrónimo de Completely Automated Public Turing test to tell Com-
puters and Humans Apart (prueba de Turing pública y automática para diferen-
ciar máquinas y humanos).

Los captchas son utilizados para evitar que robots, también llamados spambots,
puedan utilizar ciertos servicios. Por ejemplo, para que no puedan participar
en encuestas, registrarse para usar cuentas de correo electrónico (o su uso para
envío de correo basura) o, más recientemente, para evitar que correo basura
pueda ser enviado por un robot (el remitente debe pasar el test antes de que
se entregue al destinatario).

La idea básica para crear un captcha es generar primero un texto aleatorio;
luego, basado en este texto, generamos una imagen que se muestra al usua-
rio, y, finalmente, se compara el texto ingresado por el usuario con la palabra
aleatoria generada.

Generar￿el￿captcha￿(captcha.php)

El primer paso consiste en crear una imagen con un texto aleatorio mediante el
script￿captcha.php, el cual creará automáticamente el texto y salvará su valor
en la variable de sesión $_SESSION[’captcha’].

Lo siguiente es mostrar la imagen generada en el formulario HTML para que el
usuario pueda leerlo e ingresar el texto para ser verificado. Para ello, editamos
el archivo form.html y añadimos al final las siguientes líneas de código.

El formulario HTML con el captcha tendrá el siguiente aspecto:

CC-BY • PID_00155711

22

Desarrollo web con PHP y MySQL

El paso siguiente consiste en
  • Links de descarga
http://lwp-l.com/pdf12033

Comentarios de: Desarrollo web con PHP y MySQL (1)

Carlos Garcia Lopez
13 de Julio del 2018
estrellaestrellaestrellaestrellaestrella
Me paracen interesentan las soluciones simples a determinados tipos de problemas y casos muy comunes.
Responder

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad