Foros del Web » Programando para Internet » PHP »

Formulario de contácto

Estas en el tema de Formulario de contácto en el foro de PHP en Foros del Web. Buenos días a todos, Soy novato en todo esto, por eso agradezco de antemano me puedan colaborar, tengo una página web, la dirección es www.ceiinvestigadores.com ...
  #1 (permalink)  
Antiguo 17/02/2008, 10:45
 
Fecha de Ingreso: febrero-2008
Mensajes: 4
Antigüedad: 16 años, 2 meses
Puntos: 0
Formulario de contácto

Buenos días a todos,

Soy novato en todo esto, por eso agradezco de antemano me puedan colaborar, tengo una página web, la dirección es www.ceiinvestigadores.com
necesito un buen formulario de contácto, deseo que las personas que entren a la página me puedan contactar por favor a través de un formulario de contácto, se supone que el que esta montado esta bien configurado, pero no me llegan los mensajes, no se que debo hacer, he buscado y subido todos los formularios de contacto que me he encontrado en la red, y no logro hacer que funcione. si me pueden indicar que debo hacer... o si me pueden ayudar con un formulario de contacto, se los agradezco, quiero que los mensajes me lleguen al buzon: [email protected]

que cuando el mensaje se vaya, que regrese a la pagina de inicio.

no se si eso sea posible.

mil gracias.
  #2 (permalink)  
Antiguo 17/02/2008, 11:47
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Re: Formulario de contácto

Postea el script que utilizas para el envio de mail de contacto, asi sera mas facil de ayudarte...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #3 (permalink)  
Antiguo 17/02/2008, 14:10
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Formulario de contácto

Bueno primero que todo tu eres el que plantea tus diseños al hacer un formulario de contacto se pueden implementar algunas cosas como soluciones de seguridad y demas por el estilo como es validación del mail que ingresa el usuario que sea válido etc...

Una manera sencilla de hacerlo es utilizando la función mail() de php aca te dejo un ejemplo que siempre me ha funcionado, creas tu formulario con los campos titulo, mail, nombre y contenido del comentario y si quieres que despues de enviar el mensaje se vaya al index utilizas la función header() de PHP.

Código PHP:
// OBTENER EL VALOR DE LAS VARIABLES.
$nombre $_POST['nombre'];
$mail $_POST['mail'];  
$titulo $_POST['titulo'];
$contenido $_POST['contenido'];
$headers .= "From: $nombre $mail\r\n";
                                
// ENVIAR EL MAIL.
mail("[email protected]"$titulo$contenido$headers);
header("location: index.php");
exit(); 
Tambien puedes validar el correo con esta función

Código PHP:
// FUNCION VALIDAR CORREO.            
function check_email_address($email
{
// PRIMERO CHECAR QUE HAY UN SOLO SIMBOLO @ Y QUE LOS DEMAS SEAN LARGOS.
  
if(!ereg("^[^@]{1,64}@[^@]{1,255}$"$email)) 
  {
     
// CORREO INVALIDO POR NUMERO INCORRECTO DE CARACTERES , O NUMERO INCORRECTO DE SIMBOLOS @
    
return false;
  }
    
  
// SE DIVIDE EN PARTES PARA HACERLO MAS SENCILLO.
  
$email_array explode("@"$email);
  
$local_array explode("."$email_array[0]);
  for(
$i 0$i sizeof($local_array); $i++) 
  {
     if(!
ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$"$local_array[$i])) 
     {
        return 
false;
     }
  } 
    
  
// SE REVISA SI EL DOMINIO ES UNA IP. SI NO, DEBE SER UN NOMBRE DE     DOMINIO VALIDO
     
if(!ereg("^\[?[0-9\.]+\]?$"$email_array[1])) 
     { 
          
$domain_array explode("."$email_array[1]);
        
          if(
sizeof($domain_array) < 2
          {
            return 
false// NO SON SUFICIENTES PARTES O SECCIONES PARA SER UN DOMINIO.
          
}
          for(
$i 0$i sizeof($domain_array); $i++) 
          {
                if(!
ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$"$domain_array[$i])) 
                {
                      return 
false;
                }
          }
      }
          return 
true;

y antes de que se envie el comentario se valida de la siguiente manera

Código PHP:
if(check_email_address($mail))
{
    
// envias el mensaje 
}
else
{  
   echo 
"la direccion de correo electronico no es valida";
   exit();

Bueno a mas de esto validas los demas campos lo puedes hacer con la función isset() o con empty()
tambien puedes implementar un CAPTCHA para mas seguridad aqui te dejo un link donde explican su implementación paso a paso CAPTCHA en PHP

Saludos.

Última edición por Carlojas; 17/02/2008 a las 15:13
  #4 (permalink)  
Antiguo 17/02/2008, 19:51
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Formulario de contácto

El error más seguro, si no te devuelve errores de PHP, es que tu servidor tenga el servidor SMTP desactivado. Este es un caso muy común. Contacta con tu proveedor de hosting y pregunta/pide que te activen tal servidor. Los hostings gratuitos no suelen incluir un servidor de salida de correo (SMTP), mientras que los hosting pago sí. De todas maneras no está demás preguntar al proveedor.

En todo caso, podrías usar algo como PHPMailer que te permitirá conectar a un servidor externo (Como una cuenta de correo) para poder enviar emails:

http://www.programacion.net/php/articulo/phpmailer/

Un saludo,
  #5 (permalink)  
Antiguo 17/02/2008, 21:23
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Formulario de contácto

Hola, yo tengo este:

contacto.php
Código PHP:
<?php ///////Configuraci&oacute;n///// 
          
$mail_destinatario '[email protected]'///////Fin configuraci&oacute;n// 
          
if (isset ($_POST['enviar'])) { $headers .= "From: ".$_POST['email']. "\r\n"
          if ( 
mail ($mail_destinatario$_POST['asunto'], "Nombre y apellidos : ".$_POST['nombre']. "\n\n Ciudad : ".$_POST['ciudad']."\n\n Asunto: ".stripcslashes ($_POST['asunto'])."\n\n Mensaje :\n ".stripcslashes ($_POST['mensaje']), $headers )) echo '<p><font color="#FF0000">Su mensaje ha sido enviado correctamente. Gracias por contactar con nosostros</font></p>'
          else echo 
'<p><font color="#FF0000">Error al enviar el formulario. Por favor, int&eacute;ntelo de nuevo mas tarde.</font></p>'
          } 
          echo 
'
          <form action="?" method="post"> <label for="nombre"></label>
            <table width="370" border="0" align="center">
              <tr>
                <td><strong>Nombre:</strong></td>
                <td class="estilo1"><input type="text" name="nombre" size="25" />
                    <strong>* </strong></td>
              </tr>
              <tr>
                <td><strong>E Mail: </strong></td>
                <td class="estilo1"><input name="email" type="text" id="email" size="25" />
                    <strong>* 
                    <input name="asunto" type="hidden" value="Contacto Web || 2Elementos.net" />
                    </strong></td>
              </tr>
              <tr>
                <td><strong>Ciudad:</strong></td>
                <td class="estilo1"><input type="text" name="ciudad" size="25" />                </td>
              </tr>
              <tr>
                <td valign="top"><strong>Mensaje:</strong></td>
                <td valign="top" class="estilo1"><textarea name="mensaje" cols="50" rows="7" id="mensaje"></textarea>                </td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td class="estilo1"><input type="submit" name="enviar" value="Enviar" />
                    <input type="reset" name="borrar" value="Borrar" /></td>
              </tr>
            </table>
            </form>
          <p><br>
          '
?>
Pero tengo una pregunta, quiero que cuando lo reciba en mi correo, en la parte de Remitente (en la lista de correos) me salga el nombre de la persona (el que escribió en el formulario) y en el encabezado del mensaje se vea asi

"Nombre de la persona" <[email protected]>

Como podría modificar el código anterior para que salga así? Gracias

Última edición por EduardoF1; 17/02/2008 a las 21:34
  #6 (permalink)  
Antiguo 19/02/2008, 13:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 4
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Formulario de contácto

hola, muchas gracias por tomarse la molestia de responder, esto es lo que me esta pasando.

Hola a todos,

la verdad soy novato en todo esto, cree una web, la dirección es: www.ceiinvestigadores.com

en esta estoy usando uno de los tantos formularios que baje de la web. el código de este formulario es:

<html>
<head>
<body bgcolor="#cococo">
<table border="2" width="85%" height="100%" align="center" bordercolor="#4B4B4B">
<tbody>
<tr>
<td align="center" bordercolor="#4B4B4B" height="400">
<center>
<br>
Puede contactarnos por correo electr&oacute;nico, llenando la siguiente
informaci&oacute;n:
</center>
<form method="Post" action="send.php"><input name="recipient" type="hidden" value="AQUI VA SU DIRECCI&Oacute;N DE EMAIL"><input name="subject" type="hidden" value="Datos enviados desde LA P&aacute;gina ????"><input name="redirect" type="hidden" value="AQUI PONER DIRECCION URL DE UNA P&Aacute;GINA DE GRACIAS."><br>
<center>
<table border="2" cols="21" width="95%">
<tbody>
<tr>
<td valign="top" align="center">
<div align="center"><font face="Arial, Helvetica, sans-serif"><br>
NOMBRE:
<input type="text" name="realname" size="30" maxlength="40">
&nbsp;&nbsp;EMAIL:</font><font face="Arial, Helvetica, sans-serif">
<input type="text" name="email" size="30" maxlength="40">
<br>
</font> </div>
<hr width="95%">
<div align="center"><font face="Arial, Helvetica, sans-serif">ASUNTO:&nbsp;</font>
<font face="Arial, Helvetica, sans-serif">
<input type="text" name="ASUNTO" size="60" maxlength="60">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;
<br>
</font> </div>
<hr width="95%">
<font face="Arial, Helvetica, sans-serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;COMENTARIOS:</font>
<font face="Arial, Helvetica, sans-serif"><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&n bsp;&nbsp;
<textarea name="COMENTARIO" rows="10" cols="60"></textarea>
</font>
<center>
<table>
<tbody>
<tr>
<td>
<input type="submit" value="ENVIAR">
</td>
<td>
<input type="reset" value="BORRAR">
</td>
</tr>
</tbody>
</table>
</center>
</td>
</tr>
</tbody>
</table>
</center>
</form>
</td>
</tr>
<tr>
<td valign="Bottom" height="1%">
<center><font size="-2">&copy; CEI INVESTIGADORES</font><br>
<font size="-2"><a href="http://www.ceiinvestigadores.com"></a>
</font></center>
</td>
</tr>
</tbody>
</table>

</body>
</html>

y el código PHP es:

<?php
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$asunto = $_POST['asunto'];
$contenido = $_POST['contenido'];
$headers = "From: $nombre $email\r\n";
mail("[email protected]", $asunto, $contenido, $headers);
header("location: vision.html");
exit();

{
function check_email_address($email)
{
if(!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
{
return false;
}
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for($i = 0; $i < sizeof($local_array); $i++)
{
if(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
{
return false;
}
}
}
}
{
if(!ereg("^\[?[0-9\.]+\]?$", $email_array[1]))
{
$domain_array = explode(".", $email_array[1]);

if(sizeof($domain_array) < 2)
{
return false;
}
for($i = 0; $i < sizeof($domain_array); $i++)
{
if(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i]))
{
return false;
}

}
return true;
}
}
{

if(check_email_address($mail))
{

}
else
{
echo "la direccion de correo electronico no es valida";

}
}
?>

estos códigos me los han facilitado en los foros porque yo de esto se poco.

no se que esta mal, pero no logro conseguir que me lleguen los mensajes, se supone que en el codigo esta configurada la dirección: [email protected], ya hable con la persona encargada del hosting para que configure el smtp asi: smtp1.une.net.co, pero aun no logro conseguir que me lleguen los mensajes.

agradezco al que me pueda colaborar, porque la verdad no se que hacer y como les digo para mi esto es nuevo.

de antemano mil gracias a todos por su colaboración.
  #7 (permalink)  
Antiguo 23/02/2008, 09:18
 
Fecha de Ingreso: febrero-2008
Mensajes: 80
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Formulario de contácto

Usa este:

Codigo para generar el formulario:

Código PHP:
<TABLE cellSpacing=0 cellPadding=0 width="98%" align=center 
                  border
=0>
                                            <
TBODY>
                                              <
TR>
                                                <
TD class=tex1 width="18%" height=26><DIV class=texto align=right>
                                                  <
div align="left">Nombre</div>
                                                </
DIV></TD>
                                                <
TD class=tex1 width="4%" height=26><div align="left"></div></TD>
                                                <
TD class=tex1 colSpan=3><div align="left">
                                                  <
INPUT class=tex1 id=nombre 
                        size
=40 name=nombre>
                                                </
div></TD>
                                                <
TD width="29%" rowspan="9" valign="top" class=tex1><DIV>
                                                    <
div align="left">
                                                      <
DIV>
                                                        <
div align="left"></div>
                                                      </
DIV>
                                                      </
div>
                                                </
DIV>
                                                    <
DIV><DIV></DIV>
                                                    <
DIV>
                                                      <
div align="left"></div>
                                                    </
DIV>
                                                    <
DIV></DIV>
                                                    <
DIV>
                                                      <
div align="left">
                                                        <
p>&nbsp;</p>
                                                        </
div>
                                                    </
DIV>
                                                  </
DIV>
                                                  <
DIV></DIV>
                                                  <
DIV>                                                      </DIV>
                                                  <
DIV></DIV></TD>
                                              </
TR>
                                              <
TR>
                                                <
TD class=tex1 height=26><DIV class=texto align=right>
                                                  <
div align="left">Apellido</div>
                                                </
DIV></TD>
                                                <
TD class=tex1 height=26><div align="left"></div></TD>
                                                <
TD class=tex1 colSpan=3><LABEL>
                                                  <
div align="left">
                                                    <
INPUT class=tex1 
                        id
=apellidos size=40 name=apellidos>
                                                    </
div>
                                                </
LABEL></TD>
                                              </
TR>
                                              <
TR>
                                                <
TD class=tex1 height=26><DIV class=texto align=right>
                                                  <
div align="left">Teléfono</div>
                                                </
DIV></TD>
                                                <
TD class=tex1 height=26><div align="left"></div></TD>
                                                <
TD class=tex1 colSpan=3><div align="left">
                                                  <
INPUT class=tex1 id=telefono 
                        size
=40 name=telefono>
                                                </
div></TD>
                                              </
TR>
                                              <
TR>
                                                <
TD class=tex1 height=26><DIV class=texto align=right>
                                                  <
div align="left">Dirección</div>
                                                </
DIV></TD>
                                                <
TD class=tex1 height=26><div align="left"></div></TD>
                                                <
TD class=tex1 colSpan=3><div align="left">
                                                  <
INPUT class=tex1 id=direccion 
                        size
=40 name=direccion>
                                                </
div></TD>
                                              </
TR>
                                              <
TR>
                                                <
TD class=tex1 height=26><div align="left">Ciudad</div></TD>
                                                <
TD class=tex1 height=26><div align="left"></div></TD>
                                                <
TD class=tex1 colSpan=3><div align="left">
                                                  <
INPUT class=tex1 id=ciudad 
                        size
=40 name=ciudad>
                                                </
div></TD>
                                              </
TR>
                                              <
TR>
                                                <
TD class=tex1 vAlign=center height=26><DIV class=texto align=right>
                                                  <
div align="left">E-mail</div>
                                                </
DIV></TD>
                                                <
TD class=tex1 height=26><div align="left"></div></TD>
                                                <
TD class=tex1 colSpan=3><div align="left">
                                                  <
INPUT class=tex1 id=e-mail 
                        size
=40 name=e-mail>
                                                </
div></TD>
                                              </
TR>
                                              <
TR>
                                                <
TD class=tex1 vAlign=center height=26><DIV class=texto align=right>
                                                  <
div align="left">Asunto</div>
                                                </
DIV></TD>
                                                <
TD class=tex1 height=26><div align="left"></div></TD>
                                                <
TD class=tex1 colSpan=3><label>
                                                  <
div align="left">
                                                    <
select name="tema" class="tex" id="tema">
                                                      <
option>Cotizaci&oacute;n</option>
                                                      <
option>Aclaraci&oacute;n</option>
                                                      <
option>Consulta</option>
                                                      <
option>SugerenciasComentarios</option>
                                                    </
select>
                                                    </
div>
                                                </
label></TD>
                                              </
TR>
                                              <
TR>
                                                <
TD class=tex1 vAlign=top height=26><DIV class=texto align=right>
                                                  <
div align="left">Consulta</div>
                                                </
DIV></TD>
                                                <
TD class=tex1 height=26><div align="left"></div></TD>
                                                <
TD class=tex1 colSpan=3><LABEL>
                                                  <
div align="left">
                                                    <
TEXTAREA class=tex1 id=consulta name=consulta rows=5 cols=40></TEXTAREA>
                                                    </
div>
                                                </
LABEL></TD>
                                              </
TR>
                                              <
TR>
                                                <
TD class=tex1 colSpan=2 height=19><div align="left"></div></TD>
                                                <
TD class=tex1 colSpan=3><div align="left"></div></TD>
                                              </
TR>
                                              <
TR>
                                                <
TD class=tex1 colSpan=2 height=26>&nbsp;</TD>
                                                <
TD class=tex1 colSpan=4><LABEL>
                                                  <
INPUT name="submit" type=submit class=tex1 value="Enviar Consulta">
                                                  </
LABEL>
                                                    <
LABEL>
                                                      <
INPUT name="reset" type=reset class=tex1 value=Restablecer>
                                                    <
INPUT type=hidden value=info@torneriaituzaingo.com.ar 
                        name
=recipient>
                                                    <
INPUT type=hidden 
                        value
="Formulario enviado desde la web - Contáctenos -" 
                        
name=subject>
                                                    <
INPUT type=hidden 
                        value
=http://www.torneriaituzaingo.com.ar/confirmacion.html 
                        
name=redirect>
                                                  </
LABEL></TD>
                                              </
TR>
                                            </
TBODY>
                                          </
TABLE
  #8 (permalink)  
Antiguo 23/02/2008, 09:19
 
Fecha de Ingreso: febrero-2008
Mensajes: 80
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Formulario de contácto

y aca te dejo el mail.php

Código PHP:
<?php
$nombre
=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$telefono=$_POST['telefono'];
$direccion=$_POST['direccion'];
$ciudad=$_POST['ciudad'];
$email=$_POST['e-mail'];
$tema=$_POST['tema'];
$tmensaje=$_POST['consulta'];
$maildestino="[email protected]";
$asunto="Contacto desde la Web.";
$mensajef="
Una persona se ha comunicado desde el formulario de la pagina:

Nombre: $nombre $apellidos
Telefono: $telefono
Direccion: $direccion
Ciudad $ciudad
Email: $email
Tema: $tema
----------------------------------
Comentarios: 
$tmensaje
----------------------------------
"
;
$mailheaders "From: ".$nombre." <".$mail."> \n";
$mailheaders .= "Reply-To: ".$mail."\n\n"
mail($maildestino,$asunto,$mensajef,$mailheaders); 
header("Location:index.html");
?>

Debes de poner ambos archivos en la misma carpeta, analizalo un poco y has pruebas para que veas que no es dificil.

Saludos espero q te sirva.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:26.