martes, 22 de julio de 2008

Formulario de Contacto en PHP

Muchas veces queremos realizar un formulario en una pagina web y lo queremos lo mas sencillo posible y que funcione.

Yo normalmente uso una pagina normal en HTM para el formulario, donde le indico todos los campos que quiero que se envien por e-mail.

Estos campos pueden ser 3, 4 o mas dependiendo de las necesidades pero pongamos que son 3 campos:


E-Mail
Nombre
Asunto

Una ved tengamos estos campos, con un identificador a cada uno claro, lo guardaremos en un archivo de HTM, por ejemplo contacto.html.

Ahora pasamos al archivo que nos enviara el e-mail con los datos del formulario.

Este archivo esta echo en PHP pero es bien sencillo, aqui os dejo el codigo:
<?php
$EmailFrom = Trim(stripslashes($_POST['Email']));
$EmailTo = "info@web.com";
$Subject = "Contacto Web";
$Nombre = Trim(stripslashes($_POST['Nombre']));
$EMail = Trim(stripslashes($_POST['Email']));
$Mensaje = Trim(stripslashes($_POST['Asunto']));

$Body = "";
$Body .= "Nombre: ";
$Body .= $Nombre;
$Body .= "\n";
$Body .= "E-Mail: ";
$Body .= $EMail;
$Body .= "\n";
$Body .= "Mensaje: ";
$Body .= "\n";
$Body .= $Mensaje;
$Body .= "\n";

$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=ok.html\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>


Como podeis ver es mas bien sencillo.

Este codigo lo poneis dentro de un archivo que se llame por ejemplo: contac.php

Tenemos que tener claro cuales son los ID que le dimos a los campos en el formulario de HTM puesto que son los que tendremos que poner dentro de las comillas al principio, despues del $_POST, para que la variable coja el valor de ese campo.

Despues tenemos la seccio donde se compone el e-mail que nos llegara. Este mail se compone con $Body.

En el cuerpo del mensaje como podemos observar hemos colocado las variables con los datos pero ademas le hemos puesto una especie de cabecera, para diferenciar los datos, y tambien hemos puesto algo adicional que es el "\n". Con esto hacemos un salto de linea dentro del cuerpo del mensaje y asi no se junta todo puesto que seria ilegible.

Ahora solo queda enviar el e-mail indicandole los datos necesarios, esto lo haremos con la instruccion de $sucsess. No explicare su contenido puesto que esta muy claro, pero si teneis alguna duda no dudeis en comunicarmela.

Recordar que en la seccion de Accion del formulario teneis que poner el nombre del archivo de PHP para que funcione, si no fallara y no mandara el mail.

Se pueden agregar todos los campos que se quieren y si se sabe de PHP podreir implantar mas sentencias para mas cuestiones, pero eso sera otro dia.

jueves, 17 de julio de 2008

Utilizar programas externos

Muchas veces tenemos que poner un boton en nuestros formularios el cual ejecute un programa externo a nuestra aplicacion.

Hay varias maneras de poder hacer esto.

Por ejemplo si sabemos que una aplicacion estara siempre en la misma ruta podemos usar una simple linea para poder realizar esto.

Shell ("Ruta/Programa")
Con esta simple linea ejecutaremos cualquier programa que queramos, pero siempre y cuando este se encuentre siempre en esa ruta.

Esta linea se suele usar cuando nuestra aplicacion es dependiente de otra y estaran simpre unidas o es un programa que siempre se ubica en el mismo sitio.

Por otro lado tenemos esta otra

Process.Start ("www.google.es") ' Esto abre el navegador por defecto con esa web
Process.Start ("mailto:" & "
mail@mail.com") ' Esto abre el correo por defecto para enviar un mail
Como podemos observar si mas o menos sabemos lo que poner como argumento podemos realizar varias operaciones con este comando.
Por ejemplo para abrir un archivo de video con el programa por defecto solo tendriamos que poner "archivo.avi" y se abriria el reproductor por defecto con ese archivo.

Tambien les podemos pasar tanto a uno como a otro variables o TextBox como argumento de forma que asi el usuario que este usando el programa sea quien determine el programa o archivo que quiere ejecutar.

Podemos sacarle muchas utilidades, todo es echarle imaginacion.

martes, 15 de julio de 2008

Comprobacion de Cadenas

Muchas veces en los formularios nos vemos obligados a comparar una cadena para que se ajuste a unas especificaciones.

Por ejemplo para saber si un E-Mail esta bien escrito o una pagina web, etc.

Hay una forma muy simple de hacerlo.

Podemos usar un codigo como este:

Dim check As Boolean = Me.TextEmail.Text Like "*@*.*"

IF check = True
___MsgBox ("E-Mail Correcto")
Else
___MsgBox ("E-Mail Incorrecto")

End If


Es bastante simple.

Despues del Like colocamos la expresion que determinara la validacion del texto.
Esta expresion esta compuesta por los * que implican que se podra usar cualquier caracter.
Los caracteres de @ y el . son obligatorios para que se cumpla la comprobacion.

De esta manera solo seran validos los E-Mail de tipo "nombre@dominio.com" y no valdra ninguno que sea "nombre@dominio" .

Podemos encontrar mas ejemplos y una descripcion mas detallada de los operadores que podemos usar para realizar los filtros siguiendo este enlace.

lunes, 14 de julio de 2008

Comprovar conexion en Visual Basic

Muchas veces nos ocurre que necesitamos añadir a nuestra aplicacion un aparta donde podamos ver si un aplicacion se ejecuta en un ordenador remoto o no.

Biene bien cuando independientemente de nuestra aplicacion necesitamos comprobar si ademas de nuestra aplicacion esta ejecutandose una aplicacion determinada, claro esta sabiendo el puerto en el que dicha aplicacion esta escuchando.

El codigo es simple.

Imports System.Net.Sockets

Dim xClient = New TcpClient()

Try
___xClient.Connect("Host", Puerto)
___xClient.Close()
___MsgBox ("Conectado")

Catch
___MsgBox ("Desconectado")

End Try


Con este codigo hecho en Visual Basic .NET podremos ver un mensaje si esta o no la aplicacion escuchando en el puerto que indicamos.

La explicacion es simple.

Donde pone host indicaremos la direccion IP donde se encuentra la aplicacion que se supone esta a la escucha para comprobar su estado.

Donde pone Puerto indicaremos el puerto por el que la aplicacion esta escuchando.

Los MsgBox() son para que depende de la situacion de la aplicacion nos muestre un mensaje indicando si la aplicacion esta conectada o no.

Espero que os sirva de ayuda.

viernes, 11 de julio de 2008

Dominio .es y web gratis por 1 año

Bueno parece que ya esta llegando a su fin la oferta de Jovenes en Red para dar gratis 1 año de Dominio y Hosting.

El dia 15 de Julio se cerraran las inscripciones para poder obtener esta oportunidad para dejar huella en internet.

El plan consta de 1 dominio .es, 200Mb de espacio para la web y de 5 cuantas de correo electronico, toda una oportunidad para dejar la primera marca de que pasamos por internet.

Pero como todo lo bueno llega a su fin puesto que en cuestion de un par de dias esto cerrara las inscripciones.

Os animo a todos que consigais vuestro dominio para ir dejando huella de que pasasteis alguna ved por internet y tuvisteis vuestro dimonio.

Para ver mas informacion pincha este link http://www.jovenesenred.es/

jueves, 10 de julio de 2008

SCHEMA en Microsoft SQL Server

Muchas veces trabajando con bases de datos nos encontramos que al ver el listado de las tablas nos aparece el nombre de usuario al lado izquierdo del nombre de la tabla separandola de este con un punto.

Esto se denomina SCHEMA y es por decirlo de algun modo la identificacion del propietario de la tabla.

Pero podemos indicarle que utilice el de la propia base de dator para que asi no haya ninguna complicacion a la hora de programar, que suele haberlas, al importar las tablas a otra base distinta.

Para este echo cambiaremos en las seccion de Seguridad, Usuarios, hay una opcion para indicar cual sera el SCHEMA por defecto. Aqui le indicaremos que use por defecto el propio de la base de datos, suele ser "dbo".

Si ya tenemos muchas tablas creadas y sus respectivos procedimientos almacenados podemos realizar una consulta para cambiar todos los SCHEMA de un solo golpe.

Para las tablas es bien sencillo, solo tenemos que ejecutar esta simple consulta:


exec sp_MSforeachtable "ALTER SCHEMA dbo TRANSFER ? PRINT '? modified' "


Para los procedimientos almacenador utilizaremos una consulta:


SELECT 'ALTER SCHEMA dbo TRANSFER ' + s.Name + '.' + p.Name
FROM sys.Procedures p INNER JOIN
sys.Schemas s on p.schema_id = s.schema_id
WHERE s.Name = 'schema'


Esta consulta nos devuelve una lista con los comandos para cambiar todos los procedimientos almacenados de schema a dbo.

Solo tenemos que copiar el resultado y pegarlo en una nueva consulta.


Espero que esto sea de ayuda y si teneis alguna pregunta o quereis añadir algua correccion no lo dudeis, estamos aqui para eso.

miércoles, 9 de julio de 2008

Apertura del Blog

Bueno este sera mi primer blog asi que espero que dure mucho.

En este blog ire poniendo experiencias y cometarios sobre el mundo de la informatica y la programacion.

Actualmente trabajo de programador asi que este blog me servira como vitacora de las cosas que voy haciendo, los errores que se corrigen o las curiosidades que me valla encontrando.

Tambien espero que la gente que visite este blog deje su granito de arena.

Ya se que hay miles de webs con un monton de informacion sobre programacion, pero siempre es bueno aportar un granito de arena.

Gracias y espero verlos por aqui amenudo.