Foros del Web » Programando para Internet » PHP »

Necesito que alguien me diga donde falle este php

Estas en el tema de Necesito que alguien me diga donde falle este php en el foro de PHP en Foros del Web. Buenos días, no tengo ni idea de php y tengo un cliente que me venía ya con este formulario. Ha estado funcionando durante varios años ...
  #1 (permalink)  
Antiguo 01/02/2011, 04:15
 
Fecha de Ingreso: marzo-2005
Mensajes: 45
Antigüedad: 19 años
Puntos: 1
Necesito que alguien me diga donde falle este php

Buenos días, no tengo ni idea de php y tengo un cliente que me venía ya con este formulario. Ha estado funcionando durante varios años sin problema y de repente a dejado de funcionar.
Alguien me podía decir qué falla? Muchas gracias de antemano.

<?
//if(!empty($HTTP_POST_VARS['sender_name']) || !empty($HTTP_POST_VARS['sender_apell']) || !empty($HTTP_POST_VARS['sender_direccion']) || !empty($HTTP_POST_VARS['sender_codigo']) || !empty($HTTP_POST_VARS['sender_ciudad']) || !empty($HTTP_POST_VARS['sender_pais']) || !empty($HTTP_POST_VARS['sender_telefono']) ||!empty($HTTP_POST_VARS['sender_email']))
//$subject = stripslashes("Formulario WEB WWW.dominio.COM");
if(!empty($HTTP_POST_VARS['loenvio']))
//if(!empty($HTTP_POST_VARS['email']))
{
$to = "[email protected]";
//$subject = stripslashes($HTTP_POST_VARS['sender_subject']);
$subject = stripslashes("Formulario WEB WWW.dominio.COM");
$body ="--------------------------------------------------------------------------------\n";
//$body = stripslashes($HTTP_POST_VARS['sender_mensaje']);
$body.= "\n\n------------------------------------------\n";
$body.="FORMULARIO WEB WWW.dominio.COM\n";
$body.="-------------------------------------------\n\n";
$body.="Estos son los datos enviados:\n\n\n";
$body.="Empresa: " . $HTTP_POST_VARS['empresa'] . "\n";
$body.="Sector: " . $HTTP_POST_VARS['sector'] . "\n";
$body.="CIF: " . $HTTP_POST_VARS['cif'] . "\n";
$body.=utf8_encode(País)." y " . utf8_encode(Código)." postal: " . $HTTP_POST_VARS['paisycodigo'] . "\n";
$body.=utf8_encode(Dirección).": " . $HTTP_POST_VARS['direccion'] . "\n";
$body.="Website: " . $HTTP_POST_VARS['website'] . "\n";
$body.="Nombre: " . $HTTP_POST_VARS['nombre'] . "\n";
$body.="Apellidos: " . $HTTP_POST_VARS['apellidos'] . "\n";
$body.=utf8_encode(Teléfono)." fijo: " . $HTTP_POST_VARS['telfijo'] . "\n";
$body.=utf8_encode(Móvil).": " . $HTTP_POST_VARS['telmovil'] . "\n";
//$body.=utf8_encode(Código).": " . $HTTP_POST_VARS['sender_codigo'] . "\n";
$body.="Fax: " . $HTTP_POST_VARS['fax'] . "\n";
$body.="E-Mail: " . $HTTP_POST_VARS['email'] . "\n";

$body.="Este es el mensaje enviado:\n\n";
$body.= $HTTP_POST_VARS['mensaje'];
$body.= "\n\n-----------------------------------------\n";
$body.="-------------------------------------------\n";
$body .= "El Mail ".utf8_encode(fué). " enviado por: " . $HTTP_POST_VARS['nombre'] .", " . $HTTP_POST_VARS['email'] . "\n";
$header = "From: " . $HTTP_POST_VARS['nombre'] . " <" . $HTTP_POST_VARS['email'] . ">\n";
$header .= "Reply-To: " . $HTTP_POST_VARS['nombre'] . " <" . $HTTP_POST_VARS['email'] . ">\n";
$header .= "Bcc:" . $copiax. "\n";
$header .= "X-Mailer: PHP/" . phpversion() . "\n";
$header .= "X-Priority: 1";
$subject = utf8_decode($subject);
$body = utf8_decode($body);
$header = utf8_decode($header);
if(@mail($to, $subject, $body, $header))
{
echo "estado=Su formulario se ha recibido correctamente. <br>En breve nos pondremos en contacto con usted.";
} else {
echo "estado=Error";
}
} else {
echo "estado=Error";
}
  #2 (permalink)  
Antiguo 01/02/2011, 04:27
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Necesito que alguien me diga donde falle este php

Tienes muchos utf8_encode(texto); sin comillas y, forzosamente debes encerrar el texto entre comillas simples o dobles: utf8_encode('texto'); ó utf8_encode("texto");

Aparte, no es conveniente usar $HTTP_POST_VARS es mejor $_POST

Corrige eso y, si sigue sin funcionar, por favor comenta que hace (o que no hace) el script.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 01/02/2011, 04:41
 
Fecha de Ingreso: marzo-2005
Mensajes: 45
Antigüedad: 19 años
Puntos: 1
Respuesta: Necesito que alguien me diga donde falle este php

Hecho.

Sigue saliendo el mensaje de correo enviado pero sigue sin llegar el correo al buzón definido.
  #4 (permalink)  
Antiguo 01/02/2011, 04:55
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Necesito que alguien me diga donde falle este php

Tienes acceso a alguna cuenta que este en un servidor con CPanel y MS Outlook?

1. Configura SpamAssasin para marcar los correos sospechosos como SPAM (sin eliminarlos)
2. Agrega una cuenta de ese sitio en MS Outlook
3. Prueba tu script enviando a la cuenta que configuraste en Outlook
4. Cuando recibas el correo en MS Outlook abrelo y busca los encabezados, ahi estara una lista creada por SpamAssasin diciendote lo que debes corregir para que el correo no sea considerado como spam.
5. Modifica tu script hasta que SpamAssasin marque esos correos con dos puntos o menos y no tendras problema para recibirlos en cualquier cuenta.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 01/02/2011, 05:44
Avatar de omar1977  
Fecha de Ingreso: abril-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 4
Respuesta: Necesito que alguien me diga donde falle este php

haz hecho alguna actualizacion de tus servdores ultimamente, si es un servidor remoto, que version de php tiene, insisto en la actualizacion por eso de HTTP_POST_VARS verifica eso y me cuentas

ATTE
ATN
__________________
no hay nadie que sea tan inutil, por ultimo sirve como mal ejemplo
  #6 (permalink)  
Antiguo 01/02/2011, 06:31
 
Fecha de Ingreso: marzo-2005
Mensajes: 45
Antigüedad: 19 años
Puntos: 1
Respuesta: Necesito que alguien me diga donde falle este php

No he cambiado de servidor. sigo con el mismo de siempre.

Lo del HTTP_POST_VARS lo he cambiado según las indicaciones que me ha facilitado Triby. Con la sigueinte respuesta estoy un poco liada y estoy intentando aclararme.

Se que el servidor no borrar ningún Spam, simplemente pone la palabra Spam delante del correo y lo envía de todas formas.

Lo extraño es que sin ningún cambio haya empezado a fallar no solo en un dominio sino en los dos dominios donde está subida la web. Aunque están alojados en el mismo sitio el ftp es distinto y no los tengo redireccionados. Cada dominio tine su propia información.
  #7 (permalink)  
Antiguo 01/02/2011, 07:59
 
Fecha de Ingreso: marzo-2005
Mensajes: 45
Antigüedad: 19 años
Puntos: 1
Respuesta: Necesito que alguien me diga donde falle este php

Preguntar al servicio técnico de hosting es completamente absurdo, (no se porque se llaman así). Nunca dan respuestas y siempre dan largas. No tengo ni idea de que version de php están facilitandonos.

Lo único que he conseguido ver en el panel de control es "El sistema operativo instalado en su servidor es Linux RedHat 6.2." y esto "Los scripts basados en PHP (que no usen PHP-CGI, explicado m�s abajo) no requieren ning�n tipo de permiso para ser ejecutados, basta con incluir c�digo PHP dentro de archivos .php, .php3, .php4, .htm � .html y ser� interpretado autom�ticamente por el servidor web."
  #8 (permalink)  
Antiguo 01/02/2011, 09:04
 
Fecha de Ingreso: marzo-2005
Mensajes: 45
Antigüedad: 19 años
Puntos: 1
Respuesta: Necesito que alguien me diga donde falle este php

Tengo más datos. Me ha saltado un error en la linea 40 y lo he cambiado por esto:

$subject = utf8_decode('$subject');

antes estabas así

$subject = utf8_decode'($subject');


Ha llegado por fin algo desde el formulario. Aunque es un error:

$header

$body


¿Cómo lo veis? Me he dado cuenta que no sale todo en el código que he adjuntado pero no se como enviarlo para que lo veais todo.
  #9 (permalink)  
Antiguo 01/02/2011, 09:35
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Necesito que alguien me diga donde falle este php

creo que es cuestion de versiones de php, aparte de todo lo que ya te dijeron tambien coloca las etiquetas de apertura de php completas

<?php y no solo <?

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #10 (permalink)  
Antiguo 01/02/2011, 09:54
 
Fecha de Ingreso: marzo-2005
Mensajes: 45
Antigüedad: 19 años
Puntos: 1
Respuesta: Necesito que alguien me diga donde falle este php

Quiero daros las gracias por vuestra ayuda Triby y Omar1977. Finalmente han empezado a funcionar solos los dos formularios. Teniendo en cuenta que solamente he hecho pruebas en uno de ellos es evidente que el problema estaba en el hosting, como suele ser habitual por desgracia. Algún día cambiaré de hosting.

Un saludo.
  #11 (permalink)  
Antiguo 01/02/2011, 09:56
 
Fecha de Ingreso: marzo-2005
Mensajes: 45
Antigüedad: 19 años
Puntos: 1
Respuesta: Necesito que alguien me diga donde falle este php

Gracias a ti tambien eits. Hemos debido escribir al mismo tyiempo.

Etiquetas: Ninguno
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 02:15.