Foros del Web » Programando para Internet » PHP »

Arreglar este formulario PHP

Estas en el tema de Arreglar este formulario PHP en el foro de PHP en Foros del Web. Hola, acabo de implementar un formulario de PHP en una página con un código que encontré . Todo funciona perfectamente, pero yo antes usaba otro ...

  #1 (permalink)  
Antiguo 03/10/2008, 09:17
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Pregunta [SOLUCIONADO] Arreglar este formulario PHP

Hola,

acabo de implementar un formulario de PHP en una página con un código que encontré.

Todo funciona perfectamente, pero yo antes usaba otro código que me elaboró otra persona, y tenía dos cosas que no tiene el actual código:

Código PHP:
$web="enviado.html"
Este valor hacía que, una vez se enviase el mensaje, redireccionase a otra página.

Código PHP:
mail($destinatario,$titulo,$body_mensaje,"From: $remitente"); 
Y este tiene el valor "From:" que, hasta donde llego, creo que es el que hace que, en el correo enviado, aparezca como remitente el correo electrónico introducido. Con el nuevo código que tengo, el remitente es mi propio servidor (llega enviado desde [email protected], en mi caso).

Lo que tengo actualmente es esto:

Código PHP:
<?php
$valido 
true;
if( isset(
$_POST['nombre']) and isset($_POST['email']) and isset($_POST['mensaje']) ){   
    if(
$_POST['nombre']==''){
        
$valido false;
    }   
    if (!
ereg("^([a-zA-Z0-9\._]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})",$_POST['email'])){
        
$valido false;
    }   
    if(
$_POST['mensaje']==''){
        
$valido false;
    }   
}else{
    
$valido false;
}
if(
$valido){
    
$contenido  "Nombre: ".$_POST['nombre']."\n";
    
$contenido .= "Correo: ".$_POST['email']."\n";
    
$contenido .= "Mensaje: ".$_POST['mensaje']; 
    
mail "[email protected]"Contacto desde formulario" $contenido ); 
    echo 
"Código HTML de mi antiguo archivo enviado.html";
}else{
        echo 
"<h3>Sus datos contienen errores.</h3>";
    }
?>
¿Qué debo modificarle para que el remitente sea el correo electrónico introducido y para que me envíe a otra página al terminar?

Advierto que no tengo ni idea de PHP, pero ni idea (es decir, necesito saber qué código necesito cambiar y con qué, nada más).

Muchas gracias por la ayuda

Última edición por Artdeco; 05/10/2008 a las 18:18 Razón: Tema solucionado.
  #2 (permalink)  
Antiguo 03/10/2008, 09:40
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Respuesta: Arreglar este formulario PHP

Que tal Artdeco, es bueno documentarte bien antes de implementar códigos, lee y analiza en la documentación de PHP las funciones mail() y la función header() para que hagas la redirección.




Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #3 (permalink)  
Antiguo 03/10/2008, 10:04
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Hola, Carlojas,

gracias por la respuesta, le he estado echando un vistazo, pero no entiendo nada, es decir, no sé cómo aplicarlo ni dónde, no tengo ningún conocimiento de PHP, sé entender y reconocer valores básicos, pero no modificarlos ni implementarlos, no tengo ninguna base de PHP.

¿Alguna ayuda más concreta?

Gracias.
  #4 (permalink)  
Antiguo 03/10/2008, 11:47
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

Código PHP:
<?php 
$valido 
true
if( isset(
$_POST['nombre']) and isset($_POST['email']) and isset($_POST['mensaje']) ){    
    if(
$_POST['nombre']==''){ 
        
$valido false
    }    
    if (!
ereg("^([a-zA-Z0-9\._]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})",$_POST['email'])){ 
        
$valido false
    }    
    if(
$_POST['mensaje']==''){ 
        
$valido false
    }    
}else{ 
    
$valido false

if(
$valido){ 
    
$mail $_POST['email'];
    
$contenido  "Nombre: ".$_POST['nombre']."\n"
    
$contenido .= "Correo: ".$_POST['email']."\n"
    
$contenido .= "Mensaje: ".$_POST['mensaje'];  
    

    if(
mail ($mail "Contacto desde formulario" $contenido )) //si envia el mail que redirija
{
header ("Location : pagina_que _sea.php");
  
    
}else{ 
        echo 
"<h3>Sus datos contienen errores.</h3>"
    } 
}
?>
mas o menos asi, colocando otro IF y redirigiendo con header, prueba aver que te sale

suerte
  #5 (permalink)  
Antiguo 03/10/2008, 11:53
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años, 7 meses
Puntos: 15
Respuesta: Arreglar este formulario PHP

Puedes probar con esto:

Código:
<?php
$valido = true;
if( isset($_POST['nombre']) and isset($_POST['email']) and isset($_POST['mensaje']) ){   
    if($_POST['nombre']==''){
        $valido = false;
    }   
    if (!ereg("^([a-zA-Z0-9\._]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})",$_POST['email'])){
        $valido = false;
    }   
    if($_POST['mensaje']==''){
        $valido = false;
    }   
}else{
    $valido = false;
}
if($valido){
    $contenido  = "Nombre: ".$_POST['nombre']."\n";
    $contenido .= "Correo: ".$_POST['email']."\n";
    $contenido .= "Mensaje: ".$_POST['mensaje']; 
    mail ( $_POST['email'] , "Contacto desde formulario" , $contenido ); 
    header('location:pagina_que_quieras_redirigir.php');
}else{
        echo "<h3>Sus datos contienen errores.</h3>";
    }
?>
Pero recuerda que en tu formulario tus campos deben llamarse igual que en tu script, segundo al hacer uso de header, no puedes enviar nada al navegador, e s decir no hagas ningun echo o print, si no te saldría un error. Y lo de la validación del campo emial, me parece bien pero te recomendaria usar la libreria CPHPLib, ya que si no controlas bien el campo del email te pueden hacer un MAIL HEADER INJECTION y estarían enviado spam desde tu script.


Saludos
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #6 (permalink)  
Antiguo 03/10/2008, 16:37
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Cita:
Iniciado por stone_neo Ver Mensaje
Puedes probar con esto:
Gracias a los dos, pero ¡ninguno ha funcionado! Ninguno de los dos códigos ha incluido el campo para el destinatario, ¿a quién se envía ese mensaje? No he podido probarlo porque ha faltado eso. Me las he intentado apañar así:

Código PHP:
if($valido){  
    
$mail $_POST['email']; 
    
$contenido  "Nombre: ".$_POST['nombre']."\n";  
    
$contenido .= "Correo: ".$_POST['email']."\n";  
    
$contenido .= "Mensaje: ".$_POST['mensaje'];   
     

    if(
mail ($_POST['email'] ,  "[email protected]""Contacto desde formulario" $contenido )) //si envia el mail que redirija 

header ("Location : enviado.html"); 
   
     
}else{  
        echo 
"<h3>Sus datos contienen errores.</h3>";  
    }  

?> 
No hay manera. El código original está perfectamente, pero es eso, le faltan esos dos detalles importantes que sigo sin poder solucionar.

Gracias de todas formas por los aportes.
  #7 (permalink)  
Antiguo 03/10/2008, 16:55
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años, 7 meses
Puntos: 15
Respuesta: Arreglar este formulario PHP

Recien acabo de leer bien tu mensaje inicial:

Cita:
¿Qué debo modificarle para que el remitente sea el correo electrónico introducido y para que me envíe a otra página al terminar?
Quieres que el remitente sea el correo electronico introducido,el remitente, estas seguro?, osea si introduces [email protected], el correo va a ser de [email protected] para [email protected].
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #8 (permalink)  
Antiguo 04/10/2008, 14:20
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Cita:
Iniciado por stone_neo Ver Mensaje
Recien acabo de leer bien tu mensaje inicial:

Quieres que el remitente sea el correo electronico introducido,el remitente, estas seguro?, osea si introduces [email protected], el correo va a ser de [email protected] para [email protected].
No entendiste bien. El remitente será el correo electrónico introducido, claro. Si yo introduzco mi correo en el formulario, ese correo debe aparecer como remitente. Así, para responderle, sólo tengo que pulsar en "responder". Es fácil, pero se ve que es muy difícil llevarlo a cabo.

Con l oque me ha costado encontrar un código PHP que funcione (casi todo lo que encuentro vía Google está obsoleto y no funciona) y que esté explicado para tontos! Porque no tengo ni idea de PHP, sólo sé HTML y CSS, nada más.
  #9 (permalink)  
Antiguo 04/10/2008, 14:36
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

Hola de nuevo

intenta adaptarte este codigo que envia los headers correspondientes a ver si te sirve para lo que quieres

Código PHP:
$nombre_origen    "Tuboolar Web";
$email_origen     "[email protected]";
$email_copia      "[email protected]";
$email_ocultos    "[email protected]";
$email_destino    "".$row['email']."";  



$asunto           "lo que quieras";

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2">
  <tr>
    <td width="623" align="left"></td>
  </tr>
  <tr>
    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>     Estos son sus datos de registro y link de activacion '
.$row['usuario'].'</strong></div></td>
  </tr>
  <tr>
    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '
.$row['usuario'].'</strong><br><br><br>
         
          <strong>SU EMAIL : </strong>'
.$row['email'].'</strong><br><br><br>
                   
                    
            </div>
    </td>
  </tr>
</table>'
;

                


$formato          "html";

//*****************************************************************//
$headers  "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";


$headers .= "X-Sender: $email_origen \r\n";

$headers .= "X-Priority: 3 \r\n";
$headers .= "MIME-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";

//*****************************************************************//
 
if($formato == "html")
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
   else
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }

if (@
mail($email_destino$asunto$mensaje$headers)) 
    { 
    
    
    
     } 

Última edición por jaronu; 04/10/2008 a las 14:44
  #10 (permalink)  
Antiguo 04/10/2008, 14:48
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Respuesta: Arreglar este formulario PHP

A ver Artdeco, aclara algo el formulario del que hablas es un formulario de contacto del usuario a tu cuenta de soporte del hosting? en ese caso el remitente es el usuario y tu el destinatario, ahora si es un formulario para enviar contenidos de tu web al usuario, el remitente eres tu y el usuario el destinatario, explicate bien, prueba este código
Código PHP:
//CUENTA REMITENTE
$sremitente '"www.tuweb.net" <[email protected]>';    
//CUENTA DESTINO
$sdestinatario $_POST['mail'];
$nombre $_POST['nombre'];
//ASUNTO
$sasunto "Contacto desde formulario. www.tuweb.net para ".$nombre."";
//MENSAJE
$shtml $_POST['mensaje'];
//LAS CABECERAS DEL MAIL.
$sheader "De:".$sremitente."\nReply-Para:".$sdestinatario."\n"
$sheader $sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader $sheader."Mime-Version: 1.0\n";
$sheader $sheader."Content-Type: text/html";
//FINALMENTE SE ENVIA CON MAIL().
if(mail($sdestinatario$sasunto$shtml$sheade)){
header("Location:enviado.html"); 
}else{
echo 
"Error al enviar el mail";
exit();} 



Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"

Última edición por Carlojas; 04/10/2008 a las 15:00
  #11 (permalink)  
Antiguo 04/10/2008, 14:52
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

si, explicate mejor, como dice carlojas, por que nos tienes a todos liados
pero con ganas de ayudarte, eso te lo asuguro

suerte
  #12 (permalink)  
Antiguo 05/10/2008, 12:13
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Oh, vaya xD Pensé que me había explicado. No quiero nada especial, sólo que el formulario que he dado al comienzo, está incompleto.

Incompleto porque, una vez enviado el mensaje, está preparado para mostrar un texto, pero no para reenviar a otra página (eso no es muy importante, puedo poner un código html en ese texto de confirmación, pero prefiero un reenvío).

Por otro lado, le pasa esto, una imagen vale más que mil palabras:



El remitente es mi propio servidor, y quiero que aparezca en ese remitente, el correo electrónico introducido en el formulario.

Os agradezco los dos últimos códigos, los he implantado pero ¡no funcionan! Por supuesto, aunque no tenga ni idea de PHP, sí que les he añadido la apertura y el cierre:
Código PHP:
<?php
?>
Pero no, no me han funcionado.

Resumiendo, sólo necesito que alguien solucione lo que he comentado en el código inicial que os he mostrado, no necesito un script nuevo.

¡Espero haberlo aclarado! Muchas y sinceras gracias por vuestro interés
  #13 (permalink)  
Antiguo 05/10/2008, 12:20
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

Si mandas el mail con tu servicio de SMTP el remitente siempre seras tu,

como quieres entrar con php al correo de otra persona para que aparezca el como remitente, necesitarias su contraseña.

puedes incluir el remitente en el asunto

suerte
  #14 (permalink)  
Antiguo 05/10/2008, 12:53
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

No, no! Lo que dices no es así, porque mi antiguo código sí lo hacía. Yo antes tenía este sencillo código:

Código PHP:
<?php
        
/* Dirección del destinatario */
        
$destinatario="[email protected]";

        
/* Título del email */
        
$titulo="Email enviado desde web";

       
/* Texto del email */
       
$body_mensaje="Nombre: $nombre\n\nMensaje: $mensaje";

       
/* Web a la que irás despues de enviarse el email */
       
$web="enviado.html";

        
mail($destinatario,$titulo,$body_mensaje,"From: $remitente");
        
header("Location: $web");
?>
Y ahí, todo funcionaba perfectamente, hasta que actualizaron el PHP de mi servidor y dejó de funcionar, por no sé qué motivo (por lo visto ese código está obsoleto).

Antes de pedir ayuda he intentado comprender el código y adaptarlo yo mismo, pero sin éxito. Y con ese sí que se muestra el correo introducido como remitente.

Ponerlo en el asunto del mensaje me sigue dejando en las mismas =P
  #15 (permalink)  
Antiguo 05/10/2008, 13:02
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

Pues estare equivocado,

has revisado el manual??

http://es2.php.net/manual/es/book.mail.php

una cosa como es el ultimo codigo que provaste?
  #16 (permalink)  
Antiguo 05/10/2008, 13:27
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

No comprendo el manual, no entiendo nada xD No es que no sepa inglés, es que me sacas de XHTML y me pierdo totalmente =S

El último código que probé es el de Carlojas, pero devuelve el mensaje de error que incluye.

El código que tengo funciona perfectamente, insisto, sólo necesito que se corrijan esos dos detalles.
  #17 (permalink)  
Antiguo 05/10/2008, 13:39
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

Lo unico que le he visto mal al code de carlojas es que le falta una r en la variable $sheader

if(mail($sdestinatario, $sasunto, $shtml, $sheade)){ dejalo asi

if(mail($sdestinatario, $sasunto, $shtml, $sheader)){

conociendolo, seguro que se despisto, pero ese code ha de funcionar. pruebalo de nuevo

y responde a esta pregunta que te hizo carlojas

es un formulario de contacto del usuario a tu cuenta de soporte del hosting? en ese caso el remitente es el usuario y tu el destinatario, ahora si es un formulario para enviar contenidos de tu web al usuario, el remitente eres tu y el usuario el destinatario
  #18 (permalink)  
Antiguo 05/10/2008, 14:43
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Modificado. Tampoco funciona, sigue devolviendo el mensaje de error y no envía ningún correo.

Cita:
Iniciado por jaronu Ver Mensaje
es un formulario de contacto del usuario a tu cuenta de soporte del hosting? en ese caso el remitente es el usuario y tu el destinatario, ahora si es un formulario para enviar contenidos de tu web al usuario, el remitente eres tu y el usuario el destinatario
No, el formulario se envía a una cuenta de Gmail. Estamos complicando esto demasiado, creo yo xDDD Por si alguien se ha perdido, voy a simplificarlo:



Y lo del reenvío a otra página... pues nada, no es tan importante xD

A ver si sacamos algo en claro. Seguro que es muy fácil!
  #19 (permalink)  
Antiguo 05/10/2008, 14:50
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

a ver prueba asi

Código PHP:

//CUENTA REMITENTE 
$sremitente '"www.tuweb.net" <[email protected]>';     
//CUENTA DESTINO 
$sdestinatario $_POST['mail']; 
$nombre $_POST['nombre']; 
//ASUNTO 
$sasunto "Contacto desde formulario. www.tuweb.net para ".$nombre.""
//MENSAJE 
$shtml $_POST['mensaje']; 
//LAS CABECERAS DEL MAIL. 
$sheader "De:".$sdestinatario."\nReply-Para:".$sdestinatario."\n";  
$sheader $sheader."X-Mailer:PHP/".phpversion()."\n"
$sheader $sheader."Mime-Version: 1.0\n"
$sheader $sheader."Content-Type: text/html"
//FINALMENTE SE ENVIA CON MAIL(). 
if(mail($sdestinatario$sasunto$shtml$sheader)){ 
header("Location:enviado.html");  
}else{ 
echo 
"Error al enviar el mail"
exit();} 
claramente el remitente es el user en esta funcion mail, no entiendo que no te funcione, es lo mismo que te dijio carlojas
  #20 (permalink)  
Antiguo 05/10/2008, 15:22
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

He cambiado www.tuweb.net por mi página, y el correo por una dirección de Gmail (lo digo por si pensáis que estoy introduciendo una cuenta con el mismo dominio). Es lo único que he tocado =S

resultado:

Error al enviar el mail
  #21 (permalink)  
Antiguo 05/10/2008, 15:28
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

a ver muestra como te quedo el codigo que acabas de usar, pero postealo
  #22 (permalink)  
Antiguo 05/10/2008, 15:35
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Código PHP:
<?php
//CUENTA REMITENTE  
$sremitente '"www.mipagina.com" <[email protected]>';      
//CUENTA DESTINO  
$sdestinatario $_POST['mail'];  
$nombre $_POST['nombre'];  
//ASUNTO  
$sasunto "Contacto desde formulario. www.mipagina.com para ".$nombre."";  
//MENSAJE  
$shtml $_POST['mensaje'];  
//LAS CABECERAS DEL MAIL.  
$sheader "De:".$sdestinatario."\nReply-Para:".$sdestinatario."\n";   
$sheader $sheader."X-Mailer:PHP/".phpversion()."\n";  
$sheader $sheader."Mime-Version: 1.0\n";  
$sheader $sheader."Content-Type: text/html";  
//FINALMENTE SE ENVIA CON MAIL().  
if(mail($sdestinatario$sasunto$shtml$sheader)){  
header("Location:enviado.html");   
}else{  
echo 
"Error al enviar el mail";  
exit();}

?>
Er... Intuyo que el problema puede ser el origen. Este es mi Form:

Código HTML:
<!-- Starts form -->
     <form id="contacto" name="contacto" method="post" action="form.php" onsubmit="return validar(this);">
    <div class="nombre">
    <label><input name="nombre" type="text" id="nombre" onfocus="if(this.value='Nombre') this.value=''" value="Nombre" />
        </label>
    </div>    
    <div class="correo"><label>
            <input name="email" type="text" id="email" onfocus="if(this.value='Correo') this.value=''" value="Correo" />
        </label>
    </div>
    <div class="mensaje"><label>
            <textarea cols="60" rows="10" name="mensaje" id="mensaje"></textarea>
        </label>
    </div>
    <div class="submit">
        <label>
            <input type="submit" name="boton" id="boton" value="Enviar" />
        </label>
    </div>
</form>
     <!-- Ends form --> 
De todas formas, ¿es posible que el código PHP esté mal? Es decir:

Código PHP:
//CUENTA REMITENTE  
$sremitente '"www.mipagina.com" <[email protected]>';      
//CUENTA DESTINO  
$sdestinatario $_POST['mail'];  
$nombre $_POST['nombre']; 
¡Mi cuenta es la cuenta de destino! No la remitente =S
  #23 (permalink)  
Antiguo 05/10/2008, 15:40
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Me respondo:

Código PHP:
//CUENTA REMITENTE  
$sremitente '"www.mipagina.com" <[email protected]>';      
//CUENTA DESTINO  
$sdestinatario $_POST['mail'];  
$nombre $_POST['nombre']; 
¡Le habéis dado la vuelta al formulario! xDDD Si no me equivoco, ahí interpreto que el usuario de mi página se enviará un correo A SÍ MISMO xDDD ¡Locura! Sólo quiero que se ponga en contacto conmigo xDDD
  #24 (permalink)  
Antiguo 05/10/2008, 15:42
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

Código PHP:


$nombre_origen    
"Tuboolar Web"
$email_origen     "[email protected]"
$email_copia      "[email protected]"
$email_ocultos    "[email protected]"
$email_destino    "".$row['email']."";   



$asunto           "lo que quieras"

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2"> 
  <tr> 
    <td width="623" align="left"></td> 
  </tr> 
  <tr> 
    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>     Estos son sus datos de registro y link de activacion '
.$row['usuario'].'</strong></div></td> 
  </tr> 
  <tr> 
    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '
.$row['usuario'].'</strong><br><br><br> 
          
          <strong>SU EMAIL : </strong>'
.$row['email'].'</strong><br><br><br> 
                    
                     
            </div> 
    </td> 
  </tr> 
</table>'


                 


$formato          "html"

//*****************************************************************// 
$headers  "From: $nombre_origen <$email_origen> \r\n"
$headers .= "Return-Path: <$email_origen> \r\n"
$headers .= "Reply-To: $email_origen \r\n"


$headers .= "X-Sender: $email_origen \r\n"

$headers .= "X-Priority: 3 \r\n"
$headers .= "MIME-Version: 1.0 \r\n"
$headers .= "Content-Transfer-Encoding: 7bit \r\n"

//*****************************************************************// 
  
if($formato == "html"
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  } 
   else 
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  } 

if (@
mail($email_destino$asunto$mensaje$headers))  
    {  
     
     
     
     } 
pues adaptate este codigo, que ya te lo puse antes e intentalo, en el esta el header FROM:
coloca alli el mail que quieras, como en tu antigua code

suerte
  #25 (permalink)  
Antiguo 05/10/2008, 15:52
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Código PHP:
$email_origen     "[email protected]";  
$email_copia      "[email protected]";  
$email_ocultos    "[email protected]"
Sólo he cambiado eso, y no funciona. He cambiado esas direcciones por la de mi Gmail, pero no funciona, no recibo ningún correo y una vez enviado, el navegador se queda mostrando el form.php en blanco.

¿Ese código seguro que es para un formulario de contacto? =S

Muchas gracias por el tiempo de todas formas, que no te he dicho nada =P Pensé que esto iba a ser más sencillo!
  #26 (permalink)  
Antiguo 05/10/2008, 15:58
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

si es para un form de contacto

y si no te hace falta

$email_copia = "[email protected]";
$email_ocultos = "[email protected]";

quitalos
  #27 (permalink)  
Antiguo 05/10/2008, 16:04
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

Y a mi me funciona a la perfeccion

en outlook me aparede

de: lo que le ponga en $email_origen y para: $email_destino

el erro sera de tu servidor SMTP o algo por que el code va perfecto
  #28 (permalink)  
Antiguo 05/10/2008, 16:05
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

No funciona xDDDDD Ya no sé qué hacer!
  #29 (permalink)  
Antiguo 05/10/2008, 16:06
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Arreglar este formulario PHP

trabajas en local o en un server??

pero por favor postea el codigo completo de como lo estas usando por dios
  #30 (permalink)  
Antiguo 05/10/2008, 16:11
Avatar de Artdeco  
Fecha de Ingreso: abril-2005
Ubicación: Barcelona
Mensajes: 165
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Arreglar este formulario PHP

Trabajo en un servidor, estoy subiendo las cosas y probándolas en servidor. A la vez, estoy probando el código original que tengo, y sí funciona =S

No te he pegado el código porque no he hecho nada especial, sólo cambiar la dirección de correo de ejemplo, lo demás está igual:

Código PHP:
<?php
$nombre_origen    
"Tuboolar Web";  
$email_origen     "[email protected]";
$email_destino    "".$row['email']."";    



$asunto           "lo que quieras";  

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2">  
  <tr>  
    <td width="623" align="left"></td>  
  </tr>  
  <tr>  
    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>     Estos son sus datos de registro y link de activacion '
.$row['usuario'].'</strong></div></td>  
  </tr>  
  <tr>  
    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '
.$row['usuario'].'</strong><br><br><br>  
           
          <strong>SU EMAIL : </strong>'
.$row['email'].'</strong><br><br><br>  
                     
                      
            </div>  
    </td>  
  </tr>  
</table>'
;  

                  


$formato          "html";  

//*****************************************************************//  
$headers  "From: $nombre_origen <$email_origen> \r\n";  
$headers .= "Return-Path: <$email_origen> \r\n";  
$headers .= "Reply-To: $email_origen \r\n";  


$headers .= "X-Sender: $email_origen \r\n";  

$headers .= "X-Priority: 3 \r\n";  
$headers .= "MIME-Version: 1.0 \r\n";  
$headers .= "Content-Transfer-Encoding: 7bit \r\n";  

//*****************************************************************//  
   
if($formato == "html")  
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }  
   else  
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }  

if (@
mail($email_destino$asunto$mensaje$headers))   
    {   
      
      
      
     }

?>
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 22:10.