Enviar emails desde una página web Febrero 27, 2009
Publicado por lineadecodigo en : HTML , 4 comentariosAunque al día de hoy casi todas las páginas están versadas en uno u otro lenguaje de servidor: ASP, PHP, JSP,... existe un amplio espectro de páginas desarrolladas en HTML. Casi siempre con la inestimable ayuda de un editor web. Y es que es mucha la gente, que con unos conocimientos mínimos de Internet, se lanza a este para contarle algo al ciber espacio. E incluso habrá sitios dónde podrámos insertar código HTML y que no permite utilizar otro lenguaje
Y ya puestos, y una vez que nos hemos currado una página web, nos apetece que la gente comparta con nosotros su opinión sobre la misma. O simplemente se ponga en contacto con nosotros.
Una vez en esta tesitura, lo más fácil sería poner un texto que sea un enlace (o no) con nuestra dirección de email. Aquí, le estamos dando al comunicante solo nuestra dirección y el, la utilizará para contarnos lo que quiera. Si quieres tomar esta opción léete el articulo "Propiedades de los enlaces de email" el cual te ayudará a darle más potencia a tus enlaces de email.
Pero claro, puede ser que queramos, que cuando nos escriba, rellene cierta información que con el email no sabremos nunca si nos la va a enviar o no. Para ello tenemos los formularios. Y será entonces cuando queramos que nos envíe lo relleno en el formulario.
En este punto tenemos dos opciones. O bien tiramos de algún lenguaje de servidor (para aludidos, no tiene desperdicio Mandar emails con JavaMail)
Para que el usuario nos envíe el formulario utilizando HTML solo tendremos que hacer una cosa. Poner "mailto:miusuario@miemail.com" en el campo action del formulario. Quedándonos un código HTML como este, mediante la etiqueta FORM:
<FORM action="mailto:miusuario@miemail.com">
Con esto conseguiremos que el usuario nos envíe un email con la estructura del formulario.
Una vez montando nuestro formulario veremos que si le damos a enviar el texto recibido puede ser algo como esto:
textfield=victor&textfield2=victor%40miemail.com&textarea=cojonuda
El problema es que para diferenciar las diferentes partes del mensaje, el navegador utiliza los identificadores de los campos. Es por ello que es bastante conveniente el modificarlos. Para tal fin hay que modificar el campo name de los campos del formulario. Podríamos ponerlos así:
<input type="text" name="nombre">
Ahora, la cadena recibida, sería la siguiente:
nombre=victor&email=victor%40miemail.com&opinion=cojonuda
Aunque sigue siendo una cadena críptica, es algo más clara que la anterior.
Además tenemos que tener en mente un par de cosas. La primera es que esto solo funcionará si el usuario tiene un programa de correo electrónico en su ordenador (Outlook, Outlook Express, Eudora...). Hay que tener cuidado, ya que aunque es raro que el ordenador no tenga un programa de correo electrónico, puede darse el caso.
La segunda es que aunque nosotros le hayamos puesto los campos (incluso poniendolos cómo obligatorios -podríamos usar JavaScript-), el usuario tiene la capacidad de modificar el email antes de enviarlo.
Aún con todo, esto es una buena solución para que se pongan en contacto con nosotros de forma sencilla.
Al final nos quedará el siguiente formulario:
<form name="form1" method="post" action="mailto:contacto@lineadecodigo.com"> label"><label for="nombre">Nombre: </label> <input type="text" name="nombre" id="nombre"> label"><label for="email">Email: </label> <input type="text" name="nombre" id="email"> ¿Qué te pareció la página? <textarea id="opinion" name="opinion"></textarea> <input type="submit" name="Submit" value="Enviar"> </form>|- Visualizar el ejemplo
|- Descargar el código
|- Reportar error en el código
|- Foro sobre HTML
Cargar combos desde una Base de Datos con ADO Febrero 23, 2009
Publicado por lineadecodigo en : ASP , Añadir un comenarioSi los valores de un combo van a ser variables es recomendable extraer esta información de una base de datos, en vez de tenerlo codificados directamente en nuestro HTML. En este ejemplo vamos a ver como cargar combos desde una Base de Datos con ADO.
La idea es tener almacenada la lista de valores (diferentes opciones) en una tabla de tal manera que a la hora de crear un formulario generaremos dinamicamente la lista de opciones.
La tabla podrá tener la siguiente forma:
| DEPORTE |
|---|
| Fútbol |
| Baloncesto |
| Atletismo |
| Voleibol |
| Gimnasia |
Los pasos a seguir para volvar el contenido de esta tabla sobre los combos son los siguientes:
En primer lugar conectarnos a la base de datos que tenga la tabla. Esto lo podemos hacer mediante DSN y sin DSN. Nosotros lo vamos a hacer mediante DSN
Set db = Server.CreateObject("ADODB.Connection") Dim DB_CONNECTIONSTRING DB_CONNECTIONSTRING = "DSN=BaseDatosDeportes;" db.open DB_CONNECTIONSTRING
La conexión a la base de datos la realizamos mediante el objeto Connection.
En segundo lugar crearemos un RecordSet el cual almacenara los datos de la tabla deportes. A este RecordSet debemos de decirle que almacenará todas las filas de la tabla.
set deportes = Server.CreateObject ("ADOBD.RecordSet") SQLStr = "SELECT * FROM deportes" deportes.open SQLStr, DB_CONNECTIONSTRING, adOpenStatic, adLockReadOnly, adCmdText
Las constantes adOpenStatic, adLockReadOnly, adCmdText las encontraremos en el archivo adovbs.inc el cual deberemos de incluir en la página donde este el script.
<!-- #include file="adovbs.inc" -->
Como tercer paso recorreremos el RecordSet mientras existan datos. Para ello utilizaremos alguna estructura repetitiva. A la hora de mostrar los datos no solamente escribiremos en pantalla el texto que haya en en RecordSet, sino que habrá que acompañarlo con el texto de creación del combo del formulario, mediante las etiquetas SELECT y OPTION.
<SELECT NAME="deportes"> <% while not deportes.EOF Response.Write("<OPTION VALUE='" + deportes("deporte") + "'>") Response.Write(deportes("deporte") + "</OPTION>") ' Nos desplazamos por el RecordSet deportes.MoveNext loop %> </SELECT>
Solo nos quedará anular los objetos y cerrar las conexiones:
|- Descargar el código
deportes.close set deportes = Nothing db.close Set db = Nothing
|- Reportar error en el código
|- Foro sobre ASP
Borrar registros de una base de datos con ADO Febrero 22, 2009
Publicado por lineadecodigo en : ASP , Añadir un comenarioLanzar el borrado de datos de una tabla no tiene mucho misterio. Un poco de conocimiento del lenguaje SQL y una conexión a la base de datos sería suficiente. Incluso puede a llegar ser peligroso, ya que el lanzamiento de esta sentencia en un entorno no adecuado (y sin backup de por medio) puede ser altamente destructivo. Seguro que todos conocemos a alguien que ha pasado por dicho trance.
Echemosle un vistazo a como es la query de borrado:
DELETE FROM tabla WHERE atributo = valor
Desde ASP no es muy complejo. Solo hace falta conocer el mecanismo para lanzar queries sobre una base de datos. A partir de ese punto, nuestra imaginación: consultas, creación de tablas, creación de indices, visualizaciones de planes de ejecucion,...
Para empezar, lo primero que tenemos que hacer es definir la conexión a la base de datos. Para ello utilizamos el objeto Server, el cual, nos permite instanciar un objeto del tipo ADODB.Connection. Este objeto representa es la conexión con la base de datos.
Esta conexión tiene multiples parámetros, que no vamos a entrar a evaluar ahora, y dos formas de ejecutarla: con o sin DSN. En este caso, lo que vamos a utilizar es el DSN. Es por ello que necesitaremos haber dado de alta nuestra base de datos como conector ODBC. Nuestro DSN se llama "test".
Set db = Server.CreateObject("ADODB.Connection") Dim DB_CONNECTIONSTRING DB_CONNECTIONSTRING = "DSN=test" db.open DB_CONNECTIONSTRING
Una vez que tenemos la conexión establecida lo que tenemos que crear es un objeto ADODB.Command. Este objeto, que también instanciaremos (como todos los objetos) mediante el objeto Server, nos permitirá lanzar la sentencia de borrado sobre la base de datos.
Con el objeto ADODB.Command tenemos que seguir tres pasos:
- Indicarle cual es la conexión de la base de datos con la que estamos trabajando. Esto lo hacemos mediante el atributo ActiveConnection, pasandole como valor la instanciación del objeto Connection.
- Escribir la query que queremos ejecutar. En nuestro caso el DELETE. La cadena de texto con la query la pasamos mediante el atributo CommandText.
- Ejecutamos la query. Esto lo hacemos invocando al método Execute.
Nos quedaría el siguiente código:
Set sqlText = Server.CreateObject("ADODB.Command") sqlText.ActiveConnection = db sqlText.CommandText = "DELETE FROM test2 WHERE valor='borrar'" sqlText.Execute
Y al final del todo, no olvides cerrar los objetos utilizados y asignarles el valor Nothing, para liberar memoria del servidor. Ojo, el objeto ADODB.Command no tiene método close, a si que solo podrás asignarle el valor de Nothing.
|- Descargar el código
Set sqlText = Nothing db.close Set db = Nothing
|- Reportar error en el código
|- Foro sobre ASP
Marcar enlaces externos con jQuery Febrero 19, 2009
Publicado por lineadecodigo en : jQuery , Hasta ahora 1 comentarioCuando creamos una página web tendremos diferentes tipos de enlaces: sobre la misma página, sobre páginas externas, que se abran en el mismo marco, en un marco nuevo,...
Como ayuda visual podemos adjuntar una imagen que denote que el enlace es externo o que se abre en una nueva ventana. Por ejemplo:
Posiblemente, lo más fácil sea crear una clase CSS que nos permita demarcar con un estilo estos tipos de enlaces. Si bien, en ese caso estaremos dejando en manos del desarrollador el acto de marcar con el estilo CSS en enlace.
Por otro lado podemos marcar enlaces externos con jQuery de forma dinámica. Para ello lo primero que vamos a hacer es poner los enlaces en la página:
Es importante que trataremos aquellos que tengan el atributo target con el valor "_blank". Ahora incluiremos el código jQuery que nos detecte estos tipos de enlaces para incorporarles el icono.
Como siempre, incluiremos la función ready() para saber que se ha cargado todo el documento y empezar a manipular la página.
$(document).ready(function(){ // Código jQuery });
Lo importante del ejemplo es saber que selector tenemos que utilizar para acceder a los elementos anchor - A con un atributo target igual a "_blank". Para ello indicaremos el nombre del elemento (A) y pondremos el atributo y su valor dentro de un corchete. Quedándonos el siguiente selector:
$("A[target=_blank]")
El método que nos permite insertar código HTML detrás de un elemento con jQuery es .after(). Este método recibe como parámetro el código HTML a insertar. En nuestro caso la carga de una imagen.
Por lo tanto nos quedaría el siguiente código jQuery:
$("a[target=_blank]").after("<img src='new_window.gif' title='new window'/>");
Todo el código jQuery sería el siguiente...
$(document).ready(function(){ $("a[target=_blank]").after("<img src='new_window.gif' title='new window'/>"); });
... como se puede apreciar, poco código para un gran efecto.
|- Visualizar el ejemplo|- Descargar el código
|- Reportar error en el código
|- Foro sobre jQuery
Conocer el Sistema Operativo con Java Febrero 18, 2009
Publicado por lineadecodigo en : Java , 2 comentariosLa clase System de Java nos va a permitir de una forma sencilla conocer el sistema operativo con Java. Y es que accediendo a las propiedades del sistema podemos encontrarnos con la que nos da el nombre del sistema operativo.
Lo primero que tenemos que saber es que la clase System
Lo siguiente que tenemos que saber es que podemos acceder a las propiedades del sistema con el método .getProperty.
La propiedad del sistema que nos permitirá conocer el sistema operativo con Java es "os.name", la cual pasaremos al método .getProperty como parámetro.
Solo nos quedará volcarla a la consola para comprobar que el valor coincide con el nombre de nuestro sistema operativo.
|- Descargar el código|- Reportar error en el código
Convertir una cadena en un array de caracteres con Java Febrero 14, 2009
Publicado por lineadecodigo en : Java , 10 comentariosAl convertir una cadena en un array de caracteres con Java podremos manipular cada uno de los carácteres de forma independiente y aplicarles la operativa o validaciones que necesitemos.
Así, lo primero será definir la cadena de texto y el array de caracteres al que volcaremos la cadena.
String sCadena = "Esto es una cadena de texto"; char[] aCaracteres;
Para convertir una cadena en un array de caracteres con Java tendremos que utilizar el método .toCharArray sobre la cadena de texto y asignarselo al array de caracteres.
char[] aCaracteres = sCadena.toCharArray();
Ahora ya podremos manipular el array a nuestro antojo. Por ejemplo, podemos recorrerlo para mostrarlo por pantalla:
|- Descargar el código
for (int x=0;x<aCaracteres.length;x++)
|- Reportar error en el código
Ocultar y mostrar elementos con jQuery Febrero 5, 2009
Publicado por lineadecodigo en : jQuery , 14 comentariosOcultar y mostrar elementos nos permitirá un gran dinamismo dentro de nuestras páginas web. Esto lo podremos hacer modificando las propiedades CSS de los elementos dinámicamente con JavaScript. jQuery nos ayudará a realizar esta tarea de una forma más sencilla. Si queremos ocultar y mostrar elementos con jQuery podemos apoyarnos en las funciones show y hide.
En nuestro ejemplo la página se compondrá de una capa con el texto y dos botones, a los que asignaremos la propiedades de ocultar y mostrar elementos. Nuestro código HTML es el siguiente:
<button id="ocultar">Ocultar Texto</button> <button id="mostrar">Mostrar Texto</button> <div id="msgid1">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus a nunc. Ut ac purus. Mauris tempor, arcu aliquam pulvinar elementum, sapien pede consequat lectus, id lobortis justo mi nec eros. Integer condimentum leo at risus. Aenean vel mauris eget lectus condimentum laoreet. Duis dictum. Etiam mattis pretium metus. Vestibulum diam lectus, egestas in, semper consectetur, iaculis et, arcu. Integer ut lacus. Curabitur tempus nibh. Vivamus consectetur velit eget nulla. Sed at libero sit amet nulla commodo suscipit. Nunc elementum. Mauris magna lorem, tristique et, semper a, feugiat pulvinar, eros. Mauris lacus velit, vehicula ut, faucibus porttitor, ultrices id, ipsum. Vivamus ligula sem, interdum et, porttitor nec, commodo eu, odio. Nullam id lacus. Donec feugiat adipiscing dui. Nullam lobortis mi ac sem.</div>
Ahora vamos con el código jQuery. Lo que haremos será gestionar el evento click de los botones y asignarles la función que nos permite ocultar y mostrar elementos con jQuery.
$("#ocultar").click(); $("#mostrar").click();
Accedemos a los botones mediante su id y anteponiéndolos la almohadilla (#).
Como hemos comentado antes las funciones para ocultar y mostrar elementos con jQuery son hide y show, las cuales asignaremos a los botones #ocultar y #mostrar respectivamente. Ambas funciones tienen la siguiente sintaxis:
hide (velocidad, funcion_callback); show (velocidad, funcion_callback);
La velocidad tendrá el valor de la velocidad con la que queremos que se muestren u oculten las cosas. Los valores posibles son: slow, normal y fast o bien los milisegundos que queremos que se tarde. Por otro lado la funcion_callback será la función a la cual queremos llamar al acabar de ejecutar la función show o hide. El parámetro de funcion_callback es opcional.
De esta manera nuestro código para ocultar y mostrar elementos con jQuery sería de la siguiente forma:
$("#ocultar").click(function(){$("#msgid1").hide("slow")}); $("#mostrar").click(function(){$("#msgid1").show("slow")});
Solo nos quedará ponerlo dentro de la función ready(), básica para jQuery.
|- Descargar el código
$(document).ready(function(){ $("#ocultar").click(function(){$("#msgid1").hide("slow")}); $("#mostrar").click(function(){$("#msgid1").show("slow")}); });
|- Reportar error en el código
|- Foro sobre jQuery
Listar contenido de un directorio con ASP Febrero 4, 2009
Publicado por lineadecodigo en : ASP , 2 comentariosUna de las cosas que nos permite el objeto FileSystemObject es listar el contenido de un directorio.
Esto nos puede servir si queremos implementar mediante ASP una especie de navegador de carpetas del servidor o algo por el estilo. De esta manera y junto con el resto de características del objeto FileSystemObject podemos llegar a implementar un verdadero gestor de los ficheros de nuestro servidor.
Lo primero que tenemos que hacer es obtener una referencia a dicho objeto:
Set fso = CreateObject("Scripting.FileSystemObject")
Una vez instanciado el objeto FileSystemObject, lo que tenemos que hacer es recuperar una referencia a la carpeta de la cual queremos listar los archivos. Para ello nos apoyamos en el método .GetFolder().
Set directorio = fso.GetFolder ("C:\windows")
Esta referencia, en si, es otro objeto, el cual contendrá el listado de ficheros. A si que, lo que pasaremos a hacer es recorrer dicho objeto ayudándonos de un bucle for..each.
For Each fichero IN directorio.Files ... Next
Directamente podemos volcar el contenido de la variable fichero, lo cual nos dará información sobre el mismo. Por otro lado, si queremos obtener solo el nombre del fichero, podemos crear un objeto File. Del objeto file podemos utilizar la propiedad Name para obtener únicamente el nombre del fichero, sin la ruta.
Set file = fso.GetFile(fichero) Response.Write fichero.Name &"<BR>"
El código completo nos quedaría de la siguiente forma:
|- Descargar el código
For Each fichero IN directorio.Files Set file = fso.GetFile(fichero) Response.Write (fichero.Name)&"<BR>" Next
|- Reportar error en el código
Bucle for-each en Java Febrero 2, 2009
Publicado por lineadecodigo en : Java , Añadir un comenarioUna de las cosas que incorporó Java 5 fue el bucle for-each en Java. Esta estructura nos permite recorrer una Colección o un array de elementos de una forma sencilla. Evitando el uso de Iteradores o de un bucle for normal.
De la forma tradicional podríamos recorrer un array de la siguiente forma:
String a[] = {"Avila", "Burgos", "León", "Palencia", "Salamanca", "Segovia", "Soria", "Valladolid", "Zamora"}; for (int x=0;x<a.length;x++)
En este caso nos estamos apoyando en el tamaño del array, con la propiedad length y en una variable contador, la cual vamos incrementando hasta que llegue a el tamaño del array.
Para recorrer una Colección, una lista en este caso, podríamos hacerlo con un Iterador de la siguiente forma:
List<String> list = new ArrayList<String>(); // Añadimos elementos list.add("Victor"); list.add("Amaya"); list.add("Julio"); // Obtenemos un Iterador y recorremos la lista. ListIterator<String> iter = list.listIterator(list.size()); while (iter.hasPrevious())
Para la colección hemos creado un Iterador que nos permite recorrer los elementos de la colección.
El bucle for-each en Javanos permite realizar estas mismas operaciones de una forma muy sencilla. La estructura del bucle for-each sería de la siguiente forma:
for (TipoBase variable: ArrayDeTiposBase) {..}
Así, para recorrer un array, tendríamos lo siguiente:
String array[] = {"Avila", "Burgos", "León", "Palencia", "Salamanca", "Segovia", "Soria", "Valladolid", "Zamora"};
Y para la colección, esto otro:
List<String> list = new ArrayList<String>(); // Añadimos elementos list.add("Victor"); list.add("Amaya"); list.add("Julio");
Vemos que se unifica la forma de listar los elementos y se simplifica el código.
|- Descargar el código|- Reportar error en el código
|- Foro sobre Jazva
Saber si una ruta es un directorio con Java Febrero 1, 2009
Publicado por lineadecodigo en : Java , Hasta ahora 1 comentarioLa clase File nos permite en Java instanciar cualquier elemento del sistema de ficheros y trabajar con él de una forma genérica. A la hora de instanciar el elemento podremos pasar al constructor bien un directorio o bien un fichero.
La instanciación de un objeto File sería de la siguiente forma:
Solo tendremos que apoyarnos en el método .isDirectory() para saber si una ruta es un directorio con Java:
|- Descargar el código
if (fRuta.isDirectory()) else
|- Reportar error en el código



