Foros de daboweb
MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación => Webmasters - Diseño Web - Programación - Diseño gráfico => Mensaje iniciado por: akil3s en 04 de Junio de 2012, 02:26:46 pm
-
Hola foreros.
Tengo un problema con una web que estoy modificando para una amiga (es una plantilla gratuita). El caso es que tengo un problema para que me funcione el tipico formulario. Esta escrito en PHP,p ero yo no tengo ni idea de este lenguaje, he mirado en varios sitios y por lo que veo deberia funcionar pero no lo hace. He conseguido que al dar a enviar me muestre el correo del que lo envia (para ver si ese paso esta correcto) pero luego el correo nunca llega a esa cuenta. Ademas tampoco me devuelve a la web con un mensaje de "correo enviado correctamente" o algo asi (se que esa parte la tengo que poner pero no se como hacerlo)
Espero haberme explicado bien.
Os dejo el codigo que tengo por si alguien ve el problema:
enviar.php
<?php
$name = $_POST["Nombre"];
$email = $_POST["E-mail"];
$asunto = $_POST["Asunto"];
$mensaje = $_POST["Mensaje"];
$envio .="Name: ". $name ."\n";
$envio .="E-Mail: ".$email. "\n";
$envio .="Web: ".$web. "\n";
$envio .="Comentario: ". $comentario. "\n";
$receptor = "[email protected]";
$emisor = $email;
$subject = $asunto;
$mailheaders = $receptor;
echo $name;
echo $email;
mail($emisor, $subject, $mensaje, $mailheaders);
echo ("<a href='javascript:history.back(1)'>Regresar</a>")
?>
contact.html
<!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>Miss tijera</title>
<meta name="keywords" content="Black Fox, Contact Page, Free CSS Template, full-site, 5 pages, HTML" />
<meta name="description" content="Black Fox Contact Page - free CSS template from templatemo.com" />
<link href="css/templatemo_style.css" rel="stylesheet" type="text/css" />
<link href="css/jquery.ennui.contentslider.css" rel="stylesheet" type="text/css" media="screen,projection" />
<style type="text/css">
<!--
.Estilo2 {
font-size: 14;
font-weight: bold;
}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>
<body>
<div id="Layer1" style="position:absolute; left:198px; top:63px; width:146px; height:111px; z-index:1"><a href="index.html"><img src="images/templatemo_logo.png" alt="logo" /></a></div>
<div id="templatemo_menu_wrapper">
<div id="templatemo_menu">
<ul>
<li><a href="index.html">Home</a></li>
<li></li>
<li></li>
<li></li>
<li><a href="contact.html" class="current">Contacto</a></li>
</ul>
</div> <!-- end of templatemo_menu -->
</div> <!-- end of menu wrapper -->
<div id="templatemo_header_wrapper">
<div id="templatemo_header">
<div id="site_title">
<h1><a href="index.html"> </a></h1>
</div>
<div id="templatemo_slider">
<div id="one" class="contentslider">
<div class="cs_wrapper">
<div class="cs_slider">
<div class="cs_article">
<a href="http://www.templatemo.com/page/1" target="_parent">
<img src="images/slider/templatemo_slide02.jpg" alt="Project 1" /></a>
</div>
<div class="cs_article">
<a href="http://www.templatemo.com/page/2" target="_parent">
<img src="images/slider/templatemo_slide01.jpg" alt="Project 2" /></a>
</div>
<div class="cs_article">
<a href="http://www.templatemo.com/page/3" target="_parent">
<img src="images/slider/templatemo_slide03.jpg" alt="Project 3" /></a>
</div>
<div class="cs_article">
<a href="http://www.templatemo.com/page/4" target="_parent">
<img src="images/slider/templatemo_slide04.jpg" alt="Project 4" /></a>
</div>
</div>
<!-- End cs_slider -->
</div>
<!-- End cs_wrapper -->
</div>
<!-- End contentslider -->
<!-- Site JavaScript -->
<script type="text/javascript" src="js/jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/jquery.ennui.contentslider.js"></script>
<script type="text/javascript">
$(function() {
$('#one').ContentSlider({
width : '430px',
height : '200px',
speed : 600,
easing : 'easeInOutQuart'
});
});
</script>
<script src="js/jquery.chili-2.2.js" type="text/javascript"></script>
<script src="js/chili/recipes.js" type="text/javascript"></script>
<div class="cleaner"></div>
</div>
<!-- end of templatemo_slider -->
</div>
<!-- header -->
</div>
<!-- end header wrapper -->
<div id="templatemo_content_wrapper">
<div id="templatemo_content">
<h1>Contacto</h1>
<div class="two_column float_l">
<div id="contact_form">
<p>Si necesitas ponerte en contacto con nosotros sobre cualquier duda, consulta o mejora, pudes hacerlo desde este formaulario.<br />
Serás atendido a la mayor brevedad posible. </p>
<p> </p>
<h3> Formulario de contacto</h3>
<form name='formulario' id='formulario' method='post' action='enviar.php'>
<p>Nombre:
<input type='text' name='Nombre' id='Nombre'>
</br>
</p>
<p>E- mail :
<input type='text' name='E-mail' id='E-mail'>
</br>
</p>
<p>Asunto :
<input type='text' name='Asunto' id='Asunto'>
</br>
</p>
<p>Mensaje
<textarea name="Mensaje" id="Mensaje" ></textarea>
</br>
</br>
<input type='submit' value='Enviar Formulario'>
<input type='reset' value='Reiniciar Formulario'>
</p>
</form>
</div>
</div>
<div class="two_column float_r">
<p>Aquí tienes nuestra dirección, horario y nùmeros de telefono de contacto para esatar a tu total disposición.</p>
<p> </p>
<div class="two_column float_r">
<h6>Dirección:</h6>
<span class="Estilo2">C/ Jaime I el conquistador
</span>
<div class="cleaner_h40 Estilo2">22 Posterior </div>
<h6>Horario:</h6>
<h6>Lun - Vie: 10:00 - 14:00<br />
Lun - Vie: 15:30 - 19:30 <br />
Sab: 9:00 - 14:00 </h6>
<div class="cleaner_h40"></div>
<h6>Teléfono de contacto: </h6>
<p>91.128.17.25 <br />
647.571.271</p>
<p>MAPA <br />
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.es/maps/ms?msid=211678978825118820288.0004bbaf052d88862f014&msa=0&hl=es&ie=UTF8&ll=40.234874,-3.763408&spn=0.000111,0.000019&t=h&output=embed"></iframe><br /><small>Ver <a href="http://maps.google.es/maps/ms?msid=211678978825118820288.0004bbaf052d88862f014&msa=0&hl=es&ie=UTF8&ll=40.234874,-3.763408&spn=0.000111,0.000019&t=h&source=embed" style="color:#0000FF;text-align:left">Calle de Jaime I 'El Conquistador', 22</a> en un mapa más grande</small>
</p>
</div>
</div>
<div class="cleaner"></div>
</div> <!-- end of content -->
</div> <!-- end of content_wrapper -->
<div id="templatemo_footer_wrapper">
<div id="templatemo_footer">
<div class="footer_box">
<div class="footer_menu">
<h3>Miss Tijera </h3>
<img src="images/templatemo_image_04.jpg" alt="image" />
<p>Miss Tijera, tu peluqueria en Parla.</p>
<div class="button"><a href="#"></a></div>
</div>
</div>
<div class="footer_box">
<div class="footer_menu">
<h3>Navegación</h3>
<ul class="footer_menu">
<li><a href="index.html">Home</a></li>
<li><a href="contact.html">Contacto</a></li>
</ul>
</div>
</div>
<div class="cleaner"></div>
</div> <!-- end of footer -->
</div> <!-- end of footer wrapper -->
<div id="templatemo_copyright_wrapper">
<div id="templatemo_copyright">
Copyright © 2012 <a href="http://www.misstijera.com">Miss Tijera </a>|
akil3s</div> </div> <!-- end of templatemo_copyright -->
</div> <!-- end of copyright wrapper -->
</body>
</html>
Gracias por anticipado.
-
Hola.
De momento veo que el primer parámetro de la función mail() debe ser el receptor del correo, y parece que el que tiene es la cadena 'E-mail'. Es decir, prueba con:
mail($receptor, $asunto, $mensaje);
Un saludo.
-
No se si te entiendo bien, (disculpa mi ignoracia, pero no se nada de nada de php :danae:)
quieres decir que en la linea mail($emisor, $subject, $mensaje, $mailheaders);
debo cambiar donde pone $emisor por mail($receptor, $asunto, $mensaje);
Siento ser tan torpe, pero es que no me entero de nada :(. Esto me pasa por querer ayudar...
Gracias shicefgo
-
Ya me respondo yo solo jsjsjsjs efectivamente cambiando eso ya llega ;-) lo unico que llega como no deseado (supongo que sera lo normal) y no me devuelve ni a la pagina del formulario ni un mensaje de "enviado correctamente". Eso se podria hacer??
Gracias por tu ayuda!!!
-
Tal vez llegue como no deseado debido a la dirección que se utilice como remitente.
Sí, se puede mostrar un mensaje después del correo.
La función mail() (http://php.net/manual/es/function.mail.php) devuelve un valor de tipo bool (= que sólo puede ser verdadero o falso).
Si el valor devuelto es verdadero (true) el correo habrá sido aceptado para su envío, sin que eso signifique necesariamente que haya llegado a su destino. Si el valor devuelto es falso (false) significa que el correo ha sido rechazado.
Puedes preparar un archivo para el caso de que el correo haya sido aceptado y otro para lo contrario (o utilizar alguno que ya tengas) y añade un código parecido al siguiente justo después de la llamada a mail() (llamemos a los archivos "correo_aceptado.php" y "correo_rechazado.php" por ejemplo):
if ($mail($receptor, $asunto, $mensaje)) {
include('correo_aceptado.php');
}
else {
include('correo_rechazado.php');
}
Los archivos correo_aceptado.php y correo_rechazado.php (o cualquiera otros que decidas usar) tienen que estar en la misma carpeta que el archivo donde esté la función mail() que envía el correo.
Todo esto se puede hacer algo más sofisticado, de hecho yo he construido algún que otro formulario de envío de e-mails con phpmailer (http://code.google.com/a/apache-extras.org/p/phpmailer/downloads/detail?name=PHPMailer_5.2.1.tgz) y utilizando algo de javascript para comprobaciones.
Saludos.
-
Muchisimas gracias!!!
Eres un crack shicefgo. A ver si soy capaz de hacerlo solo jejeje al final me va a picar el gusanillo con esto del PHP jsjsjsjs :)
PD: esto es lo que me llega al correo, creo que tienes razon, entra como spam por la direccion de correo del remitente.
(http://img534.imageshack.us/img534/8743/capturaxe.png) (http://imageshack.us/photo/my-images/534/capturaxe.png/)
-
He cometido un error en el anterior post: No debes añadir ese código justo después de llamar a mail(), sino sustituir la llamada a mail por el código para que no se envíe dos veces.
Puedes añadir un cuarto parámetro para el remitente. Algo así:
$remitente = "[email protected]";
if ($mail($receptor, $asunto, $mensaje, "From: &remitente")) {
include('correo_aceptado.php');
}
else {
include('correo_rechazado.php');
}
Pues nada, a darle al php :).
-
jejejeje gracias!!
Ahora toy liado con la instalacion de Debian que me aconsejo el maestro Dabo :D a ver si busco algun curso...
-
Alegrándome, Shicefgo estás hecho un máquina ! thx por la ayuda ;)
-
Gracias a los dos!!
Gran foro Dabo, ya me dirás de donde sacas el tiempo para todo ;)
-
De nada. Así refresco lo aprendido, que las cosas se caen de las neuronas si uno las deja sin tocar ;).
Un saludo.