Formulario de Contacto

  • Autor Autor javidotpro
  • Fecha de inicio Fecha de inicio
J

javidotpro

Gamma
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola,
Estoy terminando una web y me encuentro que no hay forma de que me funcione el formulario de contacto de la misma, os copio la parte de HTML y la de PHP.

HTML
Insertar CODE, HTML o PHP:
<!-- BEGIN #contact_form -->
						<form id="contact_form" onsubmit="return validate_form()" action="http://php.elservidor.com/forms/enviar.php" method="post" >
						
							<p>
								<label>Nombre</label>
								<input onfocus="jQuery('#name_error').fadeOut('fast');" onclick="jQuery('#name_error').fadeOut('fast');" type ="text" name="name" id="name" />
							</p>
				       
							
							<p>
								<label>E-Mail</label>
								<input onfocus="jQuery('#email_error').fadeOut('fast');" onclick="jQuery('#email_error').fadeOut('fast');" type="text" name="email" id="email" />
							</p>
				       
							<p>
								<label>Mensaje</label>
								<textarea onfocus="jQuery('#message_error').fadeOut('fast');" onclick="jQuery('#message_error').fadeOut('fast');" id="message" rows="8" cols ="20"></textarea>
							</p>
					       
					       <button type="submit" name="submit" id="submit_button" class="btn"><span>¡Hazmelo Llegar!</span></button>
						       
						</form>
						<!-- END #contact_form -->

PHP
Insertar CODE, HTML o PHP:
<?php
$name = $_POST['name'];
$email = $_POST['email'];

$header = 'From: ' . $email . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$message = "Este mensaje fue enviado por " . $name . ";
$message .= "Su e-mail es: " . $email . " \r\n";
$message .= "Mensaje: " . $_POST['message'] . " \r\n";
$message .= "Enviado el " . date('d/m/Y', time());

$para = 'elmail@elmail.com';
$asunto = 'Recibido de la web';

mail($para, $asunto, utf8_decode($mensaje), $header);

echo 'Mensaje enviado correctamente';
?>

¿Donde me equivoco?
PD. El enviar.php lo envio a otro servidor mio dentro de un subdominio ya que el alojamiento principal no dispone de PHP.
 
Ese es el problema, el cambio de servidor. No estoy seguro de si funcionará, pero prueba a poner en enviar.php la siguiente como la primera línea:

PHP:
<?php
header('Access-Control-Allow-Origin: http://tudominio.com');
$name = $_POST['name'];
//...
 
Debe de funcionar así:

<?php
$name = $_POST['name'];
$email = $_POST['email'];

$header = 'From: ' . $email . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$message = "Este mensaje fue enviado por " . $name;
$message .= "Su e-mail es: " . $email . " \r\n";
$message .= "Mensaje: " . $_POST['message'] . " \r\n";
$message .= "Enviado el " . date('d/m/Y', time());

$para = 'elmail@elmail.com';
$asunto = 'Recibido de la web';

mail($para, $asunto, utf8_decode($mensaje), $header);

echo 'Mensaje enviado correctamente';
?>


El problema está en la siguiente línea:
$message = "Este mensaje fue enviado por " . $name . ";

Prueba el que te envié arriba y comentas, saludo.
 
Sigue sin funcionar, el enviar.php me funciona pero el formulario cuando clico en enviar no hace absolutamente nada.
 
El enviar.php lo envio a otro servidor mio dentro de un subdominio ya que el alojamiento principal no dispone de PHP.

Creo que ese es el problema, fijate de usar otro servidor y ubicar todo en el mismo
 
puedes poner que hace el validate_form()??
 
Atrás
Arriba