Comunidad de diseño web y desarrollo en internet online

problema formulario php

Citar            
MensajeEscrito el 10 Jul 2013 11:49 am
Hola a todos,

Me ha caido un marroncillo ya que nuestro desarrollador se ha ido de la empresa. Es un simple formulario en PHP, pero yo no soy programador y todo me suena a chino.

El caso es que he conseguido hacer un formulario con un tutorial. Lo he probado en un servidor y funciona, pero al pasarlo al servidor donde debe estar no funciona.

El código del PHP es el siguiente:

Código :

<?php
//Importamos las variables del formulario de contacto

@$nombre = addslashes($_POST['nombre']);
@$apellidos = addslashes($_POST['apellidos']);
@$email = addslashes($_POST['email']);
@$telefono = addslashes($_POST['telefono']);
@$comentarios = addslashes($_POST['comentarios']);



//Preparamos el mensaje de contacto
$cabeceras = "From: $email\n" //La persona que envia el correo
. "Reply-To: $email\n";
$asunto = "Mensaje desde la pagina Web"; //asunto aparecera en la bandeja del servidor de correo
$email_to = "[email protected]"; //cambiar por tu email
$contenido = "$nombre desea información del curso de fisioterapia\n"
. "\n"
. "Nombre: $nombre\n"
. "Apellidos: $apellidos\n"
. "Email: $email\n"
. "Teléfono: $telefono\n"
. "Comentarios: $comentarios\n"
. "\n";
//Enviamos el mensaje y comprobamos el resultado
if (@mail($email_to, $asunto ,$contenido ,$cabeceras )) {

//Si el mensaje se envía muestra una confirmación
header('Location: ok.html');
}else{
//Si el mensaje no se envía muestra el mensaje de error
header('Location: error.html');
}
?>


Sabríais decirme porque funciona en un servidor y en otro no? puede ser por configuración? versión? En caso de que sea así, hay alguna manera de estandarizarlo para que funcione en todos los servidores? Lo pregunto porque me va a ser muy complicado saber que versión y configuración tiene cada servidor.

Muchas gracias por la ayuda.

Por alvarocf

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Jul 2013 12:21 pm
Buenas,

vamos por partes, como diría Jack el Destripador ;)

Lo primero sería saber que error te da, que seguramente sea ninguno pues tienes este codigo:

if (@mail($email_to, $asunto ,$contenido ,$cabeceras )) {

la @ delante de la funcion mail hace que no se "pinten" en pantalla los posibles errores. En este caso si la quitas y ejecutas podrás ver si esa función da error o no. Además

Si el mail se envia pero no carga la página de retorno puede ser por culpa de rutas relativas o absolutas:

header('Location: ok.html');

ni que decir tiene que el código debe estar en un fichero con extension php o no funcionara, más que nada porque veo que luego usas extensiones .html no sea que el código de envio del mail también sea así y no esté parseando.

Salu2

Por kaladrian

9 de clabLevel



 

Diseño páginas web

firefox
Citar            
MensajeEscrito el 15 Jul 2013 09:23 am
Hola kaladrian, muchas gracias por contestar y perdona el retraso en responder.

Creo que tiene que ser algo del servidor, porque he probado ya con dos formularios diferentes. En mi servidor de pruebas funcionan ambos perfectamente, y en el servidor donde debe estar alojado no.

Las versiones de PHP son, la 5.2.13 para el servidor donde no funcionan los formularios y la 5.2.17 donde si funcionan.

Imagino que será alguna cuestión de configuración ¿no?

Por alvarocf

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Jul 2013 10:24 am
Puede ser de configuración o que no este permitido el sendmail en esa máquina. Es algo raro. Lo suyo sería saber el error que da.

Activa los errores a ver que es lo que canta,.

Por kaladrian

9 de clabLevel



 

Diseño páginas web

firefox
Citar            
MensajeEscrito el 15 Jul 2013 11:51 am
Una persona me ha dicho que pruebe con esto:

<?php
echo ( mail("[email protected]","Correo de prueba","Esto es un correo de prueba","From:[email protected]") ) ? 'Mail enviado' : 'Error';
?>

Y el error que me ha dado es el siguiente:

Warning: mail() [function.mail]: SMTP server response: 554 5.7.1 <[email protected]>: Recipient address rejected: Access denied in C:\inetpub\wwwroot\sanroman\fisioterapia\prueba.php on line 2
Error

Tiene pinta de ser lo de Sendmail, es lo que me decía también esta otra persona que podía ser.

En caso de ser esto, ¿cómo puedo solucionarlo?

Por alvarocf

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Jul 2013 12:14 pm
El servidor de correos no acepta remitentes que no sean de su propio dominio, es una medida antispam.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 16 Jul 2013 07:46 am
Muchas gracias DriverOp.

Entiendo entonces que es una cuestión pura de configuración de servidor? A través de la programación no se puede hacer nada?

Por alvarocf

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Jul 2013 12:12 pm
Lamentablemente no.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 18 Jul 2013 09:33 am
Muchas gracias por la ayuda DriverOp.

salu2!

Por alvarocf

3 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.