martes, 18 de octubre de 2011

25. Trabajar con Mails en PHP

Hola gente, que tal? Este post lo voy a dedicar al envió de mails mediante formularios. Aunque este tema ya lo hemos visto anteriormente en el blog cuando dimos los formularios. Sin embargo, he querido dedicar un post para que veamos las muchas funcionalidades que tiene la función de enviar mails mediante formularios. Uno de los motivos por los que me he animado también a escribir este post ha sido porque he recibido algunos mails en el que me indicaban que al enviar el formulario por mail les daban a algún tipo de error. Algunos de esos errores era porque no tenía configurado el programa de correo Mercury (en otro post ya indicare como configurarlo), otros errores era porque no tenían configurado el archivo php.ini. Así que voy a empezar explicando cómo configurar el archivo php.ini para el envió de mail. Abrimos el archivo php.ini y buscamos la variable SMTP:


















Si utilizamos un servidor en nuestro ordenador tenemos que poner localhost. Y otra variable a modificar es sendmail_from. Aquí pondremos la dirección que queramos que nos envíen los mails.  No obstante, por defecto aparece otra que aunque no la cambiemos no pasa nada, ya que en el código la mayoría de veces le indicamos a que dirección queremos que nos envié el formulario.











La función para enviar mail es:
mail ();
Un ejemplo de esta función será el siguiente:
<?
mail(“amizba@gmail”, “Esto es un ejemplo de la función mail”, “Así es como funciona la función mail”);
?>
Primero aparece la dirección donde se va a enviar el mail. La frase “Esto es un ejemplo de la función mail”, sería el asunto. Y la frase “Así es como funciona la función mail”, sería el cuerpo del mensaje.
Sin embargo, la dirección de mail, el asunto y el cuerpo del mail normalmente no se escribe así, se recurre a las variables. Por lo general no os vais a encontrar un código de esa manera, ¿por qué? Porque es una chapuza. Hay que ser profesional y recurrir como he dicho a las variables. Un código más profesional y que sería exactamente igual que el anterior ejemplo es el siguiente:
<?
$mail=”amizba@gmail.com”;
$asunto=”Esto es un ejemplo de la función mail”;
$cuerpo=”Así es como funciona la función mail”;
$enviarmail=mail($mail, $asunto, $cuerpo);
echo $enviarmail;
?>
Crear vosotros un archivo php con vuestra dirección mail y lo comprobáis vosotros mismos.
Si queremos enviar el formulario a varios mails, también es posible de una manera muy sencilla.
<?
$mail1=”amizba@gmail.com”;
$mail2=”amizba@hotmail.com”;
$mail3=”amizba@yahoo.es”;
$mails=”$mail1, $mail2, $mail3”;
$asunto=”Esto es un ejemplo de la función mail”;
$cuerpo=”Así es como funciona la función mail”;
$enviarmail=mail($mails, $asunto, $cuerpo);
echo $enviarmail;
?>
Si por ejemplo pusiéramos en la función mail esto así:
mail (“amizba@gmail”, “amizba@hotmail.com”, “amizba@yahoo.es”, $asunto, $cuerpo);
Nos daría un error, porque hay que englobar todas las direcciones email en una única variable.
Por cierto el echo $enviarmail; nos devolverá un valor booleano, verdadero o falso, si nos devuelve un 1 es que el mail se ha enviado correctamente, si nos devuelve el valor 0 el mail no se ha enviado correctamente.
Por otra parte, si tenemos una página Web y queremos enviar boletines o novedades sobre el sitio Web a nuestros usuarios registrados podemos tener almacenada en una base de datos una lista de mails. A la hora de enviar un correo a los usuarios nos será más cómodo que todos los mails estén englobados en una variable. Imaginaros que en la base de datos hay más de 100 usuarios registrados, pues esto nos puede ahorrar un montón de trabajo. Como ejemplo he creado una base de datos en la que he insertado una serie de emails:



















Ahora voy a crear un archivo mail.php para que se envié un correo a todos los emails que tengo almacenado en la base de datos.
<?
mysql_connect('localhost', 'amizba', wed123'');
mysql_select_db('mail');
$query = "SELECT email FROM email"; //seleccionamos la tabla
$result= mysql_query($query);
while ($MailArray = mysql_fetch_array($result)) {
$formsent = mail($MailArray[0], "Ejemplo de envio de mails mediante MySql", "Trabajar con mails en PHP-MySql", "From: amizba@gmail.com");
echo $formsent; //Nos devuelve el resultado de mail. Si es 1 se ha enviado correctamente, si es 0 no se ha enviado.
}
?>
Y visto en el navegador nos saldrá así:


















Aparecen 4 valores booleanos que significa true (verdadero), quiere decir que se ha enviado correctamente, se ha enviado cuatro veces, porque son 4 mails los que tenemos almacenados en la base de datos.
No obstante, hay otras formas de trabajar con mails. Una de esas formas es desde un script PHP indicar que el mail vaya formateado en HTML, o indicar que hayan imágenes o incluso la posibilidad de adjuntar archivos, que se enviaran junto con el mail. ¿Cómo podemos hacer esto? Mediante el uso de MIME  (Multi-purpose Internet Mail Extension), que es una extensión del correo electrónico para multipropósito en Internet, estándar que permite la transmisión de correo electrónico de todo tipo de ficheros (gráfica, audio, video). Para utilizar esta extensión hay que descargar primero la clase MIME en la siguiente página: http://www.phpguru.org/static/mime.mail.html
Vemos el archivo ejemplo.php (es propiedad de Jesús Conde)
<?php
/**
* This file is part of the htmlMimeMail5 package (http://www.phpguru.org/)
*
* htmlMimeMail5 is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* htmlMimeMail5 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with htmlMimeMail5; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*
* © Copyright 2005 Richard Heyes
*/

    require_once('../htmlMimeMail5.php'); //el nombre del archivo que vamos a utilizar

    $mail = new htmlMimeMail5();//creamos una nueva instancia de la clase para utilizar las distintas funciones.

    /**
    * Configurar la dirección desde donde se envía
    */
    $mail->setFrom('El blog de Amizba<amizba@gmail.com>');

    /**
    * Configurar el asunto
    */
    $mail->setSubject('email de Prueba');

    /**
    * Configurar alta prioridad
    */
    $mail->setPriority('high');

    /**
    * Configurar el texto del Email
    */
    $mail->setText('Ejemplo de Texto');

    /**
    * Configurar el HTML del email
    */
    $mail->setHTML('<b>Ejemplo HTML</b> <img src="background.gif">');

    /**
    * Añadir una imagen embebida
    */
    $mail->addEmbeddedImage(new fileEmbeddedImage('background.gif'));

    /**
    * Añadir un adjunto
    */
    $mail->addAttachment(new fileAttachment('ejemplo.zip'));

    /**
    * El mail donde se envia
    */
    $mail->send(array('amizba@gmail.com'));
?>
La primera parte de este archivo es un comentario largo y da una descripción de la clase htmlMimeMail. Además hay comentarios explicativos a lo largo del código que os va a ayudar a comprenderlo mejor.
Bueno, pues ya tenemos una cosa más, como enviar email con archivos, imágenes, etc. adjuntos. Os voy a poner una práctica muy sencilla para que la hagáis vosotros SOLOS, con ayuda de este post.
La práctica consiste en lo siguiente, tenemos el archivo subscriptores.php:



















Aquí le indicamos una dirección mail y le damos a la opción suscribirse, al darle al botón Enviar la dirección se nos almacena en la base de datos (que se supone que es lo primero que hemos creado). Y nos aparecerá la siguiente pantalla:


















Si volvemos al archivo y le indicamos la misma dirección nos sale la siguiente pantalla:



















Si le indicamos el mail y en vez de elegir la opción Subscribir, elegimos Borrar, nos aparece lo siguiente:

















Esto es una parte de nuestra aplicación. Ahora hay una segunda parte. Imaginaros que en nuestra base de datos hay almacenados 20 mails y queremos enviarle un boletín informativo a todos esos mails. ¿Cómo lo hacemos? Creamos un archivo php, que en el navegador será visto así:




















Cuando le indiquemos el Asunto y el Cuerpo del Mail y le demos a Enviar será enviado por correo a todos los mails que tengamos almacenados en nuestra base de datos. Es muy fácil. Paciencia y poco a poco. Ya veréis como os sale. En el próximo post veremos la solución. Hasta pronto!

viernes, 14 de octubre de 2011

24. Crear un diagrama

Buenas a todos, ¿qué hay? El post de hoy lo voy a dedicar a la creación de una gráfica. Esta aplicación es muy útil sobre todo para realizar encuestas en la Web. Voy a mostrar primero la aplicación completa y luego lo explicaré más detenidamente. Aquí se muestra el archivo voto.html visto en el navegador:














Cuando le demos al botón Mostrar Resultados nos redireccionará al archivo resultado.php en el que se mostrará una gráfica:














Pues bien, de eso trata este post: la realización de esta sencilla aplicación. Pero para que esta aplicación funcione habrá que crear una base de datos para que nos almacene los resultados. Así que vamos a ello:
create database Encuesta;
use Encuesta;
create table resultados (
                usuarios varchar (30),
                votos int
);
insert into resultados values
     ('Tenis', 0),
     ('Futbol', 0),
     ('Senderismo', 0);
Si guardamos este código en el bloc de notas lo guardamos con un nombre, por ejemplo, encuesta y lo importamos a MySql,  automáticamente se crea la base de datos y la tabla. Si tenéis problemas con esto me enviáis un mail y os lo explico.
Vamos a crear ahora el archivo voto.html, el código html será el siguiente:
<html>
<head>
<title>Encuesta</title>
<head>
<body>
<h1>Encuesta sobre actividades recreativas</h1>
<p>¿Cuál es tu actividad preferida?</p>
<form method=post action="resultado.php">
<input type=radio name=voto value="Tenis">Tenis<br>
<input type=radio name=voto value="Futbol">Futbol<br>
<input type=radio name=voto value="Senderismo">Senderismo<br><br>
<input type=submit value="Mostrar Resultados">
</form>
</body>
Como veis es un formulario sencillo que muestra las tres actividades: Tenis, Futbol y Senderismo llamando a la variable voto. Cuando elijamos una de las tres actividades nos redireccionará a la página resultado.php, cuyo código es el siguiente:
<?
// conexión con la base de datos
if (!$db_conn = @mysql_connect("localhost", "amizba", "kfkek521"))
{
  echo "No se puede conectar a la base de datos<br>";
  exit;
};
@mysql_select_db("Encuesta");

if (!empty($voto))  // Si se ha seleccionado una de las tres actividades
{
  $voto = addslashes($voto);
  $query = "update resultados
            set votos = votos + 1
            where usuarios = '$voto'";
  if(!($result = @mysql_query($query, $db_conn)))
  {
    echo "No se ha podido conectar a la base de datos<br>";
    exit;
  }
};

// resultados actuales de la encuesta
$query = "select * from resultados";
if(!($result = @mysql_query($query, $db_conn)))
{
  echo "No se puede conectar a la base de datos<br>";
  exit;
}
$usuarios = mysql_num_rows($result);

// calculo total del numero de votos
$total_votos=0;
while ($row = mysql_fetch_object ($result))
{
    $total_votos +=  $row->votos;
}
mysql_data_seek($result, 0);  // resetear el resultado


// configurar constantes
$width=500;        // ancho de la imagen en pixeles - encajará en 640x480
$left_margin = 50; // espacio a dejar a la izquierda de la imagen
$right_margin= 50; // lo mismo para la derecha
$bar_height = 40;
$bar_spacing = $bar_height/2;
$font = "arial.ttf";
$title_size= 16; // puntos
$main_size= 12; // puntos
$small_size= 12; // puntos
$text_indent = 10; // posición para las etiquetas de texto a la izquierda

// configurar el punto inicial desde el cual dibujar
$x = $left_margin + 60;  // colocar la línea de base para dibujar del gráfico
$y = 50;                 // lo mismo
$bar_unit = ($width-($x+$right_margin)) / 100;   // un "punto" en el gráfico

// cálcula el alto del gráfico -  barras más espacios más el margen
$height = $usuarios * ($bar_height + $bar_spacing) + 50;

// crear un lienzo en blanco
$im = imagecreate($width,$height);

// Asignar colores
$white=ImageColorAllocate($im,255,255,255);
$blue=ImageColorAllocate($im,0,64,128);
$black=ImageColorAllocate($im,0,0,0);
$pink = ImageColorAllocate($im,255,78,243);

$text_color = $black;
$percent_color = $black;
$bg_color = $white;
$line_color = $black;
$bar_color = $blue;
$number_color = $pink;

// Crear "lienzo" para dibujar
ImageFilledRectangle($im,0,0,$width,$height,$bg_color);

// Dibujar borde en torno al lienzo
ImageRectangle($im,0,0,$width-1,$height-1,$line_color);

// Añadir Título
$title = "Resultados Encuesta";
$title_dimensions = ImageTTFBBox($title_size, 0, $font, $title);
$title_length = $title_dimensions[2] - $title_dimensions[0];
$title_height = abs($title_dimensions[7] - $title_dimensions[1]);
$title_above_line = abs($title_dimensions[7]);
$title_x = ($width-$title_length)/2;  // centrarlo en x
$title_y = ($y - $title_height)/2 + $title_above_line; // centrarlo en y
ImageTTFText($im, $title_size, 0, $title_x, $title_y,
             $text_color, $font, $title);

// Dibujar una línea de base un poco por encima de la primera localización de la barra
// a un poco por debajo de la última
ImageLine($im, $x, $y-5, $x, $height-15, $line_color);
// Obtener cada línea de los datos de la base de datos y dibujar las barras correspondientes
while ($row = mysql_fetch_object ($result))
{
  if ($total_votos > 0)
    $percent = intval(round(($row->votos/$total_votos)*100));
  else
    $percent = 0;
  // muestra el tanto por ciento para este valor
  ImageTTFText($im, $main_size, 0, $width-30, $y+($bar_height/2),
               $percent_color, $font, $percent."%");
  if ($total_votos > 0)
    $right_value = intval(round(($row->votos/$total_votos)*100));
  else
    $right_value = 0;
 // tamaño de barra para este valor
  $bar_length = $x + ($right_value * $bar_unit);
// dibujar barra para este valor
  ImageFilledRectangle($im, $x, $y-2, $bar_length, $y+$bar_height, $bar_color);
// dibujar título para este valor
  ImageTTFText($im, $main_size, 0, $text_indent, $y+($bar_height/2),
               $text_color, $font, "$row->usuarios");
// dibujar contorno mostrando 100%
  ImageRectangle($im, $bar_length+1, $y-2,
                ($x+(100*$bar_unit)), $y+$bar_height, $line_color);

  // mostrar números
  ImageTTFText($im, $small_size, 0, $x+(100*$bar_unit)-50, $y+($bar_height/2),
               $number_color, $font, $row->votos."/".$total_votos);

  // hacia abajo a la siguiente barra
  $y=$y+($bar_height+$bar_spacing);
}
Header("Content-type:  image/png");
ImagePng($im);
ImageDestroy($im);
?>
Es un archivo largo, no obstante hay comentarios en él para ayudar a comprender lo que hace y lo que es cada cosa.
Bien, pues ya tenemos esta aplicación hecha, ahora os voy a proponer un pequeño proyecto para que practiquéis, es el sondeo de ventas de los diferentes productos que ofrece una empresa. Imaginaros la empresa X ofrece cuatro productos A, B, C y D. Hay que realizar un gráfico en el que determine en un tanto por cien los productos que más se venden o prefieren los usuarios. Echarle un poco de imaginación y de gran ayuda tenéis la aplicación de este post. Hasta aquí doy como finalizado este post esperando ansiosa vuestros resultados… si tenéis dudas o tenéis otra forma de realizar esta pequeña aplicación que hemos visto hoy me lo podéis hacer saber en un mail o comentario. Hasta la próxima!!





23. Autentificarse en la red


Hola a todo el mundo, ¿qué hay? El post de hoy lo voy a dedicar al registro de usuarios para acceder a determinadas áreas restringidas de un sitio Web. Lo voy a hacer de dos formas diferentes, una a la que yo llamo sencilla, puesto que no tiene base de datos. Y la otra, aunque no sea complicada lleva más código e implica la realización de una base de datos para almacenar los datos de los usuarios registrados.
Bien, empezare por la forma sencilla. Para la realización de esta aplicación crearemos cuatro archivos form.html, access.php, private.php y logout.php.
Empecemos viendo el primer archivo form.html en el navegador y a continuación el código html:














<html>
<head>
<title>Autentificarse en la red de una manera sencilla</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Estilo3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; }
.Estilo4 {
     font-size: x-large;
     font-weight: bold;
     font-family: "Times New Roman", Times, serif;
}
-->
</style>
</head>

<body>
<p align="center" class="Estilo4">FORMULARIO DE ACCESO </p>
<form name="form1" method="post" action="access.php">
  <table width="200" border="0" align="center">
    <tr>
      <td><span class="Estilo3">Usuario:</span></td>
      <td><input name="usuario" type="text" id="usuario" size="20" maxlength="20"></td>
    </tr>
    <tr>
      <td><span class="Estilo3">Contrase&ntilde;a</span>:</td>
      <td><input name="password" type="password" id="password" size="16" maxlength="16"></td>
    </tr>
    <tr>
      <td colspan="2"><div align="center">
        <input type="submit" name="Submit" value="Enviar">
      </div></td>
    </tr>
  </table>
</form>
<p>&nbsp;</p>
</body>
</html>
Vale se trata de un formulario sencillo al darle al botón Enviar nos redireccionará a la página access.php que ahora veremos. El campo de texto que corresponde al usuario le hemos indicado el nombre de usuario y en el campo de texto de la contraseña le hemos indicado el nombre password. Muy importante, porque estas son las variables que vamos a utilizar.
Pasamos al archivo access.php:
<html>
<head>
<title>Autentificarse en la red de una manera sencilla</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Estilo3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; }
.Estilo4 {
     font-size: x-large;
     font-weight: bold;
     font-family: "Times New Roman", Times, serif;
}
-->
</style>
</head>

<body>
<?php
import_request_variables("P","f_");
if (!strcmp($f_usuario,"amizba") && !strcmp($f_password,"123wed")) //El nombre de usuario y la contraseña
{
session_start();
$_SESSION['acceso']=1;//El tipo de acceso esta indicado mediante un valor.
}
echo "<a href=private.php>Acceder a la página privada</a>";
?>
</body>
</html>
Hay una pequeña explicación en el código. Pasamos ahora al archivo private.php
<html>
<head>
<title>Autentificarse en la red de una manera sencilla</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Estilo3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; }
.Estilo4 {
     font-size: x-large;
     font-weight: bold;
     font-family: "Times New Roman", Times, serif;
}
-->
</style>
</head>

<body>
<?
session_start();
if ($_SESSION['acceso']!="1")
{
header("Location:form.html");
exit;
}
echo "Bienvenido a la página privada<br>";
echo "<a href=logout.php>Salir del sistema</a>";
?>
</body>
</html>
Y por último el archivo logout.php:
<html>
<head>
<title>Autentificarse en la red de una manera sencilla</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Estilo3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; }
.Estilo4 {
     font-size: x-large;
     font-weight: bold;
     font-family: "Times New Roman", Times, serif;
}
-->
</style>
</head>

<body>
<?
session_destroy();//destruye la sesión
echo "Ha salido del sistema<br>";
echo "<a href=form.html>Volver al inicio</a>";
?>
</body>
</html>
Vemos el funcionamiento de esta aplicación. Indicamos el nombre de usuario y contraseña:














Le damos al botón Enviar y nos lleva a la página access.php:














Accedemos a página privada, nos redirecciona al archivo private.php














Y por último salimos del sistema (logout.php):














Este tipo de aplicaciones es utilizado en páginas web donde tienen acceso a las zonas restringidas personal de la empresa. A lo mejor los comerciales de una empresa saben el plan de trabajo porque el director del departamento se lo indica en un área del sitio web en el que solo pueden acceder los comerciales mediante una contraseña y un nombre de usuario. Se sigue utilizando este tipo de aplicaciones por su sencillez y porque es una aplicación rápida. Sin embargo, aconsejo utilizar bases de datos, aunque el usuario que vaya acceder a la zona restringida sea uno. Simplemente por seguridad, imaginaros que uno de esos comerciales se da de baja en la empresa por seguridad hay que modificar el código para cambiar el nombre de usuario y contraseña… suele ser más engorroso.
Ahora pasamos a otro tipo de aplicación, pero en esta hay que crear una base de datos. Para realizar esta aplicación aparte de la base de datos crearemos estos cinco archivos: page.php, registro.php, login.php, validar_usuario.php y por último logout.php.
Creamos la base de datos a la que llamamos users:
CREATE TABLE 'usuarios' (
 'id' INT(11) NOT NULL AUTO_INCREMENT,
'usuario' VARCHAR(20)
'password' VARCHAR(10)
'email' VARCHAR(45)
PRIMARY KEY  (`id`)
)














Ahora vamos a crear el archivo page.php visto en el navegador:
<?
session_start();
echo 'Bienvenido, ';
if (isset($_SESSION['k_username'])) {
echo '<b>'.$_SESSION['k_username'].'</b>.';
echo '<p><a href="logout.php">Logout</a></p>';
}else{
echo '<p><a href="login.php">Login</a></p>
<p><a href="registro.php">Registrar</a></p>';
}
?>














Cuando accedamos a esta página todavía no estaremos logeados, para logearnos necesitamos primero registrarnos, así es que vamos a ello, hacemos clic en Registrar. Nos vamos al archivo registro.php:
<?
 session_start();
      
//datos para establecer la conexion con la base de mysql.
     mysql_connect('localhost','root','')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
     mysql_select_db('users')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
      
     function formRegistro(){
     ?>
     <form action="registro.php" method="post">
Usuario (max 20):
       <input type="text" name="username" size="20" maxlength="20" /><br />
     Password (max 10):
<input type="password" name="password" size="10" maxlength="10" />
Confirma: <input type="password" name="password2" size="10" maxlength="10" /><br />
Email (max 40):
     <input type="text" name="email" size="20" maxlength="40" /><br />
<input type="submit" value="Registrar" />
</form>
<?
     }
      
     // verificamos si se han enviado ya las variables necesarias.
     if (isset($_POST["username"])) {
         $username = $_POST["username"];
         $password = $_POST["password"];
         $password2 = $_POST["password2"];
         $email = $_POST["email"];
         // Hay campos en blanco
         if($username==NULL|$password==NULL|$password2==NULL|$email==NULL) {
             echo "un campo est&aacute; vacio.";
             formRegistro();
         }else{
             // ¿Coinciden las contrase&ntilde;as?
             if($password!=$password2) {
                 echo "Las contrase&ntilde;as no coinciden";
                 formRegistro();
             }else{
                 // Comprobamos si el nombre de usuario o la cuenta de correo ya exist&iacute;an
            $checkuser = mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
                 $username_exist = mysql_num_rows($checkuser);
                
                 $checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
                 $email_exist = mysql_num_rows($checkemail);
        
                 if ($email_exist>0|$username_exist>0) {
                     echo "El nombre de usuario o la cuenta de correo estan ya en uso";
                     formRegistro();
                 }else{
                     $query = 'INSERT INTO usuarios (usuario, password, email)
                     VALUES (\''.$username.'\',\''.$password.'\',\''.$email.'\')';
                    
                     mysql_query($query) or die(mysql_error());
                echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
                     echo 'Ahora puede entrar ingresando su usuario y su password <br />';
                     ?>
                <FORM ACTION="validar_usuario.php" METHOD="post">
                       Usuario : <INPUT TYPE="text" NAME="usuario" SIZE=20 MAXLENGTH=20><br />
                       Password: <INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=20><br />
                       <INPUT TYPE="submit" VALUE="Ingresar">
                </FORM>
                     <?
                    
            }
             }
         }
     }else{
         formRegistro();
     }
     ?>
¡Qué largo! Visto en el navegador:














Aquí le indicamos los datos y le damos al botón Registrar (continuamos en el archivo registro.php):














Le indicamos el nombre de usuario y contraseña y hacemos clic en el botón Ingresar:














Como podemos ver nos redirecciona a la pagina validar_usuario.php. Si hacemos clic en Inicio nos lleva la pagina inicial que es page.php logeados:














Y aquí nos desregistramos o hacemos un logout, haciendo clic sobre Logout:














Y como podemos ver, ya no aparece el nombre de usuario, indica Bienvenido pero… a nadie,  porque no estamos logeados.
¿Qué os parece? Si habéis tenido dudas con esta aplicación me lo hacéis saber en un mail o comentario, haber si entre todos podemos ayudar con las dudas que tengáis, o si pensáis que se puede a hacer de otra manera o se os ocurre otra forma de hacerlo más complicado, pues nada, a enviar comentarios o me enviáis un mail. Lo que prefiráis.
Os espero en el próximo post, saludos!