Formulário de contato

  • Autor Autor javidotpro
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
J

javidotpro

Gamma
Programador
Usuário com poucas negociações! Use sempre o saldo do 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
Inserir CODE, HTML ou 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
Inserir CODE, HTML ou 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.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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()??
 
Voltar
Topo