Foros del Web » Programando para Internet » PHP »

Problemas con enviar e-mail

Estas en el tema de Problemas con enviar e-mail en el foro de PHP en Foros del Web. Resulta que uso este script hecho por mi en todos los sitios que hago para formularios de contacto, pero resulta que ahora no se porque ...
  #1 (permalink)  
Antiguo 11/01/2006, 15:16
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 13 años
Puntos: 0
Problemas con enviar e-mail

Resulta que uso este script hecho por mi en todos los sitios que hago para formularios de contacto, pero resulta que ahora no se porque no me funciona. Quien me podria decir algo?
Código PHP:
<?php
if ($enviar == "si")
{
$para  "[email protected]";
$asunto "Contacto CienciaDivertida";
$mensaje '
<html>
<head>
 <title>:: Contacto CienciaDivertida</title>
</head>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">El Siguiente mensaje fue enviado desde '
.$ip.' el '.$fecha.' con los siguientes datos:<br></font>
<br>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2"><strong>Nombre: </strong>'
.$nombres.' '.$apellidos.'</font><br>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2"><strong>E-Mail:</strong> '
.$email.'</font><br>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2"><strong>Telefono:</strong> '
.$telefono.'</font><br>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2"><strong>Interes:</strong> '
.$interes.'</font><br>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2"><strong>Mensaje:</strong> '
.nl2br($mensaje).'</font><br>

</body>
</html>
'
;

$cabeceras  "MIME-Version: 1.0\r\n";
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
$cabeceras .= "From: ".$nombres." ".$apellidos." <".$email.">\r\n";
mail($para$asunto$mensaje$cabeceras);
echo 
'
<font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="ffffff"><br><br><center>El mensaje fue enviado correctamente y será respondido a la brevedad.</center></font>
'
;
}
?>
      <p><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif">Hemos puesto el siguiente formulario a tu disposcicion para que nos contactes y puedas aclarar tus dudas y/o enviarnos comentarios o sugerencias acerca de <strong><font color="#FF9900">Ciencia Divertida</font></strong><font color="#FF9900"><font color="#FFFFFF">. Esperamos poder brindarte la mejor atencion y poder satisfacer tus necesidades.</font> </font><br>
        <br>
        Si quieres consultar acerca de como unirse a <strong><font color="#FF9900">Ciencia Divertida</font></strong> tambien lo puedes hacer mediante el   siguiente formulario. </font></p>
      <form name="form1" method="post" action="?enviar=si">
      <table width="287" border="1" align="center" bgcolor="#000033">
            <input name="fecha" type="hidden" value="<?
//setlocale(LC_TIME,"spanish"); 
$hoy=strftime("%A %d de %B de %Y"); 
$hoy=str_replace("Monday","Lunes",$hoy); 
$hoy=str_replace("Tuesday","Martes",$hoy); 
$hoy=str_replace("Wednesday","Miercoles",$hoy); 
$hoy=str_replace("Thursday","Jueves",$hoy); 
$hoy=str_replace("Friday","Viernes",$hoy); 
$hoy=str_replace("Saturday","Sabado",$hoy); 
$hoy=str_replace("Sunday","Domingo",$hoy); 
$hoy=str_replace("January","Enero",$hoy); 
$hoy=str_replace("February","Febrero",$hoy); 
$hoy=str_replace("March","Marzo",$hoy); 
$hoy=str_replace("April","Abril",$hoy); 
$hoy=str_replace("May","Mayo",$hoy); 
$hoy=str_replace("June","Junio",$hoy); 
$hoy=str_replace("July","Julio",$hoy); 
$hoy=str_replace("August","Agosto",$hoy); 
$hoy=str_replace("September","Septiembre",$hoy); 
$hoy=str_replace("October","Octubre",$hoy); 
$hoy=str_replace("November","Noviembre",$hoy); 
$hoy=str_replace("December","Diciembre",$hoy);
echo 
$hoy
?>
">
                    <input name="ip" type="hidden" value="<? echo $REMOTE_ADDR?>">
        <tr>
          <td width="138" bordercolor="#000033"><strong><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="images/lado.jpg" width="6" height="6"> Nombres<br>
                          <input name="nombres" type="text" class="formulario" id="nombres" size="25">                       
                          </font></strong></td>
          <td width="139" bordercolor="#000033"><strong><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="images/lado.jpg" width="6" height="6"> Apellidos <br>
              <input name="apellidos" type="text" class="formulario" id="apellidos" size="25">
          </font></strong></td>
        </tr>
        <tr>
          <td bordercolor="#000033"><strong><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="images/lado.jpg" width="6" height="6"> E-Mail <br>
              <input name="email" type="text" class="formulario" id="email" size="25">
          </font></strong></td>
          <td bordercolor="#000033"><strong><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="images/lado.jpg" width="6" height="6"> Telefono <br>
              <input name="telefono" type="text" class="formulario" id="telefono" size="25">
          </font></strong></td>
        </tr>
        <tr>
          <td colspan="2" bordercolor="#000033"><strong><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="images/lado.jpg" width="6" height="6"> Interesado en </font></strong></td>
          </tr>
        <tr>
          <td bordercolor="#000033"><strong><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif">
              <input name="interes" type="radio" value="Contactar a Ciencia Divertida">
              Contactarnos
              </font></strong></td>
          <td bordercolor="#000033"><strong><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif">
            <input name="interes" type="radio" value="Unirse a Trabajar">
Unirse a Trabajar </font></strong></td>
        </tr>
        <tr>
          <td colspan="2" bordercolor="#000033">
            <div align="left"><strong><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="images/lado.jpg" width="6" height="6"> Mensaje
              <br>
              <textarea name="mensaje" cols="52" rows="6" class="formulario" id="mensaje"></textarea>
            </font></strong></div></td>
          </tr>
        <tr>
          <td bordercolor="#000033">
            <div align="center">
              <input name="enviar" type="submit" value="     Enviar     ">
              </div>          </td>
          <td bordercolor="#000033">
            <div align="center">
              <input name="borrar" type="reset" value="     Borrar     ">
              </div>                   </td>
        </tr>
      </table></form>
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
  #2 (permalink)  
Antiguo 11/01/2006, 15:46
Avatar de the_nosferatu  
Fecha de Ingreso: julio-2005
Ubicación: mi cuarto xD
Mensajes: 61
Antigüedad: 12 años, 4 meses
Puntos: 0
revisa el php.ini
  #3 (permalink)  
Antiguo 11/01/2006, 15:59
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Seria bueno que también mencionaras que error estas obteniendo.
  #4 (permalink)  
Antiguo 11/01/2006, 16:01
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 13 años
Puntos: 0
eh ahi el mayor problema, porque logicamente hubiera puesto el error.
Lo que sucede es que tampoco me da un error, sino que tan solo "actualiza" la pagina pero logicamente bajo la direccion contacto.php?enviar=si pero no envia ningun dato.
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
  #5 (permalink)  
Antiguo 11/01/2006, 16:14
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
mmm te falta cachar el valor de tus campos...

Código PHP:
$nombres $_POST["nombres"];
.
.
.
$interes $_POST["interes"]; 

Última edición por mauled; 11/01/2006 a las 16:23 Razón: ya ubique tu <form>
  #6 (permalink)  
Antiguo 11/01/2006, 16:19
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 13 años
Puntos: 0
Si esta, un poco mas arriba del hidden fecha y sale: <form name="form1" method="post" action="?enviar=si">
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
  #7 (permalink)  
Antiguo 11/01/2006, 18:57
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 12 años, 7 meses
Puntos: 1
El codigo lo has puesto en el mismo servidor que los que te funcionaban?

Poque te digo por experiencia que cada server es un mundo y tiene toda la pinta de algun tipo de restriccion o configuracion a trastocar, revisa las configuraciones necesarias para ello o a lo mejor el servidor actualizo algo y ahora tienes que actualizarte tu xd.

TOY QUEMAO CON LOS SERVIDORES DE PAGO
En el mio(local) todo funciona perfectamente (a lo mejor es pq solo soy uno xd)
__________________
Ciao y suerte.
  #8 (permalink)  
Antiguo 11/01/2006, 19:07
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 13 años
Puntos: 0
Mira.
es el mismo servidor "de pago" que los otros sitios que mencione.
SI lo que tu dices de que el servidor se actualizo y me debo actualizar yo tambien, debo hacer algun cambio en el codigo? :S
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
  #9 (permalink)  
Antiguo 11/01/2006, 19:43
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
El problema, seguro, es que en el servidor éste, register_globals está Off. Para verificarlo colgá este script y ejecutalo. Te va a mostrar la configuración del server. Buscá "register_globals" y fijate si está On u Off (me juego a que está Off).

Código PHP:
<?php
phpinfo
();
?>
Bueno, una vez que veas eso, eliminá el script de del servidor porque no es buena idea mostrarle a todo el mundo cómo está configurado...

Si, efectivamente, globals está Off, la solución es hacer como te indicó mauled.

La más sencillo en este caso sería, después del if, escribir:

$nombres = $_POST["nombres"];

y así con todos los campos que mandás con el formulario.

$nombre_del_campo = $_POST['nombre_del_campo'];

Después no tendría que hacer falta tocar nada más, si te andaba bien en otros servidores.

Suerte
Califa
  #10 (permalink)  
Antiguo 11/01/2006, 20:08
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 13 años
Puntos: 0
Bingo!!
Esta en OFF...
lo puedo cambiar cono ini_set??
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
  #11 (permalink)  
Antiguo 11/01/2006, 20:17
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
No.

Es decir, podés porner ini_set() en el script, pero no va a tener ningún efecto (si tenés acceso al php.ini es otra cosa, pero probablemente no lo puedas cambiar).

Igualmente, tampoco es tanto problema agregar, no sé, 7, 8 líneas al script. Y, además, ya te va a quedar bien hecho (no es buena idea por lo general tener las globals On).
  #12 (permalink)  
Antiguo 11/01/2006, 20:50
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 13 años
Puntos: 0
Pero con globals off no se envia el formulario o no?
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
  #13 (permalink)  
Antiguo 11/01/2006, 21:17
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Para solucionar este problema puntual, probá como te dijo antes mauled y como te dije yo, y tiene que andar.

Para saber exactamente qué hace register_globals, lo mejor que podés hacer es leer la documentación.

Una breve explicación (que no reemplaza lo anterior). Supongamos que globals está on.

Mandás por POST un formulario que tiene un campo llamado "campo1". En el script php, automáticamente, vas a tener:
  • Una variable global (accesible desde cualquier parte) llamada $campo1, con el valor que introdujo el usuario.
  • Una variable dentro del array $_GET ($_GET['campo1']), con el mismo valor;
  • Otra variable dentro del array $_REQUEST: ($_REQUEST['campo1']), también con el mismo valor.

Si globals está Off, la primera variable $campo1 no va a existir automáticamente. O sea que cuando escribas $campo1, no va a tener NINGÚN valor. El formulario se manda igual, pero no estás recogiendo el valor que mandaste.

Como te dije, la solución es tan difícil como poner:
$campo1 = $_POST['campo1'];
con cada campo que mandes.

No hay más vuelta que darle al asunto.

Suerte
  #14 (permalink)  
Antiguo 11/01/2006, 21:23
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 13 años
Puntos: 0
Hize eso de poner:

Código PHP:
$ip $_POST["ip"]; 
$fecha $_POST["fecha"]; 
$nombres $_POST["nombres"]; 
$apellidos $_POST["apellidos"]; 
$email $_POST["email"]; 
$telefono $_POST["telefono"]; 
$interes $_POST["interes"]; 
$mensaje nl2br($_POST["mensaje"]); 
y sigo sin poder enviar el formulario. Lo coloque en todoalbo.cl y se envia perfectamente.
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
  #15 (permalink)  
Antiguo 11/01/2006, 21:31
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 13 años
Puntos: 0
De igual manera muchas gracias por toda la ayuda.
Me ire a dormir ahora.
Mañana seguire dandole vueltas al tema.
Ademas, que me ha servido para clarificar otras dudas, a pesar de que sigo sin poder enviar el formulario. jeje
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
  #16 (permalink)  
Antiguo 11/01/2006, 21:33
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 15 años, 6 meses
Puntos: 7
has verificado si la funcion mail no te da problemas?
__________________
No tengo firma ahora... :(
  #17 (permalink)  
Antiguo 11/01/2006, 21:57
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Ok, no hay problema.

Pero creo que el tema está en la primera línea, no lo había visto...

Código PHP:
if ($enviar == "si"
Acá estás en la misma de antes. $enviar no tiene valor porque globals está Off. Cambialo por:

Código PHP:
if ($_GET['enviar'] == "si"
Y así, si no falla otra cosa... bueno, tendría que andar.
  #18 (permalink)  
Antiguo 12/01/2006, 08:05
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 13 años
Puntos: 0
xD
xD
Ahi me funciono perfecto, tan solo poniendo $_GET.
Muchas gracias a todos los que me ayudaron.
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
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 04:49.