Foros del Web » Programando para Internet » PHP »

Formulario de envío al email

Estas en el tema de Formulario de envío al email en el foro de PHP en Foros del Web. He buscado el código de un formulario en PHP de envío de datos al email y el que se ve debajo funciona perfectamente. Sin embargo, ...
  #1 (permalink)  
Antiguo 24/07/2006, 21:50
 
Fecha de Ingreso: julio-2006
Mensajes: 3
Antigüedad: 11 años, 4 meses
Puntos: 0
Formulario de envío al email

He buscado el código de un formulario en PHP de envío de datos al email y el que se ve debajo funciona perfectamente. Sin embargo, me gustaría que al enviar correctamente dicho formulario no me redirigiera a una nueva página (echo), sino que recargara la misma hoja en la que ya estábamos y, a ser posible, con un ventana de aviso antes diciendo que el envío es correcto.

He intentado llevar a cabo la recarga de la misma página una vez tramitado el formulario mediante header(location) pero no lo he conseguido.

¿Me podríais decir qué parte de código me falta para lograr mis propósitos y dónde debo ponerlo exactamente?

Muchas gracias.

<?
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.";
}
?>
  #2 (permalink)  
Antiguo 24/07/2006, 22:11
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 11 años, 4 meses
Puntos: 5
De acuerdo Enviar mail sin ir a otra pagina

Hola algo asi se me ocurre tu solucion

Código PHP:
<?
if ($_POST["mail"]=="si"){
//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);
}
?>

<form action="envia_form_php.php" method=post>
Nombre: <input type=text name="nombre" size=16>
<input type="hidden" name="mail" value="si">
<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>
espero que te sirva


esta es mejor

Código PHP:
<?
if ($_POST["nombre"]!=""){
//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);
}
?>

<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>

Última edición por .php; 25/07/2006 a las 09:04
  #3 (permalink)  
Antiguo 25/07/2006, 09:13
 
Fecha de Ingreso: julio-2006
Mensajes: 3
Antigüedad: 11 años, 4 meses
Puntos: 0
Perfecto

Muchas gracias por tu ayuda. ¡Funciona perfectamente!
  #4 (permalink)  
Antiguo 25/07/2006, 09:23
Avatar de MWNS  
Fecha de Ingreso: julio-2003
Mensajes: 528
Antigüedad: 14 años, 4 meses
Puntos: 2
hola

no lo uses asi
Código PHP:
$HTTP_POST_VARS["email"
mejor asi
Código PHP:
$_POST['email'


un saludo

bueno, y una pregunta, donde esta la parte de code que hace lo que quieres,??

Código PHP:
<?
if ($_POST["nombre"]!=""){
//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);
}
?>
mmm, no se si es otra forma de hacerlo pero no entiendo, me explican?

editadommm, ya veo.. solo si las var existen se genera el mail, sino muestra la page... creo, me corrigen porfa,

un saludo
__________________
MWNS
Mario Navas
http://marionavas.com

Última edición por MWNS; 25/07/2006 a las 09:32
  #5 (permalink)  
Antiguo 25/07/2006, 10:12
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 11 años, 4 meses
Puntos: 5
Exacto XD
ese es el vijo truco de hacerce el muerto
  #6 (permalink)  
Antiguo 25/07/2006, 10:20
Avatar de MWNS  
Fecha de Ingreso: julio-2003
Mensajes: 528
Antigüedad: 14 años, 4 meses
Puntos: 2
Información

¿¿¿:- -:???
podria editarlo(y quitar la primer parte), pero me fije luego..
chile? a que se refieren en tu pais con -de hacerce el muerto-

__________________
MWNS
Mario Navas
http://marionavas.com
  #7 (permalink)  
Antiguo 25/07/2006, 11:05
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 11 años, 4 meses
Puntos: 5
es hacer creer algo que no es o que no deberia ser
en ese caso hago una consulta preguntando si el texto es distinto a blanco
Código PHP:
if ($_POST["nombre"]!=""){ 
es lo mismo que:
Código PHP:
if (isset($_POST["nombre"])){ //si no esta vacia o no esta mueta 
  #8 (permalink)  
Antiguo 25/07/2006, 15:51
Avatar de MWNS  
Fecha de Ingreso: julio-2003
Mensajes: 528
Antigüedad: 14 años, 4 meses
Puntos: 2
hola, jejeje, bueno, no entendi muy bien lo de hacerce el muerto pero si estoy seguro de algo, que lo siguiente si te mataría... jejejje

Código PHP:
//////////////////////////////////////////////////////////
//te imaginas que pasaria si querer fuera NULL??? jejej
$querer 1;//$querer = NULL;
//////////////////////////////////////////////////////////
if (isset($querer)){ 
//si no esta vacia o no esta mueta,
//home coño!, claro que el querer nunca puede estar muerto, o sino
//ponlo a null, y te daras cuenta que pasa... :borracho: 
//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////
$matriz = array(array('n' => "Mario"'p' => "Publicista"'p2' => "Colombia"),
array(
'n' => "Pepito"'p' => "Ingeniero"'p2' => "Peru"),
array(
'n' => "Coñito"'p' => "Tecnico"'p2' => "bolivia"));
//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////
$selecciona rand(0,2);
$seleccionado $matriz[$selecciona]['n'];
//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////
for($j=0;$j<count($matriz);$j++)
{
    if((
$matriz[$j]['n']==$seleccionado))
    {
    
session_start();
    echo
"Por cosas del azar... he nacido!<br>";
    
$_SESSION['datos'][0] = array('mi_nombre_sera' => $matriz[$j]['n'], 'Cuando grande seré' => $matriz[$j]['p'], 'y naci en' => $matriz[$j]['p2']);
    echo 
'Mi nombre será: '.$_SESSION['datos'][0]['mi_nombre_sera'];
    echo 
'<br>Cuando grande seré: '.$_SESSION['datos'][0]['Cuando grande seré'];
    echo 
'<br>Naceré en: '.$_SESSION['datos'][0]['y naci en'];
    echo
"<br>";
    }
}
//////////////////////////////////////////////////////////
}//del if (isset($_POST[""])){
elseif($_POST["nombre"]=="")//aca tambien, no es solo querer, tambien saber
//jejej, pero bueno, para evitar no estar definido hay que recorrer un largo
//largo camino, y pues como todo, aprender a su ritmo
{tasMorido();}

function 
tasMorido()//aca es donde llegaras si las dos se llegase a unir
//session_unset
//session_destroy();
echo"bah, para que vivir asi...jejej";} 
si quieres pega este code en un .php y hazlo correr, wow, que cosas podrian pasar si no existe el querer...

hey!, que buena cosa esta de los arrays, me han gustao sobre manera.,..

un saludo
__________________
MWNS
Mario Navas
http://marionavas.com
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 05:31.