Foros del Web » Programando para Internet » PHP »

envio de mail

Estas en el tema de envio de mail en el foro de PHP en Foros del Web. mi formulario atencion.php : Cita: <form id="contacto" method="post" action="enviar.php"> <fieldset> <legend>Datos Personales &raquo;</legend> <div><label for="nombre"><span style="color:#c00;">*</span>Nombre:</label><input name="nombre" type="text" id="nombre" title="Nombre" size="35" /> </div> <div><label for="apellido"> ...
  #1 (permalink)  
Antiguo 31/08/2009, 20:23
 
Fecha de Ingreso: agosto-2009
Mensajes: 15
Antigüedad: 14 años, 7 meses
Puntos: 0
Exclamación envio de mail

mi formulario atencion.php :

Cita:

<form id="contacto" method="post" action="enviar.php">

<fieldset>
<legend>Datos Personales &raquo;</legend>

<div><label for="nombre"><span style="color:#c00;">*</span>Nombre:</label><input name="nombre" type="text" id="nombre" title="Nombre" size="35" />
</div>

<div><label for="apellido"> <span style="color:#c00;">*</span>Apellidos:</label><input name="apellido" type="text" id="apellido" title="Apellido" size="34" />
</div>

<div><label for="correo"><span style="color:#c00;">*</span>Direcci&oacute;n de correo:</label>
<input name="correo" type="text" id="correo" title="Correo" value="<?php echo $email; ?>" size="24" />
</div>
<div onfocus="MM_validateForm('telefono','','NisNum');r eturn document.MM_returnValue">
<label for="telefono">Teléfono:</label><input name="telefono" type="text" class="text" id="telefono" title="Su número de telefono" size="36" />
</div>

<div><label for="celular">Celular:</label>
<input name="celular" type="text" class="text" id="celular" title="Su número de celular" size="37" />
</div>
</fieldset>


<fieldset>
<legend>Envienos su Mensaje &raquo;</legend>

<div><label for="asunto"><span style="color:#c00;">*</span>Motivo del mensaje:</label><input name="motivo del mensaje" type="text" id="asunto" title="El motivo de su mensaje" size="25"/>
</div>

<div><label for="mensaje"><span style="color:#c00;">*</span>Mensaje:</label><textarea name="mensaje" cols="27" rows="2" id="mensaje" title="Mensaje"></textarea>
</div>

<div><label for="count">Caracteres disponibles:</label><input type="text" name="count" id="counter" value="500" size="2" /></div>

</fieldset>
</form>


<p><span style="color:#FF8E3C;">*Campos obligatorios</span></p>
<p><span style="color:red;font-weight:bold;"></span></p>




<div id="left"> <input name="tipo" type="button" value="Enviar" />
</div>



</div>


</div>
</div>




este es mi codigo enviar.php

Cita:

<?

$nombre = $_REQUEST["nombre"];
$apellido = $_REQUEST["apellido"];
$remitente = $_REQUEST["correo"];
$telefono = $_REQUEST["telefono"];
$celular = $_REQUEST["celular"];
$asunto = $_REQUEST["asunto"];
$mensaje = $_REQUEST["mensaje"];
$destino= "informes(arroba)miempresa.com";
$encabezados = "From: $remitente\nReply-To: $remitente\nContent-Type: text/html; charset=iso-8859-1";


echo "<p>Hemos recibido la siguiente informaci&oacute;n:<p>";
echo $mensaje;
echo "<p><br><p>Muy pronto nos pondremos en contacto con usted.<p>";

mail($destino, $asunto, $mensaje, $nombre, $apellido, $remitente, $telefono, $celular, $encabezados) or die ("Su mensaje no se envio.");
?>

es correcto?? quiero q me envie un correo a mi direccion con los datos y mi el mensaje del cliente...

como puedo validar los campos para q m avise al final si tuvo algun error

como una direccion inexistente, un celular de menos de 10 digitos esa clase de cosas para validar todos mis campos

gracias de antemano me urge mucho la respuesta
  #2 (permalink)  
Antiguo 31/08/2009, 23:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: envio de mail

primero, el uso de mail() no es correcto...

por favor, lee el manual de PHP al respecto...
http://php.net/mail

observa bien los parámetros, ya que andas agregando de mas !!!

lo de las validaciones son simples comparaciones if-then-else, pura lógica y sentido común...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/09/2009, 10:24
 
Fecha de Ingreso: agosto-2009
Mensajes: 15
Antigüedad: 14 años, 7 meses
Puntos: 0
sigo sin entender.. alguien m puede ayudar???

no se si tengo errores en los dos codigos o esta bien el formulario???

Última edición por GatorV; 01/09/2009 a las 10:58
  #4 (permalink)  
Antiguo 01/09/2009, 10:31
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: envio de mail

en la web hay muchos videotutoriales de php yo te recomiendo estudiarlo bien primero para entenderlo una ves entendido el tema es pura logica
  #5 (permalink)  
Antiguo 01/09/2009, 11:09
 
Fecha de Ingreso: agosto-2009
Mensajes: 15
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: envio de mail

Cita:
Iniciado por intiweb Ver Mensaje
en la web hay muchos videotutoriales de php yo te recomiendo estudiarlo bien primero para entenderlo una ves entendido el tema es pura logica
gracias en vdd pero ya lo he cehcado tantas veces q ya estoy DESEPERADAAA y no le hallo el error podrian ayudar a encontrar el error???
  #6 (permalink)  
Antiguo 01/09/2009, 15:29
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 14 años, 11 meses
Puntos: 5
aca te paso algunos datitos para ver si te sirven chekeo que hisiste y te lo mando

en cuanto a tus errores por empesar el botton de enviar estava afuera de la etiqueta del form.
y tenias algunas variables con nombres incorrectos, quisiste poner un codigo php "<?php echo $email; ?>" dentro de un form con una variable que no esta especificada en ningun lado ademas no se cual es su funcion, eso es lo que pude ver aca coregi el tuyo y cree el archivo php para enviar funciona pero todavia no tiene los condicionales que veriican los datos como los 500 caracteres o el meil:

Código HTML:
<form id="contacto" method="post" action="enviar.php">

<fieldset>
<legend>Datos Personales &raquo;</legend>

<div><label for="nombre"><span style="color:#c00;">*</span>Nombre:</label><input name="nombre" type="text" id="nombre" title="Nombre" size="35" />
</div>

<div><label for="apellido"> <span style="color:#c00;">*</span>Apellidos:</label><input name="apellido" type="text" id="apellido" title="Apellido" size="34" />
</div>

<div><label for="mail"><span style="color:#c00;">*</span>Direcci&oacute;n de correo:</label>
  <input name="mail" type="text" id="mail" title="Correo" value="" size="24" />
</div>
<div onfocus="MM_validateForm('telefono','','NisNum');r eturn document.MM_returnValue">
<label for="telefono">Teléfono:</label><input name="telefono" type="text" class="text" id="telefono" title="Su número de telefono" size="36" />
</div>

<div><label for="celular">Celular:</label>
<input name="celular" type="text" class="text" id="celular" title="Su número de celular" size="37" />
</div>
</fieldset>


<fieldset>
<legend>Envienos su Mensaje &raquo;</legend>

<div><label for="asunto"><span style="color:#c00;">*</span>Motivo del mensaje:</label><input name="motivo" type="text" id="asunto" title="El motivo de su mensaje" size="25"/>
</div>

<div><label for="mensaje"><span style="color:#c00;">*</span>Mensaje:</label><textarea name="mensaje" cols="27" rows="2" id="mensaje" title="Mensaje"></textarea>
</div>

<div><label for="count">Caracteres disponibles:</label><input type="text" name="count" id="counter" value="500" size="2" />
  <input name="tipo" type="button" value="Enviar" />
</div>

</fieldset>
</form>


<p><span style="color:#FF8E3C;">*Campos obligatorios</span></p>
<p><span style="color:red;font-weight:bold;"></span></p>




<div id="left"></div>



</div>


</div>
</div> 
enviar.php
Código PHP:
<?php
{
    
$mymail "[email protected]";
    
$subject "consulta desde tu web";
    
$contenido .= "______________________________________"."\n"."\n";
    
$contenido .= "Nombre: ".$_POST["nombre"]."\n";
    
$contenido .= "Apellido: ".$_POST["apellido"]."\n";
                
$contenido .= "E-meil: ".$_POST["mail"]."\n";
                
$contenido .= "Telefono: ".$_POST["telefono"]."\n";
                
$contenido .= "Celular: ".$_POST["celular"]."\n";
                
$contenido .= "Motivo: ".$_POST["motivo"]."\n";
    
$contenido .= "______________________________________"."\n"."\n";
    
$contenido .= "Consulta: ".$_POST["mensaje"]."\n";
    
$header .= "From:".$_POST["mail"]."\nReply-To:".$_POST["mail"]."\n";
    
$header .= "X-Mailer:PHP/".phpversion()."\n";
    
$header .= "Mime-Version: 1.0\n";
    
$header .= "Content-Type: text/plain";
    
mail($mymail$subject,utf8_decode($contenido) ,$header);
}
?>
fijate www.videotutoriales.com hay un muy buen curso de php-mysql de 60 videos muy pero muy copado vas a entender todo porque al fin de cuentas no se trata de saber sino de entender el codigo.
bueno me fijo si te puedo alludar con eso por el momento aca tienes un sistema que funciona

bueno aca tengo el codigo php con los condicionales.
las condiciones que puse fueron que el emeil fuera valido, que el mensaje no tuviera mas de 500 caracteres y que el celular no tenga menos de 10 dijitos bueno espero que te sirva.

igual me parese que la onda es estudiar php de forma completa para entenderlo mas sabiendo que con internet aprender es lo mas facil solo hay que poner garra.
bueno aca esta el codigo php. remplaza el codigo de "enviar.php" que te pase anteriormente por este

enviar.php
Código PHP:
<?php

function valid_email($adress)
{
 
//comprueba que una direccion sea posiblemente balida
 
if (ereg("^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$",$adress))
 return 
true;
 else
 return 
false;


if(
strlen($_POST["mensaje"])>500)
{
echo; 
"solo se pueden ingresar 500 caracteres por favor vuelva a intentarlo.";
exit;
}
if(!
valid_email($_POST["mail"]))
{
echo 
"la direccion de correo no es valida";
exit;
}
if(
strlen($_POST["celular"])<10)
{
echo; 
"El numero de celular es incorrecto.";
exit;
}

{
    
$mymail "[email protected]";
    
$subject "consulta desde tu web";
    
$contenido .= "______________________________________"."\n"."\n";
    
$contenido .= "Nombre: ".$_POST["nombre"]."\n";
    
$contenido .= "Apellido: ".$_POST["apellido"]."\n";
    
$contenido .= "E-meil: ".$_POST["mail"]."\n";
    
$contenido .= "Telefono: ".$_POST["telefono"]."\n";
    
$contenido .= "Celular: ".$_POST["celular"]."\n";
    
$contenido .= "Motivo: ".$_POST["motivo"]."\n";
    
$contenido .= "______________________________________"."\n"."\n";
    
$contenido .= "Consulta: ".$_POST["mensaje"]."\n";
    
$header .= "From:".$_POST["mail"]."\nReply-To:".$_POST["mail"]."\n";
    
$header .= "X-Mailer:PHP/".phpversion()."\n";
    
$header .= "Mime-Version: 1.0\n";
    
$header .= "Content-Type: text/plain";
    
mail($mymail$subject,utf8_decode($contenido) ,$header);
}
?>

Última edición por GatorV; 01/09/2009 a las 16:51
  #7 (permalink)  
Antiguo 01/09/2009, 19:17
 
Fecha de Ingreso: agosto-2009
Mensajes: 15
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: envio de mail

Cita:
function valid_email($adress)
{
//comprueba que una direccion sea posiblemente balida
if (ereg("^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$",$adress))
return true;
else
return false;
}
gracias pero aun no funciona ... duda donde se utiliza el $adress? de arriba

gracias
  #8 (permalink)  
Antiguo 02/09/2009, 00:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: envio de mail

Te sugiero leer este post. http://www.forosdelweb.com/f18/valid...script-716038/

Nota:
No uses los ereg estan obsoletas usa los que comienzan con preg.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 02/09/2009, 08:47
 
Fecha de Ingreso: agosto-2009
Mensajes: 15
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: envio de mail

Gracias :)
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 13:12.