Foros del Web » Programando para Internet » PHP »

Formulario de contacto

Estas en el tema de Formulario de contacto en el foro de PHP en Foros del Web. a mi me funciona, lo único q cuando envía no carga ninguna web, sino que se queda en blanco, omo puedo hacer q cargue de ...

  #31 (permalink)  
Antiguo 20/09/2005, 07:48
Avatar de Sette  
Fecha de Ingreso: febrero-2002
Mensajes: 1.747
Antigüedad: 22 años, 2 meses
Puntos: 3
a mi me funciona, lo único q cuando envía no carga ninguna web, sino que se queda en blanco, omo puedo hacer q cargue de cero la web con el formulario de contacto, u otra que yo quiera???
__________________
diseño y programación
http://www.manucastro.es
[email protected]
  #32 (permalink)  
Antiguo 20/09/2005, 11:59
 
Fecha de Ingreso: julio-2005
Ubicación: Boyoliso
Mensajes: 661
Antigüedad: 18 años, 9 meses
Puntos: 0
Despues de que se mande el formulario, podrias redireccionarlo a otra pagina con javascript, poniendo esto al final del script php con el ke envias..


// session_start();
$_SESSION["foo"] = "bar";
function redirectJS( $uri ){?>
<div align="center">
<script type="text/javascript">
<!--
document.location.href="<?php echo $uri ?>";
-->
</script>
<?
die();
}
redirectJS( 'paginadonderedireccionarias.php' );


}
?>
  #33 (permalink)  
Antiguo 20/09/2005, 13:49
Avatar de Sette  
Fecha de Ingreso: febrero-2002
Mensajes: 1.747
Antigüedad: 22 años, 2 meses
Puntos: 3
tengo este código, y parece q la web se queda cargando y cargando, pueden verlo en www.manucastro.com/contacto/contacto.php

Código:
<?php

/*Función para validar e-mail con Exprexiones Regulares*/
function check_email($email) {
    //caracteres permitidos en el nombre: 0-9a-Z-._ en el host: 0-9a-Z-. entre los 2: @
    if (!preg_match('/^[0-9a-zA-Z\.\-\_]+\@[0-9a-zA-Z\.\-]+$/', $email))
        return False;

    //Nombre debe empezar con algún caracter alfanumerico
    if ( preg_match('/^[^0-9a-zA-Z]|[^0-9a-zA-Z]$/', $email))
        return False;

    //Nombre debe terminar con algún caracter alfanumerico
    if (!preg_match('/([0-9a-zA-Z_]{1})\@./',$email) )                    
        return False;

    //Host debe empezar con algún caracter alfanumerico
    if (!preg_match('/.\@([0-9a-zA-Z_]{1})/',$email) )                    
        return False;

    #Par .- or -. or -- or .. no permitidos
    if ( preg_match('/.\.\-.|.\-\..|.\.\..|.\-\-./',$email) )
        return False;

    #Par ._ or -_ or _. or _- or __ no permitidos
    if ( preg_match('/.\.\_.|.\-\_.|.\_\..|.\_\-.|.\_\_./',$email) )
        return False;

    #Host debe terminar con '.' más 2-5 alfa para TopLevelDomain
    if (!preg_match('/\.([a-zA-Z]{2,5})$/',$email) )
        return False;

    return True;
}
/*Si se le dio al boton submit*/
if (isset($_POST['submit'])) {
//revisa si no estan vacios los campos
  if (!empty($_POST['nombre']) &&   !empty($_POST['asunto']) && !empty($_POST['mensaje'])) {
//revisa si el e-mail es valido
    if (check_email($_POST['email'])) {
//asigno variables para el envio      
$para = "[email protected]";
$email = $_POST['email'];
$nombre = $_POST['nombre'];
$asunto = $_POST['asunto'];
$mensaje="$nombre (".$_SERVER['REMOTE_ADDR'].")envia el siguiente mensaje \n".$_POST['mensaje'];
$headers = "From: $nombre \r\n";
$headers.= "To:$para\r\n";
//envio el mail
      if (mail($para,$asunto,$mensaje,$headers)) {
//si se pudo enviar
      echo "<script language=\"javascript\" type=\"text/javascript\">alert ('Gracias por tus comentarios')</script>";}
      else{
//si no se pudo enviar
      echo "<script language=\"javascript\" type=\"text/javascript\">alert('Error: El e-mail no pudo ser enviado')</script>";}
      }
      else{
//si el e-mail no es valido
     echo "<script language=\"javascript\" type=\"text/javascript\">alert('El e-mail debe ser valido')</script>";}
     
     }else{
//si algun campo quedo vacio
  echo "<script language=\"javascript\" type=\"text/javascript\">Alert('Debes rellenar todos los campos')</script>";}
  
}else{

 // session_start();
$_SESSION["foo"] = "bar";
function redirectJS( $uri ){?>
<div align="center">
<script type="text/javascript">
<!--
document.location.href="<?php echo $uri ?>";
-->
</script>
<?
die();
}
redirectJS( 'contacto.php' );


}
?>
<form action="<?php $PHP_SELF ?>" method=post>
Nombre: <input type=text name="nombre" size=16>
<br />
Tu Email: <input type=text name="email" size=16>
<br />
Asunto: <input type=text name="asunto" size=16>
<br />
Comentarios:<br /> <textarea name="mensaje" cols=50 rows=8></textarea>
<br />
<input type=submit value="Enviar" name="submit">
</form>
Aqui va el form con el atributo name correspondiente en cada campo
__________________
diseño y programación
http://www.manucastro.es
[email protected]
  #34 (permalink)  
Antiguo 20/09/2005, 14:14
 
Fecha de Ingreso: julio-2005
Ubicación: Boyoliso
Mensajes: 661
Antigüedad: 18 años, 9 meses
Puntos: 0
Yo tengo una pagina de unf ormulario de 3 campos, que funciona con la funciona mail (), y cuando la persona da enviar, lo que hace es sacar un mensaje que dice "enviando...." y al segundo se redirecciona a otra de agradecimiento o al index, la que quieras pues!! a ver si de pronto te sirve:

Código PHP:
<html>
<head>
    <title>tus comentarios</title>
</head>

<body text="#003300" link="#006060" vlink="#006060" leftmargin=0 topmargin=0 marginwidth="0" marginheight="0">

<?
if (!$HTTP_POST_VARS){
?>

<form action="formulario.php" method=post>
<p>&nbsp;</p>
<table width="100" border="0" align="center" cellpadding="0" cellspacing="0" class="borde">
    <tr bgcolor="AA8984">
    <th height="33" class="textoplano" scope="col"><div align="center"><strong>Nombre <span class="opcional">(opcional)</span>:</strong></div></th>
    <th align="center" bgcolor="AA8984" scope="col">
      <div align="center">
        <input name="nombre" type=text class="borde" size=30>
      </div></th>
  </tr>
  <tr bgcolor="AA8984">
    <td width="176" height="33"><p align="center" class="fuente">Ubicaci&oacute;n <span class="opcional">(opcional)</span>:
      </p>      </td>
  <td width="224" align="center" bgcolor="AA8984">        
        <div align="center">
          <input name=ubicacion type=text class="borde" size=30>      
        </div></td>
  </tr>
  <tr valign="middle" bgcolor="#E3DAD2">
    <td colspan="2"><div align="center">
      <p align="center" class="textoplano"><strong>Tu respuesta:</strong><br>
        <textarea name=coment cols=63 rows=6 class="textoplano"></textarea>
          </p>
      </div></td>
  </tr>
  <tr valign="middle" bgcolor="#E3DAD2">
    <td height="26" colspan="2">        <div align="center">
          <input name="submit" type=submit value="Enviar">
          &nbsp;
          <input type="reset" name="Submit" value="Borrar">
      </div></td></tr>
</table>
</form>
<?
}else{
    
//Estoy recibiendo el formulario, compongo el cuerpo
    
$cuerpo "Formulario Feliz\n";
    
$cuerpo .= "Nombre: " $HTTP_POST_VARS["nombre"] . "\n";
    
$cuerpo .= "ubicacion: " $HTTP_POST_VARS["ubicacion"] . "\n";
    
$cuerpo .= "Comentarios: " $HTTP_POST_VARS["coment"] . "\n";
      
    
//mando el correo...
   
mail("[email protected]","Subject",$cuerpo);

//doy las gracias por el envío
    
echo "<b>Enviando...</b>";

 
// session_start();
  
$_SESSION["foo"] = "bar";
  function 
redirectJS$uri ){?>
<div align="center">
  <script type="text/javascript">
<!--
document.location.href="<?php echo $uri ?>";
-->
</script>
  <?
  
die();
  }
  
redirectJS'paginadondedebeirdespuesdesubmit.php' );
}
?>
</div>
</body>
</html>
  #35 (permalink)  
Antiguo 20/09/2005, 14:37
Avatar de Sette  
Fecha de Ingreso: febrero-2002
Mensajes: 1.747
Antigüedad: 22 años, 2 meses
Puntos: 3
muy bueno funciona a las mil maravillas muchas gracias, puedes probarlo en

http://www.manucastro.com/contacto/contacto.php

tengo q cambiarle el diseño
__________________
diseño y programación
http://www.manucastro.es
[email protected]
  #36 (permalink)  
Antiguo 20/09/2005, 15:01
 
Fecha de Ingreso: julio-2005
Ubicación: Boyoliso
Mensajes: 661
Antigüedad: 18 años, 9 meses
Puntos: 0
bueno, pues lo probe y se redirecciono a la misma del formulario.. no se que le hayas hecho!! pero si te sirvio y te funciona!! bien!! era la idea!!

Ahi ya veras como le cambias las vainas.. yo le kite lo mas ke pude para no copiar tanto codigo innecesario.
  #37 (permalink)  
Antiguo 20/09/2005, 15:05
Avatar de Sette  
Fecha de Ingreso: febrero-2002
Mensajes: 1.747
Antigüedad: 22 años, 2 meses
Puntos: 3
es q quiero q vuelva a la misma, por cierto como puedo crear un nuevo campo,???, es q quiero meterle para q me pongan el mail
__________________
diseño y programación
http://www.manucastro.es
[email protected]
  #38 (permalink)  
Antiguo 20/09/2005, 15:20
 
Fecha de Ingreso: julio-2005
Ubicación: Boyoliso
Mensajes: 661
Antigüedad: 18 años, 9 meses
Puntos: 0
le agregas otra fila a la tabla, con otro campo del formulario:

<tr><th><div>
Tu email <input name="email" type=text class="borde" size=30>
</div></th>
</tr>

y en el codigo del php script igual:
...
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario Feliz\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "ubicacion: " . $HTTP_POST_VARS["ubicacion"] . "\n";
$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["coment"] . "\n";

...

Espero haberme hecho entender..

Y ahi ya veras despues como le metes ese script ke valida losc ampos.. ke eso es otro camellito..
  #39 (permalink)  
Antiguo 20/09/2005, 15:31
Avatar de Sette  
Fecha de Ingreso: febrero-2002
Mensajes: 1.747
Antigüedad: 22 años, 2 meses
Puntos: 3
funciona 100% fenomenal
__________________
diseño y programación
http://www.manucastro.es
[email protected]
  #40 (permalink)  
Antiguo 08/11/2005, 13:41
 
Fecha de Ingreso: octubre-2005
Ubicación: hatillo centro, san jose, costa rica
Mensajes: 16
Antigüedad: 18 años, 6 meses
Puntos: 0
luisa, la verdad, yo tengo un problema parecido, y tambien, estaba pensando eso, no te des por vencida!!!!
pero de todos modos, voy a estudiar eso con unos manuelaes que me van a prestar,, animo!!!
  #41 (permalink)  
Antiguo 10/05/2007, 05:08
 
Fecha de Ingreso: mayo-2007
Mensajes: 1
Antigüedad: 17 años
Puntos: 0
Re: Formulario de contacto

Ya he enviado antes formulario utilizando php, he enviado mail.. peor ahorita tengo um problema curioso..que el mail no llega cuando se trata de google. la verdad no se porque.

Tambien me gustaria que m ayudar porque quisiera enviar el formulario a otras direcciones de mail d diferentes departamentos y no toy seguro como validar esa parte..

Osea deseo poner para seleccionar a que parte va l... mail s m pueden ayudar n esa part
  #42 (permalink)  
Antiguo 26/07/2007, 16:51
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 9 meses
Puntos: 1
Re: Formulario de contacto

Epale panas como sta todo, estoy buscando un formulario de contacto básico, y probe este que consegui en este post:

Código PHP:
Con este ejemplo de pronto lo entiendes mas facil: El archivo a crear se llamaria envia_form_php.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Mándanos tus comentarios</title>
</head>

<body bgcolor="#cccc66" text="#003300" link="#006060" vlink="#006060">
<?
if (!$HTTP_POST_VARS){
?>
<form action="envia_form_php.php" method=post>
Nombre: <input type=text name="nombre" size=16>
<br>
Email: <input type=text name=email size=16>
<br>
Comentarios: <textarea name=coment cols=32 rows=6></textarea>
<br>
<input type=submit value="Enviar">
</form>
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo "Formulario enviado\n";
$cuerpo .= "Nombre: " $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Comentarios: " $HTTP_POST_VARS["coment"] . "\n";

//mando el correo...
mail("[email protected]","Formulario recibido",$cuerpo);

//doy las gracias por el envío
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}
?>
</body>
</html>

Con este entendi yo!! je!! chaolin!!
Bueno el detalle es que lo probe con l hosting donde tngo hospedada la pagina, y todo funciona correctamente, mueno por lo menos no me manda ningun error, pero cuando reviso el correo de recepcion, el mensaje no llega, los correos con los q probe fueron [email protected] e [email protected], la direccion de la pagina es: http://www.netsystems.com.ve

Ahi hay un enlace al formulario de contacto, lo monte para hacer la prueba, espero me puedan ayudar. Saludos



PD: El nuevo diseño del foro esta muy bueno!!!
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 22:18.