Foros del Web » Programando para Internet » PHP »

ayuda con formulario de contacto [urgente]

Estas en el tema de ayuda con formulario de contacto [urgente] en el foro de PHP en Foros del Web. Hola ¿alguien me puede ayudar con este formulario? estuve probado de mil formas y me ha dejado con los pelos de punta... donde le estoy ...
  #1 (permalink)  
Antiguo 11/03/2011, 05:21
Avatar de carlosmderio3  
Fecha de Ingreso: marzo-2011
Ubicación: valencia
Mensajes: 67
Antigüedad: 13 años, 1 mes
Puntos: 0
Exclamación ayuda con formulario de contacto [urgente]

Hola ¿alguien me puede ayudar con este formulario?
estuve probado de mil formas y me ha dejado con los pelos de punta...

donde le estoy errando?


no puedo validar el <input name="terminos" type="checkbox" id="terminos" value="Si" /><br />
me tira error linea 29 ... intentando mejorarlo y al final lo he empeorado un poquito mas, jejje.
algo me estoy comiendo y no se que es...


a razon de que el formulario original no tenia los validadores...
como estos:

que son estos de aqui:
if(empty($nombres) || empty($apellidos) || empty($telefono) || empty($email) || empty($empresa) || empty($mensaje) || empty($terminos)) {
echo "<h1>Se requiere completar todos los campos.</h1>";
}
elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
echo "<h1>Ingrese una direccion de email valida por favor.</p>";
}

lo que he colocado e intentado hacer es hacer son los campos requeridos
pero no me los lee ni me los reconoce.


código .php

<?php
$aviso = "";

if ($_POST['email'] != "") {
$email = "[email protected]";
$subject = "Contacto";
$mensaje = "---------------------------------- \n";
$mensaje.= " Contacto \n";
$mensaje.= "---------------------------------- \n";
$mensaje.= "NOMBRE: ".$_POST['nombre']."\n";
$mensaje.= "APELLIDOS: ".$_POST['apellidos']."\n";
$mensaje.= "EMPRESA: ".$_POST['empresa']."\n";
$mensaje.= "EMAIL: ".$_POST['email']."\n";
$mensaje.= "TELEFONO: ".$_POST['telefono']."\n";
$mensaje.= "FECHA: ".date("d/m/Y")."\n";
$mensaje.= "HORA: ".date("h:i:s a")."\n";
$mensaje.= "IP: ".$_SERVER['REMOTE_ADDR']."\n\n";
$mensaje.= "---------------------------------- \n\n";
$mensaje.= $_POST['mensaje']."\n\n";
$mensaje.= "---------------------------------- \n";
$mensaje.= "Enviado desde http://www. bla bla .com/contacto.php \n";
$headers = "From: ".$_POST['email']."\r\n";


if(empty($nombres) || empty($apellidos) || empty($telefono) || empty($email) || empty($empresa) || empty($mensaje) || empty($terminos)) {
echo "<h1>Se requiere completar todos los campos.</h1>";
}
elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
echo "<h1>Ingrese una direccion de email valida por favor.</p>";
}
if (mail($email, $subject, $mensaje, $headers)) {
$aviso = "Su mensaje fue enviado correctamente";
} else {
$aviso = "Error de envío";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formulario de contacto</title>
<link href="formestilo.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="fondo1">
<br />
<br />
<?php if ($aviso != "") { ?>
<p><em><?php echo $aviso; ?></em></p>
<?php } ?>
<form action="" method="post">
<label for="nombres">Nombres</label><input name="nombre" id="nombre" type="text" /><br />
<label for="apellidos">Apellidos</label><input name="apellidos" id="apellidos" type="text" /><br />
<label for="empresa">Empresa</label><input name="empresa" id="empresa" type="text" /><br />
<label for="email">Email</label> <input name="email" id="email" type="text" /><br />
<label for="telefono">Telefono</label> <input name="telefono" id="telefono" type="text" /><br />
<label for="mensaje">Mensaje</label> <textarea name="mensaje" cols="30" rows="6"></textarea><br />
<label for="terminos">Acepto los terminos y condiciones <a href="terminos.php"> leer </a></label><input name="terminos" type="checkbox" id="terminos" value="Si" /><br />
<label for="btsend">&nbsp;</label>
<button name="btsend" id="btsend" type="submit">Enviar</button>
</form>
</div>
</body>
</html>
  #2 (permalink)  
Antiguo 11/03/2011, 05:28
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: ayuda con formulario de contacto [urgente]

comprueba que existe con:

Código PHP:
 if (isset($_POST['nombrecheckbox'])) ... 
Un saludo!
  #3 (permalink)  
Antiguo 11/03/2011, 06:20
Avatar de carlosmderio3  
Fecha de Ingreso: marzo-2011
Ubicación: valencia
Mensajes: 67
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: ayuda con formulario de contacto [urgente]

veo que no le veo por donde empezar.....

me dise a¡mensaje enviado mientras no tildo la casilla...

aver te dejo el servidor de mi pc abierto para que puedas verlo....

http://riotercero.sytes.net/

hay un archivo llamado up.php que podes subir y re subir el archivo...
  #4 (permalink)  
Antiguo 11/03/2011, 07:05
Avatar de carlosmderio3  
Fecha de Ingreso: marzo-2011
Ubicación: valencia
Mensajes: 67
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: ayuda con formulario de contacto [urgente]

Rafael Antonio Gómez Casas
esta en tu nombre completo en el Facebook. y tu web
IP: 92.56.227.6 me quedo tu IP, solo pido ayuda... no que me resuban el archivo vacio....

Última edición por carlosmderio3; 11/03/2011 a las 07:16
  #5 (permalink)  
Antiguo 11/03/2011, 07:20
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: ayuda con formulario de contacto [urgente]

Probaste como dijo miktrv ademas al form no le veo ningun action, como para que lea despues el code php, prueba realizando echos al momento de recibir variable y vas viendo los valores, eso te ayudara a solucionar el problema
  #6 (permalink)  
Antiguo 11/03/2011, 07:24
Avatar de carlosmderio3  
Fecha de Ingreso: marzo-2011
Ubicación: valencia
Mensajes: 67
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: ayuda con formulario de contacto [urgente]

estoy probando opciones.... y me esta desgastando demasiado...
  #7 (permalink)  
Antiguo 11/03/2011, 07:30
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: ayuda con formulario de contacto [urgente]

Tu sabias que la gracia de correjir el code, sino resulta a la primera es depurarlo??? paciencia y comprenderas la forma de solucion y de la manera que trabaja un lenguaje de programacion
  #8 (permalink)  
Antiguo 11/03/2011, 07:40
Avatar de carlosmderio3  
Fecha de Ingreso: marzo-2011
Ubicación: valencia
Mensajes: 67
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: ayuda con formulario de contacto [urgente]

Cita:
Iniciado por bUllan9ebrio Ver Mensaje
Tu sabias que la gracia de correjir el code, sino resulta a la primera es depurarlo??? paciencia y comprenderas la forma de solucion y de la manera que trabaja un lenguaje de programacion
mmmm probare.... aver ..... gracias por ese detalle.
  #9 (permalink)  
Antiguo 11/03/2011, 11:30
Avatar de carlosmderio3  
Fecha de Ingreso: marzo-2011
Ubicación: valencia
Mensajes: 67
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: ayuda con formulario de contacto [urgente]

sigo con el mismo problema...... aver si alguien me ayuda.....

Este es el HTML que no se si debo cambiar algo...

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<
html xmlns="http://www.w3.org/1999/xhtml">

<
head>

<
meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<
title>Formulario de contacto</title>

<
link href="formestilo.css" rel="stylesheet" type="text/css">

</
head>

<
body>

<
div id="fondo1">

<
br />

<
br />

<
form action="" method="post">

<
label for="nombres">Nombres</label><input name="nombre" id="nombre" type="text" /><br />

<
label for="apellidos">Apellidos</label><input name="apellidos" id="apellidos" type="text" /><br />

<
label for="empresa">Empresa</label><input name="empresa" id="empresa" type="text" /><br />

<
label for="email">Email</label> <input name="email" id="email" type="text" /><br />

<
label for="telefono">Telefono</label> <input name="telefono" id="telefono" type="text" /><br />

<
label for="mensaje">Mensaje</label> <textarea name="mensaje" cols="30" rows="6"></textarea><br />

<
label for="terminos">Acepto los terminos y condiciones  <a href="terminos.php"leer </a></label><input name="terminos" type="checkbox" id="terminos" value="Si" /><br />

<
label for="btsend">&nbsp;</label>

<
button name="btsend" id="btsend" type="submit">Enviar</button>

</
form>

</
div>

</
body>

</
html
Este es el otro código dentro de la misma página... de envío....
es donde tiene el problema.... o lo envía con cualquier dirección de email, con los campos en blanco.... y sin aceptar el checkbox.

Código PHP:
<?php
$aviso 
"";

if (
$_POST['email'] != "") {
    
$email "[email protected]";
    
$subject "Contacto";
    
$mensaje "---------------------------------- \n";
    
$mensaje.= "            Contacto               \n";
    
$mensaje.= "---------------------------------- \n";
    
$mensaje.= "NOMBRE:   ".$_POST['nombre']."\n";
    
$mensaje.= "APELLIDOS:   ".$_POST['apellidos']."\n";
    
$mensaje.= "EMPRESA:  ".$_POST['empresa']."\n";
    
$mensaje.= "EMAIL:    ".$_POST['email']."\n";
    
$mensaje.= "TELEFONO: ".$_POST['telefono']."\n";
    
$mensaje.= "FECHA:    ".date("d/m/Y")."\n";
    
$mensaje.= "HORA:     ".date("h:i:s a")."\n";
    
$mensaje.= "IP:       ".$_SERVER['REMOTE_ADDR']."\n\n";
    
$mensaje.= "---------------------------------- \n\n";
    
$mensaje.= $_POST['mensaje']."\n\n";
    
$mensaje.= "---------------------------------- \n";
    
$mensaje.= "Enviado desde http://www.---------------.com/contacto.php \n";
    
$headers "From: ".$_POST['email']."\r\n";
if (isset(
$_POST['terminos'])) {

if(empty(
$nombres) || empty($apellidos) || empty($telefono) || empty($email) || empty($empresa) || empty($mensaje) || empty($terminos)) {
echo 
"<h1>Se requiere completar todos los campos.</h1>";
}
 elseif(!
ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"$email)) {
echo 
"<h1>Ingrese una direccion de email valida por favor.</p>";
}
if (
mail($email$subject$mensaje$headers)) {
    
$aviso "Su mensaje fue enviado correctamente";
    } else {
    
$aviso "Error de envío";
    }
}
}
?>
  #10 (permalink)  
Antiguo 11/03/2011, 13:15
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: ayuda con formulario de contacto [urgente]

Amigo cuando un usuario no activa un checkbox este no es enviado por el POST... osea que en tu caso no puedes verificar si viene VACIO... lo que debes verificar es si existe...

|| isset($terminos)

Y hace mucho que alguien te respondio lo mismo.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #11 (permalink)  
Antiguo 11/03/2011, 13:45
Avatar de carlosmderio3  
Fecha de Ingreso: marzo-2011
Ubicación: valencia
Mensajes: 67
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: ayuda con formulario de contacto [urgente]

Código PHP:
Ver original
  1. ; Whether or not to define the various syslog variables (e.g. $LOG_PID,
  2. ; $LOG_CRON, etc.).  Turning it off is a good idea performance-wise.  In
  3. ; runtime, you can define these variables by calling define_syslog_variables().
  4.  
  5. [mail function]
  6. ; For Win32 only.
  7. SMTP = localhost
  8. smtp_port = 25
  9.  
  10. ; For Win32 only.
  11. ;sendmail_from = me@example.com
  12. sendmail_from = webmaster_web@hotmail.es
  13. ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
  14. ;sendmail_path =

Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\AppServ\www\desde_cero\contactar.php on line 27

Código PHP:
<?php
$aviso 
"";
if ((
$_POST['email'] != "") || isset($terminos)) {
    
$email "[email protected]";
    
$subject "Contacto";
    
$mensaje "---------------------------------- \n";
    
$mensaje.= "            Contacto               \n";
    
$mensaje.= "---------------------------------- \n";
    
$mensaje.= "NOMBRE:   ".$_POST['nombre']."\n";
    
$mensaje.= "APELLIDOS:   ".$_POST['apellidos']."\n";
    
$mensaje.= "EMPRESA:  ".$_POST['empresa']."\n";
    
$mensaje.= "NIF/NIE:    ".$_POST['nie']."\n";
    
$mensaje.= "EMAIL:    ".$_POST['email']."\n";
    
$mensaje.= "TELEFONO: ".$_POST['telefono']."\n";
    
$mensaje.= "FECHA:    ".date("d/m/Y")."\n";
    
$mensaje.= "HORA:     ".date("h:i:s a")."\n";
    
$mensaje.= "IP:       ".$_SERVER['REMOTE_ADDR']."\n\n";
    
$mensaje.= "---------------------------------- \n\n";
    
$mensaje.= $_POST['mensaje']."\n\n";
    
$mensaje.= "---------------------------------- \n";
    
$mensaje.= "Enviado desde http://www.////contacto.php \n";
    
$headers "From: ".$_POST['email']."\r\n";
/* probando con esto */
}
else { 
$aviso "Rellena todos los campos y acepta los Términos"; }
/* original */
if (mail($email$subject$mensaje$headers)) { $aviso "Su mensaje fue enviado correctamente"; } 

?>
aver lo tengo asi... pero me tira este error....

[URL="http://riotercero.sytes.net/desde_cero/contactar.php"]http://riotercero.sytes.net/desde_cero/contactar.php[/URL]
  #12 (permalink)  
Antiguo 11/03/2011, 13:54
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: ayuda con formulario de contacto [urgente]

Eso esta sucediendo porque no tienes nada que controle el envió del correo. debes crear una condicion de tipo

Código PHP:
if(isset($_POST['boton'])){
// envie el correo

Donde boton es el NOMBRE del boton submit de tu formulario
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #13 (permalink)  
Antiguo 11/03/2011, 14:56
Avatar de carlosmderio3  
Fecha de Ingreso: marzo-2011
Ubicación: valencia
Mensajes: 67
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: ayuda con formulario de contacto [urgente]

probando.....
  #14 (permalink)  
Antiguo 11/03/2011, 16:27
Avatar de carlosmderio3  
Fecha de Ingreso: marzo-2011
Ubicación: valencia
Mensajes: 67
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: ayuda con formulario de contacto [urgente]

ya he hecho de todo..... y no me va... (sigo con lo mismo)...

Código PHP:
<?php
$aviso 
""
if ((
$_POST['email'] != "") || (isset($_POST['terminos']))) {
    
$email "[email protected]";
    
$subject "Contacto";
    
$mensaje "---------------------------------- \n";
    
$mensaje.= "            Contacto               \n";
    
$mensaje.= "---------------------------------- \n";
    
$mensaje.= "NOMBRE:   ".$_POST['nombre']."\n";
    
$mensaje.= "APELLIDOS:   ".$_POST['apellidos']."\n";
    
$mensaje.= "EMPRESA:  ".$_POST['empresa']."\n";
    
$mensaje.= "NIF/NIE:    ".$_POST['nie']."\n";
    
$mensaje.= "EMAIL:    ".$_POST['email']."\n";
    
$mensaje.= "TELEFONO: ".$_POST['telefono']."\n";
    
$mensaje.= "FECHA:    ".date("d/m/Y")."\n";
    
$mensaje.= "HORA:     ".date("h:i:s a")."\n";
    
$mensaje.= "IP:       ".$_SERVER['REMOTE_ADDR']."\n\n";
    
$mensaje.= "---------------------------------- \n\n";
    
$mensaje.= $_POST['mensaje']."\n\n";
    
$mensaje.= "---------------------------------- \n";
    
$mensaje.= "Enviado desde http://www.////contacto.php \n";
    
$headers "From: ".$_POST['email']."\r\n";
if (
mail($email$subject$mensaje$headers)) { $aviso "Su mensaje fue enviado correctamente"; }  
}
?>
envía con o sin el check.... en teoría esta la constante esta metida....
(copiar y pegar aquí el código plis que no me entero de lo que me dicen)....
quisiera meter también esto
$aviso = "acepte los términos!";
$aviso = "coloque un email valido!";
y el @ para los mails...
  #15 (permalink)  
Antiguo 12/03/2011, 06:37
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: ayuda con formulario de contacto [urgente]

Amigo, intenta con esto:

Código PHP:
<?php

$aviso 
"";
 
    
$email "[email protected]";
    
$subject "Contacto";
    
$mensaje "---------------------------------- \n";
    
$mensaje.= "            Contacto               \n";
    
$mensaje.= "---------------------------------- \n";
    
$mensaje.= "NOMBRE:   ".$_POST['nombre']."\n";
    
$mensaje.= "APELLIDOS:   ".$_POST['apellidos']."\n";
    
$mensaje.= "EMPRESA:  ".$_POST['empresa']."\n";
    
$mensaje.= "NIF/NIE:    ".$_POST['nie']."\n";
    
$mensaje.= "EMAIL:    ".$_POST['email']."\n";
    
$mensaje.= "TELEFONO: ".$_POST['telefono']."\n";
    
$mensaje.= "FECHA:    ".date("d/m/Y")."\n";
    
$mensaje.= "HORA:     ".date("h:i:s a")."\n";
    
$mensaje.= "IP:       ".$_SERVER['REMOTE_ADDR']."\n\n";
    
$mensaje.= "---------------------------------- \n\n";
    
$mensaje.= $_POST['mensaje']."\n\n";
    
$mensaje.= "---------------------------------- \n";
    
$mensaje.= "Enviado desde http://www.////contacto.php \n";
    
$headers "From: ".$_POST['email']."\r\n";

if (isset(
$_POST['btsend'])){    
    if(
$_POST['terminos'] != 'Si'){
        
$aviso "Por favor acepte las condiciones";
    }else{
        if (
mail($email$subject$mensaje$headers)) { 
        
$aviso "Su mensaje fue enviado correctamente"
        }  
    }
}
?>
lo hice medio dormido acabado de levantar así que si algo anda mal por favor entiendan..
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #16 (permalink)  
Antiguo 12/03/2011, 20:33
 
Fecha de Ingreso: julio-2010
Ubicación: Galicia
Mensajes: 91
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: ayuda con formulario de contacto [urgente]

LoL, nada como estar despierto para detectar errores tontos, prueba a cambiar
if (($_POST['email'] != "") || (isset($_POST['terminos']))) {
por
if (($_POST['email'] != "") && (isset($_POST['terminos']))) {
En principio no veo nada más que esté mal, simplemente lo estabas enviando si se había pulsado el botón de enviar O si se marcaba el checkbox, así solo se enviará si se cumplen ambos requisitos, ten cuidado con los || y los &&, que si te confundes te arruinan el código facilmente, suerte con tu trabajo!
  #17 (permalink)  
Antiguo 15/03/2011, 20:53
Avatar de carlosmderio3  
Fecha de Ingreso: marzo-2011
Ubicación: valencia
Mensajes: 67
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: ayuda con formulario de contacto [urgente]

mil pero miles de gracias!!!!!!!!!!!!!

Etiquetas: contacto, formulario
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 14:31.