Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] archivo mail.php

Estas en el tema de archivo mail.php en el foro de PHP en Foros del Web. Me falta el último empujón para que me funcione el formulario de envío de la web, pero no tengo manera, llevo encasquillado aquí varios días ...
  #1 (permalink)  
Antiguo 11/04/2013, 05:09
lbp
 
Fecha de Ingreso: abril-2013
Ubicación: CATALUNYA
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 1
archivo mail.php

Me falta el último empujón para que me funcione el formulario de envío de la web, pero no tengo manera, llevo encasquillado aquí varios días y no encuentro la solución.

Tengo la pagina www.aplusclima.com/contacts.html para el envío del formulario :

el código HTML es el siguiente:

<h2 class="p0">Formulario de Contacto</h2>
<form id="contact-form" action="mail.php" method="post" enctype="multipart/form-data">
<fieldset>
<label><span class="text-form">Nombre:</span>
<input name="p1" type="text" /></label>
<label><span class="text-form">Email:</span>
<input name="p2" type="text" /></label>
<div class="wrapper">
<div class="text-form">Texto:</div>
<textarea name="textarea"></textarea></div>
<div class="clear"></div>
<div class="buttons">
<a class="button-2" href="#" onClick="document.getElementById('contact-form').reset()">Borrar</a>
<a class="button-2" onClick="document.getElementById('contact-form').submit()">Enviar</a>
</div>
</fieldset>
</form>

por otro lado, en la misma carpeta donde tengo alojada la web, he hecho el archivo mail.php siguiente:

<?php
$mensaje = "Recibido de la web:

\n";
$mensaje .= "Nombre: ". $_POST['p1'];
$mensaje .= "

Email: ". $_POST['p2'];
$mensaje .= "

Mensaje: ". $_POST['textarea'];

mail('[email protected]', 'Pregunta pagina web', $mensaje);

if(mail('[email protected]', 'Pregunta pagina web', $mensaje)){
header("Location: http://www.aplusclima.com/enviado.html/");
}else{
echo "Ocurrió un error";
} ?>

y finalmente he creado una pagina igual a la de contacts per cambiando la cabezera del formulario por el texto de "enviado correctamente y le he llamado enviado.html

La idea es que si mandan un formulario por la web y sale todo bien, les redirija a la pagina enviado.html, pero lo que hace es mandarme a la dirección http://www.aplusclima.com/mail.php y claro, no existe, por lo que me da un error 404.

SUMPLICO una ayudita, que ya no se mas y llevo con esto varios días parado...

Saludos y gracias
  #2 (permalink)  
Antiguo 11/04/2013, 05:36
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años, 7 meses
Puntos: 13
Respuesta: archivo mail.php

Hola buenas

De momento puedo decirte que tienes duplicada la función mail(), ya que primero lo pones sólo y luego dentro del if(). Deja sólo la línea con el if() ya que no lo trata como "miro si puede hacerlo o no", sino que lo trata de ejecutar, y si puede y acaba bien, además, entrará en el if.

Luego he entrado en tu form y funciona bien. Si te fijas redirige a http://www.aplusclima.com/enviado.html/ (le has dicho que rediriga ahí si puede mandar el correo, ergo el correo se envía) y da 404 not found porque le pones una "/" al final que le sobra.

Es decir, ponlo así:

Código PHP:
header("Location: http://www.aplusclima.com/enviado.html"); 
Saludos
  #3 (permalink)  
Antiguo 11/04/2013, 06:38
lbp
 
Fecha de Ingreso: abril-2013
Ubicación: CATALUNYA
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: archivo mail.php

Kamea.
No se como decirte el peso que me has quitado de encima.

Cuando gente como yo, que mas bien sabemos poco y nos encallamos en algo así durante días, .......... y noches y en un instante nos dais las solución, no te imaginas la respiración lo bien que se queda.........

Muchas gracias, todo solucionado.

Etiquetas: formulario, html, mail-php
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 10:22.