Foros del Web » Programando para Internet » PHP »

Formulario Web no funciona.

Estas en el tema de Formulario Web no funciona. en el foro de PHP en Foros del Web. Hola amigos! Cualquier recomendacion es bien recibida. Es mi primer tema, y bueno de antemano, gracias por toda su ayuda! A ver tengo un formulario ...
  #1 (permalink)  
Antiguo 23/03/2013, 14:11
 
Fecha de Ingreso: marzo-2013
Mensajes: 1
Antigüedad: 11 años, 1 mes
Puntos: 0
Formulario Web no funciona.

Hola amigos! Cualquier recomendacion es bien recibida. Es mi primer tema, y bueno de antemano, gracias por toda su ayuda!

A ver tengo un formulario web descrito así:
Código:
  <form method="post" action="sendEmail.php" id="contact-form" class="contact-form">	
                <div id="main">
                <div id="response"></div>
                 		
                        <label>NAME:</label>
                        <p>	
						<input type="text" name="name" id="name"  placeholder="your name ..." size="30" />
						</p>
                        <label>EMAIL:</label>
                        <p>
        				<input type="text" name="email" id="email" placeholder="your email..." size="30" />
						</p>
                        <label>TITLE:</label>
                        <p>	
						<input type="text" name="subject" id="subject" placeholder="subject..." size="30" />
						</p>
                        <label>MENSAJE:</label>
                        <p>
                        <textarea name="mensaje" id="mensaje" cols="1" rows="1" ></textarea>
						</p>
                        <p>
               			<input type="submit" name="submit" id="submit" value="send"/><i class="btn-marker">
                        </p>            
                 </div>
				</form>
luego en el archivo "sendEmail.php" tengo colocado esto:

Código:
<?php
	
	$name = trim($_POST['name']);
	$email = $_POST['email'];
	$subject = $_POST['subject'];
	$mensaje = $_POST['mensaje'];
	
	$site_owners_email = '[email protected]'; // Replace this with your own email address
	$site_owners_name = 'Nombre Apellido'; // replace with your name
	
	if (strlen($name) < 2) {
		$error['name'] = "Please enter your name";	
	}
	
	if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {
		$error['email'] = "Please enter a valid email address";	
	}
	
	if (strlen($mensaje) - 3) {
		$error['mensaje'] = "Please leave a mensaje.";
	}
	
	if (!$error) {
		
		require_once('phpMailer/class.phpmailer.php');
		$mail = new PHPMailer();
		
		$mail->From = $email;
		$mail->FromName = $name;
		$mail->Subject = $subject;
		$mail->AddAddress($site_owners_email, $site_owners_name);
		$mail->Body = $mensaje;
		
		
		$mail->Send();
		
		echo "<div class='success'> Congratulations, " . $name . ". We've received your email. We'll be in touch as soon as we possibly can! </div>";
		
	} # end if no error
	else {

		$response = (isset($error['name'])) ? "<div>" . $error['name'] . "</div> \n" : null;
		$response .= (isset($error['email'])) ? "<div>" . $error['email'] . "</div> \n" : null;
		$response .= (isset($error['mensaje'])) ? "<div>" . $error['mensaje'] . "</div>" : null;
		
		echo $response;
	} # end if there was an error sending

?>
Una vez lo coloco en la web e intento probar el formulario, me sale un mensaje de error con el mensaje!!! Aunque ya lo tenga relleno me sale el mensaje de ERROR en el mensaje, podrian ayudarme?? El Mensaje de error es el siguiente:

"Please leave a mensaje."

No se que hacer!
  #2 (permalink)  
Antiguo 23/03/2013, 14:46
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Formulario Web no funciona.

Supongo que aquí
Código PHP:
Ver original
  1. if (strlen($mensaje) - 3) {
  2.     $error['mensaje'] = "Please leave a mensaje.";
  3. }

debería invertirse la condición

Código PHP:
Ver original
  1. if (!(strlen($mensaje) - 3)) {
  2.     $error['mensaje'] = "Please leave a mensaje.";
  3. }

o bien usar otro operador lógico, más entendible.
Código PHP:
Ver original
  1. if (strlen($mensaje) <3) {
  2.     $error['mensaje'] = "Please leave a mensaje.";
  3. }

Etiquetas: formularios
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 20:03.