PHP - Formulario llega bien a un hosting y a otro no

   
Vista:

Formulario llega bien a un hosting y a otro no

Publicado por leo (4 intervenciones) el 03/12/2015 21:35:53
Hola estoy terminando una página web y tengo un problema a la hora de enviar el formulario (que llega a dos correos distintos)

El código PHP es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// Get Data	
$nombre = strip_tags($_POST['nombre']);
$email = strip_tags($_POST['email']);
$fecha = strip_tags($_POST['fecha']);
$telefono = strip_tags($_POST['telefono']);
$mensaje = strip_tags($_POST['mensaje']);
 
// Send Message
mail( "info@mail1, info@mail2.com", "www.web.es | Formulari",
"Nombre: $nombre\nE-mail: $email\nFecha: $fecha\nTeléfono: $telefono\nMensaje: $mensaje\n",
"From: Formulario <by: web>" );
echo '<SCRIPT>window.location="./gracias.html";</SCRIPT>';
?>

Y el HTML es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form class="pure-form" action="enviar.php" method="POST">
	<fieldset class="pure-group">
		<input name="nombre" input type="text" class="pure-input-1-2" placeholder="Nombre" required></br>
		<input name="email" input type="text" class="pure-input-1-2" placeholder="E-mail" required></br>
		<input name="fecha" input type="text" class="pure-input-1-2" placeholder="Fecha" required></br>
		<input name="telefono" input type="text" class="pure-input-1-2" placeholder="Teléfono" required>
 
	</fieldset>
 
	<fieldset class="pure-group">
		<textarea name="mensaje" textarea class="pure-input-1-2" placeholder="Mensaje"></textarea>
	</fieldset>
	<button type="submit" class="pure-button pure-input-1-2 pure-button-primary">Enviar</button>
</form>

El código creo que no tiene ningún fallo.

El problema está en que cuando lo subo a la web del cliente no le llega nada y luego lo subo a mi página web
y llega perfectamente.

Es lógico que en dos hostings distintos llegue bien y en otro no??

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Formulario llega bien a un hosting y a otro no

Publicado por xve (5518 intervenciones) el 04/12/2015 08:07:22
Hola Leo, he preparado este texto explicativo con algunas razones por las que no llegan siempre los correos con la instrucción mail()
http://www.lawebdelprogramador.com/foros/PHP/1526533-Explicacion-de-porque-la-instruccion-mail-no-siempre-funciona-como-debiera.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Formulario llega bien a un hosting y a otro no

Publicado por leo (4 intervenciones) el 04/12/2015 09:31:40
Perdona, pero s q soy diseñador gráfico y me lío bastante con el código,
entonces tengo que sustituir el código PHP que he puesto antes por este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
/**
 * Envio de correo mediante un servidor SMTP
 */
 
include("phpmailer.php");
 
$smtp=new PHPMailer();
 
# Indicamos que vamos a utilizar un servidor SMTP
$smtp->IsSMTP();
 
# Definimos el formato del correo con UTF-8
$smtp->CharSet="UTF-8";
 
# autenticación contra nuestro servidor smtp
$smtp->SMTPAuth   = true;						// enable SMTP authentication
$smtp->Host       = "miservidor.com";			// sets MAIL as the SMTP server
$smtp->Username   = "nombre@miservidor.com";	// MAIL username
$smtp->Password   = "passwordDelCorreo";			// MAIL password
 
# datos de quien realiza el envio
$smtp->From       = "correoQueEnviaElMensaje@miservidor.com"; // from mail
$smtp->FromName   = "Nombre persona que envia el correo"; // from mail name
 
# Indicamos las direcciones donde enviar el mensaje con el formato
#   "correo"=>"nombre usuario"
# Se pueden poner tantos correos como se deseen
$mailTo=array(
    "correo_1_DondeSeEnviaElMensaje@servidor.info"=>"Nombre_1 persona que recibe el correo",
    "correo_2_DondeSeEnviaElMensaje@servidor.info"=>"Nombre_2 persona que recibe el correo",
    "correo_3_DondeSeEnviaElMensaje@servidor.info"=>"Nombre_3 persona que recibe el correo"
);
 
# establecemos un limite de caracteres de anchura
$smtp->WordWrap   = 50; // set word wrap
 
# NOTA: Los correos es conveniente enviarlos en formato HTML y Texto para que
# cualquier programa de correo pueda leerlo.
 
# Definimos el contenido HTML del correo
$contenidoHTML="<head>";
$contenidoHTML.="<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">";
$contenidoHTML.="</head><body>";
$contenidoHTML.="<b>Contenido en formato HTML</b>";
$contenidoHTML.="<p><a href='http://www.lawebdelprogramador.com'>http://www.lawebdelprogramador.com</a></p>";
$contenidoHTML.="</body>\n";
 
# Definimos el contenido en formato Texto del correo
$contenidoTexto="Contenido en formato Texto";
$contenidoTexto.="\n\nhttp://www.lawebdelprogramador.com";
 
# Definimos el subject
$smtp->Subject="Envio de prueba utilizando un servidor SMTP";
 
# Adjuntamos el archivo "leameLWP.txt" al correo.
# Obtenemos la ruta absoluta de donde se ejecuta este script para encontrar el
# archivo leameLWP.txt para adjuntar. Por ejemplo, si estamos ejecutando nuestro
# script en: /home/xve/test/sendMail.php, nos interesa obtener unicamente:
# /home/xve/test para posteriormente adjuntar el archivo leameLWP.txt, quedando
# /home/xve/test/leameLWP.txt
$rutaAbsoluta=substr($_SERVER["SCRIPT_FILENAME"],0,strrpos($_SERVER["SCRIPT_FILENAME"],"/"));
$smtp->AddAttachment($rutaAbsoluta."/leameLWP.txt", "LeameLWP.txt");
 
# Indicamos el contenido
$smtp->AltBody=$contenidoTexto; //Text Body
$smtp->MsgHTML($contenidoHTML); //Text body HTML
 
foreach($mailTo as $mail=>$name)
{
    $smtp->ClearAllRecipients();
    $smtp->AddAddress($mail,$name);
 
    if(!$smtp->Send())
    {
        echo "<br>Error (".$mail."): ".$smtp->ErrorInfo;
    }else{
        echo "<br>Envio realizado a ".$name." (".$mail.")";
    }
}
?>

Y lo único q tengo que cambiar es esto:

1
2
3
4
5
# autenticación contra nuestro servidor smtp
$smtp->SMTPAuth   = true;						// enable SMTP authentication
$smtp->Host       = "miservidor.com";			// sets MAIL as the SMTP server
$smtp->Username   = "nombre@miservidor.com";	// MAIL username
$smtp->Password   = "passwordDelCorreo";			// MAIL password

Poniendo el usuario y contraseña de la cuenta de correo del cliente.

Estaría bien así?? Haciéndolo de esta forma no podrían robar, la cuenta de correo de mi cliente?

Un saludo y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Formulario llega bien a un hosting y a otro no

Publicado por xve (5518 intervenciones) el 04/12/2015 16:45:24
Si, y el contenido del mensaje...;) recuerda ponerlo en formato HTML y texto...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar