PHP y MySQL - Manual de aprendizaje para crear un sitio web

Las bases del lenguaje PHP


Funciones y estructuras de control

  • Las condiciones en PHP
  • Los bucles en PHP
  • Las tablas o arrays en PHP - 1 de 2
  • Las tablas o arrays en PHP - 2 de 2
  • Procesamiento de las cadenas de caracteres en PHP - 1 de 2
  • Procesamiento de las cadenas de caracteres en PHP - 2 de 2
  • Los operadores en PHP - 1 de 2
  • Los operadores en PHP - 2 de 2
  • Las funciones en PHP - 1 de 2
  • Las funciones en PHP - 2 de 2
  • Almacenar una función en una variable en PHP
  • Las fechas en PHP - 1 de 2
  • Las fechas en PHP - 2 de 2
  • Los archivos en PHP - 1 de 3
  • Los archivos en PHP - 2 de 3
  • Los archivos en PHP - 3 de 3
  • Los includes en PHP

Transmitir datos de una página a otra

  • Las variables superglobales en PHP - 1 de 2
  • Las variables superglobales en PHP - 2 de 2
  • El método GET en PHP - 1 de 2
  • El método GET en PHP - 2 de 2
  • El método POST en PHP - 1 de 3
  • El método POST en PHP - 2 de 3
  • El método POST en PHP - 3 de 3
  • El método $_REQUEST en PHP
  • Control de datos y redirección de páginas en PHP - 1 de 2
  • Control de datos y redirección de páginas en PHP - 2 de 2

Manipular una imagen

  • Creación de una imagen en PHP
  • Texto y color de imágenes en PHP
  • Las formas en PHP

Base de datos MySQL

  • PHPMyAdmin - 1 de 2
  • PHPMyAdmin - 2 de 2
  • El lenguaje SQL con MySQL y PHPMyAdmin - 1 de 3
  • El lenguaje SQL con MySQL y PHPMyAdmin - 2 de 3
  • El lenguaje SQL con MySQL y PHPMyAdmin - 3 de 3
  • SQL avanzado en MySQL y PHPMyAdmin - 1 de 5
  • SQL avanzado en MySQL y PHPMyAdmin - 2 de 5
  • SQL avanzado en MySQL y PHPMyAdmin - 3 de 5
  • SQL avanzado en MySQL y PHPMyAdmin - 4 de 5
  • SQL avanzado en MySQL y PHPMyAdmin - 5 de 5
  • Ejercicios SQL - PHPMyAdmin
  • Acceso a las bases de datos con PHP - 1 de 6
  • Acceso a las bases de datos con PHP - 2 de 6
  • Acceso a las bases de datos con PHP - 3 de 6
  • Acceso a las bases de datos con PHP - 4 de 6
  • Acceso a las bases de datos con PHP - 5 de 6
  • Acceso a las bases de datos con PHP - 6 de 6
  • Ejercicios con PHP y MySQL - 1 de 2
  • Ejercicios con PHP y MySQL - 2 de 2

El objeto

  • La Clase - Programación Orientada a Objetos en PHP - 1 de 3
  • La Clase - Programación Orientada a Objetos en PHP - 2 de 3
  • La Clase - Programación Orientada a Objetos en PHP - 3 de 3
  • La Herencia en PHP
  • Las clases abstractas y las clases finales en PHP
  • Los métodos mágicos en PHP
  • Namespaces en PHP
  • Ejercicios de Programacion Orientada a Objetos en PHP - 1 de 3
  • Ejercicios de Programacion Orientada a Objetos en PHP - 2 de 3
  • Ejercicios de Programacion Orientada a Objetos en PHP - 3 de 3

Configuración

  • PHP.ini
  • Archivo de configuración MySQL: My.ini
  • Archivo de configuración Apache: Httpd.conf

Seguridad y Rendimiento

  • Fallos de seguridad XSS en PHP
  • Derechos de la base de datos - PhpMyAdmin
  • Inyección SQL (addslashes) en PHP
  • Comprobación de la sesión en PHP
  • Rendimiento en PHP y MySQL

Casos prácticos y corregidos

  • Crear un blog en PHP - 1 de 2
  • Crear un blog en PHP - 2 de 2
  • Crear una newsletter y un flujo RSS
  • Gestión de un parque informático en MVC
  • PHP - Crear un sitio Web para gestionar becarios


Las constantes en PHP

Una constante permite definir un dato, dándole un valor permanente válido para el resto del programa.

Esta constante es muy útil si quiere utilizar regularmente un valor sin tener que escribirlo cada vez. Por ejemplo, si utiliza normalmente PI y no quiere escribir cada vez el mismo valor 3,1415926535 puede crear una constante llamada PI por valor de 3,1415926535 y así podrá utilizar PI en el código del programa.

Podemos definir una constante con la palabra clave define:

<?php
define(’NOMBRE_DE_LA_CONSTANTE’,’valor de la constante’);
?>

Para definir y mostrar PI:

<?php
define(’PI’,3,1415926535);
echo PI
?>

Da como resultado:

3,1415926535

El nombre y la constante se escriben siempre en mayúsculas. El valor puede ser una cadena de caracteres, un valor numérico o un booleano.

No se puede volver a definir la constante. Conserva su valor permanentemente durante todo el programa, es decir, en la misma página PHP.

Para saber si una constante está definida, puede utilizar la función defined. Esta función devuelve true si la constante está definida, y false si no lo está.

<?php
define(’PI’,3,1415926535);
$var_definie = defined(’PI’);
echo $var_definie;
?>

Da como resultado:

True



Las variables en PHP

1. Asignación

Una variable es una información que se almacena temporalmente en la memoria, es decir, es una zona de la memoria que almacena información en una página PHP y que se destruye automáticamente cuando la página ya no se ejecuta.

Una variable PHP comienza siempre con $, seguida de una letra y de una secuencia de letras, cifras o del signo _.

Por ejemplo, $edad.

Atención: PHP distingue entre mayúsculas y minúsculas, por lo que $nombre es distinto de $Nombre.

Una variable siempre tiene un nombre y un valor.

Por ejemplo, $edad = 25, el valor 25 se asigna a la variable $edad gracias al signo =.

No es necesario definir y buscar el tipo de variable. Se hace automáticamente.

De este modo, puede escribir:

<?php
$edad = 25; //variable de tipo numérico
//después
$edad = ’toto’; //variable de tipo texto
?>

Esto no origina ningún error. El tipo de variable puede cambiar. En el ejemplo anterior cambia del tipo integer al tipo string (ver el siguiente párrafo).


2. Tipos de variables

Hay dos categorías de variables:
Escalar:
Los números enteros llamados integer son 1, 2, 3... y los números negativos, -1, -2, -3...
Los números decimales llamados float son los números positivos o negativos con comas (1.35665).
Atención: el punto se utiliza como separador.
La cadena de caracteres string: cualquiera con dobles comillas ("hola") o comillas simples (’hola’).
Los booleanos: solo tienen dos tipos de valores: verdadero o falso, clasificados como true o false.
Compuesta:
Las tablas: permiten almacenar varias variables. Podrá consultarlo en las publicaciones de Funciones y estructuras de control - Las tablas.
Los objetos: son más complejos y se describen en la publicación El objeto.


3. Particularidades del tipo de variable string

Si desea mostrar la frase «¿Qué pasa con un apóstrofo ’ come este?», no podrá escribir:

<?php $variable1 = ’¿Qué pasa con un apóstrofo ’ como este?’; ?>

El apóstrofo en la instrucción echo va a generar un error.

Para solucionar este problema, hay dos soluciones:

Usar comillas dobles en la instrucción echo:

<?php $variable1 = "¿Qué pasa con un apóstrofo ’ como este?"; ?>
Escapar en los apóstrofos con \:

<?php $variable1 = ’¿Qué pasa con un apóstrofo \’ como este?’; ?>

Cuando se añade la barra invertida delante del apóstrofo, se va a evitar que este se interprete como el final de la instrucción echo.

De esta manera, en el segundo caso la cadena "¿Qué pasa con un apóstrofo ’ como este?" estará en la variable $variable1.

Lo mismo ocurre con las comillas:

<?php $variable1 = ’Mis "súper" amigos’; ?>

o

<?php $variable1 = "Mis \"súper\" amigos"; ?>

La barra invertida anula el comportamiento de cierre de instrucción del apóstrofo o de las comillas dobles. También puede servir pra anular el comportamiento del $.

Si quiere mostrar $variable1 = pepe, escriba:

<?php
$variable1 = ’pepe’;
echo "\$variable1 = $variable1";
?>

Para terminar, puede acceder a un carácter de una cadena con la siguiente sintaxis:

$var[x] o $var es el nombre de la variable que contiene la cadena de caracteres y x es la posición del carácter que debe recuperar. Tenga en cuenta que para PHP el primer carácter está en la posición 0.

El siguiente ejemplo, primero muestra h y a continuación a.

<?php
$variable1 = ’hola’;
echo $variable1[0];
echo $variable1[3];
?>


4. La concatenación

Es un conjunto de cadena de caracteres. PHP permite la concatenación usando la coma o el punto.

<?php
echo ’hola ’.’lee esta ayuda’;
?>

Equivale a:

<?php
echo ’hola ’,lee esta ayuda’;
?>

Da como resultado:

Hola lee esta ayuda

Si quiere concatenar la cadena "hola" y "aquí hay un apóstrofo ’", no podrá escribir:

<?php
echo ’hola ’.’aquí hay un apóstrofo ’’;
?>

El apóstrofo cierra la cadena de caracteres que ha empezado en "aquí", por lo que PHP genera un error.

Para evitar este problema:

O bien escapa en el apóstrofo:

<?php
echo ’Hola ’.’aquí hay un apóstrofo \’ ’;
?>

O bien abre y cierra con comillas dobles la cadena de caracteres:

<?php
echo "hola"."aquí hay un apóstrofo ’";
?>

Si introduce en una variable la cadena "aquí hay un apóstrofo ’":

<?php
$variable = "aquí hay un apóstrofo ’";
echo "hola".$variable;
?>

Para mostrar una variable en una cadena de caracteres con ayuda de echo, escriba lo siguiente:

<?php
$variable = "aquí hay un apóstrofo ’";
echo "hola $variable";
?>

PHP interpreta la variable y muestra: "Hola aquí hay un apóstrofo ’", pero no "hola $variable".

Si quiere mostrar "hola$variable", no utilice $:

<?php
$variable = "aquí hay un apóstrofo ’";
echo "hola \$variable";
?>

Para terminar, y para una mayor claridad del código, utilizaremos la sintaxis:

<?php
$variable = "aquí hay un apóstrofe ’";
echo "hola ".$variable;
?>

Esto permite mostrar en Notepad++ la $variable en color azul, y por tanto resaltar las variables del texto.


5. Transtipado

Se utiliza para transformar un tipo de variable en otro.

Por ejemplo, si tiene un número decimal en una variable y desea transformarlo en un entero, solo debe convertirlo en entero. Esta conversión se denomina cast.

<?php
$variable = 15.325;
echo "El valor entero es:".(int)$variable;
?>

Da como resultado:

El valor entero es:15

En este ejemplo la variable $variable se transforma en tipo int y se concatena con la cadena de caracteres "El valor entero es:".

Por tanto, la sintaxis es:

(tipo)$variable

Y el tipo es igual a:
(int) o (integer) -> tipo entero
(bool) o (boolean) -> booleano
(double) o (float) o (real) -> tipo double
(string) -> tipo cadena de caracteres
(array) -> tipo array
(object) -> tipo objeto


Puede añadir espacios entre los paréntesis, antes y después del tipo.

<?php
$variable = 15.325;
echo "El valor entero es:".( integer )$variable;
?>

Da como resultado:

El valor entero es:15

Otro ejemplo consiste en transformar un número entero en cadena de caracteres:

<?php
$variable = 15.325;
echo "El valor del tipo de cadena de caracteres es:
".(string)$variable;
?>

Da como resultado:

El valor del tipo de cadena de caracteres es: 15.325

En el siguiente ejemplo, se transforma un número entero en booleano:

<?php
$variable = 15.35;
$varbool = (bool)$variable;
echo "El tipo de variable \$varbool es:".gettype($varbool);?>

Da como resultado:

El tipo de variable $varbool es: booleano


Las etiquetas en PHP

1. Sintaxis básica

XHTML (Extensible Hypertext Markup Language) es un lenguaje de etiquetas. Es el sucesor de HTML y se basa en la sintaxis de XML. Asegura la compatibilidad tanto en equipos clásicos como en smartphones.

Ya conoce las etiquetas <html>, <body>, <head>...

Escriba PHP entre dos etiquetas. Se definen de la siguiente manera:

<?php : indica el comienzo del código PHP

?> : indica el final del código PHP

Si usa Notepad++, estas etiquetas se mostrarán en color rojo.

Si retomamos el ejemplo del capítulo Instalación, el código PHP se escribirá de la siguiente manera:

<?php
echo ’<p>Hello!</p>’;
?>

También puede escribir este código en una sola línea:

<?php echo ’<p>Hello!</p>’; ?>

Existen otras formas de escribir estas etiquetas. En lugar de <?php y ?>, puede escribir:

<script language="php"> </script>

O bien:

<% %>

Y también:

<? ?>

Atención: en el archivo de configuración php.ini, las dos últimas sintaxis requieren un parámetro especial.

2. Inserción de etiquetas PHP en el código XHTML

Puede insertar un código PHP en cualquier ubicación del código XHTML.


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ejemplo de página PHP</title>
</head>
<body>
Hola, hace <?php echo ’buen tiempo’; ?>
</body>
</html>



En Internet Explorer este código va a generar la siguiente imagen en Chrome:



Haga clic con el botón derecho del ratón y escoja Ver código fuente de la página; obtendrá el siguiente código:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ejemplo de página PHP</title>
</head>
<body>
Hola, hace buen tiempo
</body>
</html>

Este es el código HTML que el navegador ha recibido e interpretado. Observe que no se puede ver el código servidor entre las etiquetas php.

También puede generar de forma dinámica el título de la página HTML, es decir, el contenido de la etiqueta <title>.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ejemplo PHP nº2 <?php echo ’PHP n°2’; ?></title>
</head>
<body>
Hola, hace <?php echo ’buen tiempo’; ?>
</body>
</html>

Este código va a generar en Chrome lo siguiente:


3. Envío de datos al servidor Web

Existen varias instrucciones para enviar datos al servidor, es decir, para insertar código HTML en una página Web.

La primera instrucción es echo y se escribe de la siguiente manera:

<?php echo ’texto’; ?>

También puede escribir este código:

<?php echo "texto"; ?>

O bien:

<?php echo(’texto’); ?>

Atención: si utiliza la primera sintaxis, no se interpretarán las variables (vea el siguiente ejemplo).

La segunda instrucción es print y se escribe de la siguiente manera:

<?php print(’texto’); ?>

Por tanto, print equivale a echo.

Existen otras variantes de print:

printf(): muestra una cadena de caracteres formateada.
sprintf(): devuelve una cadena formateada.
vprintf(): muestra una cadena formateada.
sscanf(): analiza una cadena con ayuda de un formato.
fscanf(): analiza un archivo en función del formato.
flush(): vacía los búferes de salida.


Observe que una instrucción siempre termina con un punto y coma.

También puede escribir varias instrucciones en la misma línea, siempre y cuando vayan separadas por punto y coma.

<?php echo ’texto’; ?> equivale a <?php echo ’tex’; echo ’to’; ?> y a
<?php echo ’tex’;
echo ’to’;
?>

4. Inserción del código XHTML con la instrucción echo

La función echo permite insertar cualquier código HTML, por ejemplo:

<?php echo ’<table><tr><td>texto</td></tr></table>’; ?>

Y como resultado inserta una tabla HTML.

También puede insertar una imagen de la siguiente manera:

<?php echo ’<img src="hoja.jpg" name="hoja" />’; ?>

Por tanto, puede escribir una página Web completa con la instrucción echo.

<?php
echo ’<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ,
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">’;
echo ’<html xmlns="http://www.w3.org/1999/xhtml">’;
echo ’<head>’;
echo ’<title>PHP ENI</title>’;
echo ’</head>’;
echo ’<body>’;
echo ’<p>’;
echo "Hello $nombre !<br />";
echo ’La fecha es 7 de marzo de 2013 .’; //
echo ’</p>’;
echo ’</body>’;
echo ’</html>’;
?>

El uso de las variables permite convertir el sitio en dinámico, es decir, la información mostrada se genera en una base de datos cuyo contenido cambia con regularidad. En este ejemplo la variable es $nombre y la cadena de caracteres está entre comillas.

5. Comentarios

Los comentarios son muy útiles en PHP porque permiten ignorar el código que el servidor Web tiene que ejecutar. Solamente el usuario puede ver el texto de los comentarios, que sirve para explicar las líneas del código PHP.

Existen dos tipos de comentarios:

Monolínea:

<?php
// comentario monolínea
// echo ’no veremos nada’;
?>

Multilínea:

<?php
/* comentario multilínea
echo ’no veremos’;
echo ’nada’;
*/
?>

En ninguno de los dos casos se ejecuta la instrucción echo.

Introducción PHP y MySQL

Esta serie de publicaciones se dirige a un público de programadores principiantes que ya conocen HTML y CSS y que quieren entender el funcionamiento de una aplicación Web para poder crear sus propios sitios Web dinámicos con PHP y MySQL. En la primera parte, el lector va a instalar su entorno de desarrollo EasyPHP y va a descubrir las bases del lenguaje PHP, (con la versión 5.5) sus principales funciones y estructuras de control, así como una explicación sobre la transmisión de datos entre las páginas y la librería gráfica (efectos especiales sobre una imagen). Estas partes teóricas se acompañan de numerosos ejemplos. Lo mismo ocurre en la segunda parte, dedicada al lenguaje SQL. El lector va a descubrir una base de datos MySQL y los distintos métodos para acceder a ella con PHP (PDO, SQL Avanzado), así como la manera de asegurar la seguridad de la base de datos. Un capítulo se dedica a los primeros pasos con Programación Orientada a Objetos y otro a la administración de la configuración y su rendimiento.

Objetivo:

El objetivo es explicar cómo crear de manera dinámica e interactiva un sitio Web, con ayuda de ejemplos. Los requisitos previos son: conocimientos de HTML y algunas nociones de JavaScript, con algunos ejercicios.

Funcionamiento de un sitio Web

Cuando ejecuta una URL (Uniform Resource Locator), por ejemplo http://www.google.es, ¿qué ocurre en el navegador (Internet Explorer, Firefox, Chrome...)? La URL se envía a un servidor Web a través de la red. Este servidor procesa la solicitud y reenvía el flujo HTML al navegador. Existen dos tipos de sitios Web: los sitios Web estáticos y los dinámicos. Los sitios Web estáticos solo contienen código clientes, es decir, un código que puede interpretar su navegador. Por ejemplo: HTML y JavaScript.

En cambio, los sitios Web dinámicos contienen lenguaje servidor porque el servidor Web interpreta este lenguaje y envía al navegador el flujo HTML. Por ejemplo, PHP, Java (no confundir con JavaScript) y Active Server Pages.NET (ASP.NET) son lenguajes del lado servidor. Cuando almacena información en su sitio Web, por ejemplo un inicio de sesión y una contraseña, un blog, artículos, etc., está obligado a utilizar una base de datos para almacenar la información y utilizar un lenguaje servidor que pueda leer o escribir la información en la base de datos.



Cuando ejecuta una URL desde un sitio Web dinámico (por ejemplo: http://google.es), se ejecutan dos procesos diferentes:

1) El servidor Web (Apache es el más frecuente) lee su URL y ejecuta el código servidor (en nuestro ejemplo, PHP) que va a crear un código HTML. A continuación el servidor envía a su navegador el flujo HTML que se ha creado.

2) Su navegador recibe el flujo HTML y lo interpreta de manera gráfica, mostrando la página HTML. De este modo, cuando quiera probar en su equipo un sitio Web estático, simplemente haga doble clic en la página HTML para abrirla en su navegador.

La URL será del tipo: C:\HTML\li.html Pero si quiere probar un sitio Web dinámico con PHP, obligatoriamente debe instalar en su equipo un servidor Web (por ejemplo, Apache) y ejecutar su página PHP con una URL de tipo: http://127.0.0.1/test.php


Tener en cuenta

Para crear un sitio Web estático, solo necesita un navegador (Internet Explorer, Firefox, Chrome...) y un editor de texto, por ejemplo Notepad++ o Sublime Text. Para crear un sitio Web dinámico, necesita un navegador, un servidor Web que ejecute las páginas PHP y un servidor de base de datos.

En este soporte utilizaremos el servidor Web Apache y el servidor de base de datos MySQL, que son las herramientas más utilizadas para crear sitios Web de poca envergadura. Son gratuitos y están disponibles como un paquete. Se instalan fácilmente en UNIX, Windows y Mac.

Los paquetes más utilizados son WAMP (XAMP en Linux, MAMP en Mac) y EasyPHP. En este libro utilizaremos EasyPHP 13.1 de Windows.

Para más información puede consultar las páginas Web www.php.net, http://php.net/manual/es/index.php y www.easyphp.org (desde este último enlace puede descargar la última versión de EasyPHP).


Este Es El Pantalón “Anti-Acoso”, Y Aunque No Lo Creas, Es Real Y Está A La Venta. OMG!

En japón se han inventado unos pantalones anti-violación como una medida para frenar el acoso sexual de las mujeres en dicho país. La idea suena extravagante y rara pero lo curioso es que se están vendiendo como pan caliente. El producto se puede traducir como “Pantalones de Seguridad Headmuns”. La singularidad de estos pantalones es que dibujan la figura del miembro masculino en su parte íntima, con lo cual buscan alejar a los depredadores sexuales. Aquí te mostramos el anuncio.



La físicoculturista que causa furor en las redes sociales


Esta físicoculturista ha causado un gran furor en las redes sociales... Mira la historia completa.

Increíble, con Un Solo Ejercicio Trabajas Todos los Músculos y Bajas de Peso Rapidísimo

Existe una larga lista de ejercicios para fortalecer, tonificar y quemar grada de ciertas áreas de nuestro cuerpo, pero ¿Apoco no sería mejor que pudieras hacerlo con uno solo de ellos?

La buena noticia es que si es posible. Se trata de un ejercicio conocido como plancha.

Consiste sostener tu cuerpo con el ante brazo en línea horizontal sobre el suelo como apoyándote en la punta de los pies.

Es como si estuvieras acostado boca arriba pero en lugar de descansar tu peso sobre el estómago lo haces con tus brazos y piernas.


Funciona mejor si contraes los músculos durante 30 segundos y relajas. Poco a poco vas aumentando los segundos hasta que mantengas la postura de 2 a 5. Descansa dos minutos y repite unas 5 veces.

Con solo 2 Ingredientes Elimina los Puntos Negros de tu Cara

Diariamente exponemos nuestro rostro al polvo y contaminación que se van acumulando en nuestra piel y ocasiona los desagradables puntos negros. Olvídate de pellizcarlos, esto solo dejará marcas y puede también causarte lesiones, empeorando el problema.

Hay una receta muy fácil de hacer en casa y que es muy efectiva para limpiar los poros de la cara con solo dos ingredientes que por lo regular todos tenemos en casa. A continuación te explicamos de qué se trata:

Los ingredientes son: la clara de un huevo y 1 cucharada de jugo de limón

1.- Bate la clara de huevo hasta que tenga una textura cremosa y agrega el jugo de limón

2.- Lava tu cara con agua tibia para que se abran los poros y sea más fácil sacar la suciedad.

3.- Aplica la mascarilla con un pincel suave

4.- Permanece con ella unos 25 minutos

5.- Lava tú cara y listo puedes aplicar la crema que usas regularmente para humectar.

Esa niña a su lado no es su hermana, es su hija !Conoce al papá de 13 años de edad!

Esa niña a su lado no es su hermana, es su hija !Conoce al papá de 13 años de edad!

Este muchacho se ha convertido en el padre mas joven de la historia junto teniendo su primer hijo a los 13 años de edad...