He cambiado todas $HTTP_POST_VARS por $_POST y aun asi sigue sin ir, es mosqueante porque hasta hace unos dias funcionaba.
Los del sitio web me estan diciendo que use la clase phpmailer, pero nose cuanto tendria que modificar la web.
Algun detalle, mas orientado a la configuracion del servidor o del sitio?
Cita:
Iniciado por RyoniS Ok le preguntare al administrador del sitio. Ademas he programado el siguiente codigo para descartar que es la web:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Mándanos tus comentarios</title>
</head>
<body bgcolor="#cccc66" text="#003300" link="#006060" vlink="#006060">
<?
if (!$HTTP_POST_VARS){
?>
<form action="envia_form_php.php" method=post>
Nombre: <input type=text name="nombre" size=16>
<br>
Email: <input type=text name=email size=16>
<br>
Comentarios: <textarea name=coment cols=32 rows=6></textarea>
<br>
<input type=submit value="Enviar">
</form>
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["coment"] . "\n";
//mando el correo...
mail("
[email protected]","Formulario recibido",$cuerpo);
//doy las gracias por el envío
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}
?>
</body>
</html>
Aun asi seguia sin enviarme los correos.
Salu2
Cuando hice esta prueba no me di cuenta, y la cuenta de correo me lo metio como "spam", tonces este codigo si que funciona.
Ahora el error de mi Oscommerce sigue ahi, he estado mirando un poco el codigo del mi Oscommerce, y se me queda muy grande para mis conocimiento de programacion. Lo que he visto es que la forma de enviarlos es a traves de una funcion que hay creada que se llama "tep_mail" pero que no entiendo casi.
En la función, parece ser que usa otra funcion, la de "send" y esta no la veo creada por ningun sitio, puede ser por esto o es una funcion estandar de php.
El codigo es asi:
function tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address) {
if (SEND_EMAILS != 'true') return false;
// Instantiate a new mail object
$message = new email(array('X-Mailer: osCommerce Mailer'));
// Build the text version
$text = strip_tags($email_text);
if (EMAIL_USE_HTML == 'true') {
$message->add_html($email_text, $text);
} else {
$message->add_text($text);
}
// Send message
$message->build_message();
$message->send($to_name, $to_email_address, $from_email_name, $from_email_address, $email_subject);
}
Nadie sabe a que se puede deber, que antes funcionase y ahora no?, siento insistir tanto con este tema, pero esque no veo luz por ningun lado.
Muchas gracias a todos.
Bueno problema solucionado, pero estoy flipando en colores, al final me lo han solucionado los del servidor, pero era de la web.
El error se encontraba en el fichero includes/functions/html_output.php en la función tep_href_link. Se ha modificado la línea correspondiente al separador. Generaba código HTML con un separador erroneo en la URL ( ) en vez del habitual '&':
if (tep_not_null($parameters)) {
$link .= $page . '?' . tep_output_string($parameters);
//$separator = ' ';
$separator = '&';
} else {
$link .= $page;
$separator = '?';
}
De esta manera, el argumento "action" no era pasado correctamente y no realizaba el envío.
Sigo sin entender el porque antes iba correctamente y de un dia a otro empezo a fallar, con el unico cambio de redireccionar el dominio, y no tocar el codigo para nada. Por cierto no solo me fallaba el correo, sino que no me dejaba ingresar con mi registro de cliente, y ahora funciona todo.
A alguien se le ocurre que ha podido pasar?