Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Visualizando la postal y enviando la postal


Comentamos el fragmento de enviopostal.php que se encarga de visualizar la postal antes de ser enviada


01/1/70 - Hemos comentado previamente la existencia de un segundo bloque principal del script delimitado por una condición if que se encarga de evaluar si el visitante ha pedido visualizar la postal. Esta condición es definida inicialmente por la línea:

if (isset($ver)) //Si queremos ver la postal

Si este no es el caso, eso quiere decir que el script ha sido llamado para enviar la postal en cuyo caso lo primero que habrá que verificar es si el formulario ha sido rellenado satisfactoriamente y en caso positivo enviar la postal:

elseif (!$variables_formulario[0] or !$variables_formulario[1] or !$variables_formulario[2] or !$variables_formulario[3] or !$variables_formulario[5])

Los primeros dos casos, ver postal o avisar de un formulario incompleto, no aportan nada nuevo con respecto a todo lo visto. Es la tercera parte de esta condición, referente al envío de la postal, la que reviste un cierto interés.

El hecho de enviar la postal significa dos cosas:

  • Incluimos en nuestra base de datos postal, en nuestra tabla postal un nuevo registro en el que almacenaremos todos los datos que necesitaremos para mostrar la postal cuando el destinatario venga a buscarla.

  • Enviamos un e-mail al destinatario para avisarle de la existencia de una postal a su nombre en nuestro sitio web.

    A cada postal que se introduzca en la base de datos se le asignará un número de identificación para que el destinatario pueda acceder luego a la postal apropiada. Si asignásemos un número correlativo a cada postal que se genere, podría pasar que un usuario acceda a la postal de otros con simplemente cambiar el numero de la postal que le asignamos al número siguiente o al anterior. Para evitar que esto ocurra, vamos a generar un número aleatorio dentro de un amplio rango, que sirva para identificar a las postales creadas. Además, se tendrá que comprobar que ese número aleatorio no esté ya ocupado con una postal. Veamos con detenimiento cada una de estas acciones.

    La primera acción a realizar consiste en conectar con la base de datos en la forma que ya hemos visto en el script verpostales.php.

    El siguiente paso consiste en generar un número aleatorio que no esté ocupado para asignarlo como identificador a la postal. Con la función srand() se hace una semilla, lo que nos permite generar números aleatorios que no se repitan. A continuación nos metemos en un bucle que genera un número aleatorio, intenta extraer de la base de datos una postal que tenga ese número de identificación y, si dicho número aleatorio ha sido ya utilizado para otra postal, llevamos a cabo otra iteración del bucle. Para extraer los datos de la base ejecutamos una consulta clásica en lenguaje SQL. El programa saldrá del bucle en el momento en el que el numero aleatorio definido no esté siendo utilizado para otra postal residente en la base de datos.

    do
    {
       $aleatorio = rand(0,32000);
       $resultid = mysql_db_query("postal","Select * From postal Where id_postal=" . $aleatorio);
       $dameFila=mysql_fetch_array($resultid);
    }while ($dameFila);

    Este es un ejemplo en el que un bucle do/while puede resultar útil con respecto a un while simple dado que necesitaremos ejecutar el bucle al menos una vez para generar nuestro numero aleatorio y comprobar que es único en nuestra base de datos.

    Una vez tenemos un identificador de la postal exclusivo nos disponemos a introducir en la base de datos la información de las variables_formulario y el identificador. Para ello construimos dinámicamente una sentencia SQL que inserte la información que hemos recibido del formulario.

    A continuación se ha de mandar el correo electrónico informando de la creación de la postal. En el ejemplo, primero creamos una serie de variables que nos ayudarán a configurar el mensaje de correo electrónico. Estas variables son:

  • $asunto: Para el asunto del correo electrónico
  • $cuerpo_mensaje: Con un texto que informa de la creación de la postal y la URL para ir a recogerla. En la dirección web que construimos pasamos por parámetro el número aleatorio asignado a la postal, para que la página encargada de mostrarla sepa cuál es la postal que debe sacar por pantalla.
  • $headers_mensaje: Para indicar algún dato adicional que se coloque en la cabecera del mensaje. En este caso indicamos que lo envía DesarrolloWeb.

    Con la función mail(), pasándole los parámetros de configuración, enviamos el correo electrónico. La función mail devuelve un valor que nos servirá más tarde para saber si el mensaje se envió correctamente o si hubo algún error.

    En el caso de que todo haya funcionado correctamente, damos por finalizada la sesión por medio de la función session_destroy con lo que elimenaremos aquellas variables que nos han servido a llenar el formulario.


    Ir a la aplicación

     Seguir navegando a partir aquí:
    + 1 manual relacionado
    + 3 categorias relacionadas
    + 1 comentario (Añadir)

     Autoría, licencia y acciones sobre este artículo

    Informe de Rubén Alvarez*

    Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

    * Para consultas técnicas utilizar la lista de correo.

    Versión imprimible Versión imprimible del artículo
    Enviar artículo por e-mail Enviar artículo por e-mail
    Añadir un comentario al artículo Publicar un comentario del artículo

    Manuales relacionados con este artículo
    Dentro de Sistema de envío de postales en PHP

    Categorias relacionadas
    A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
    + Entrar en Colecciones de scripts
    + Entrar en Scripts en PHP
    + Entrar en Manuales de PHP


     Comentarios de los visitantes
    Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
    Se muestra un comentario revisado

     Comentario de Rubén
    03/9/02 
    Ciertos parametros de la funcion mail pueden ser ajustados desde el archivo php.ini localizado en nuestro directorio del sistema (c:\windows para muchos de vosotros).

    Dentro de este archivo texto, hemos de ir a la seccion [mail function] para poder definir nuestro servidor SMTP asi como la direccion mail del remitente del mensaje.

    Añadir un comentario al artículo Añadir un comentario del artículo



    Enlaces:
    Maestrosdelweb
      Ir arriba

  • Manuales relacionados
    +Sistema de envío de postales en PHP
    Categorías
    +Colecciones de scripts
    +Scripts en PHP
    +Manuales de PHP

    Lectura recomendada

    Compra este libro en Agapea, la librería urgente a domicilio.

    Tienda DesarrolloWeb

    DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia