Foros del Web » Programando para Internet » PHP »

Formulario redirecciona a otra página

Estas en el tema de Formulario redirecciona a otra página en el foro de PHP en Foros del Web. Hola espero me puedan ayudar, más bien orientar jeje. Seguí un tutorial sobre cómo enviar los datos de un formulario a un mail, lo seguí ...
  #1 (permalink)  
Antiguo 03/07/2011, 02:19
 
Fecha de Ingreso: diciembre-2010
Ubicación: Aguascalientes
Mensajes: 13
Antigüedad: 13 años, 4 meses
Puntos: 4
Formulario redirecciona a otra página

Hola espero me puedan ayudar, más bien orientar jeje.

Seguí un tutorial sobre cómo enviar los datos de un formulario a un mail, lo seguí al pie de la letra y me funcionó.

El problema es que quiero modificarlo, ya que al dar clic en "enviar" me envía a una nueva página de nombre send.php y me aparece el mensaje "Mensaje enviado correctamente" y se queda ahí. Lo que quiero es que no se vaya a una nueva página sino que permanezca en la misma página de contacto, y el mensaje también.

El código es el siguiente:


Código:
<?php 
$nombre = $_POST['nombre'];
$mail = $_POST['mail'];
$empresa = $_POST['empresa'];
$localidad = $_POST['localidad'];
$sexo = $_POST['sexo'];

$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por " . $nombre . ", de la empresa " . $empresa . ", en el estado de " . $localidad . " \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Contacto desde trabajopagina';

mail($para, $asunto, utf8_decode($mensaje), $header);

echo 'Mensaje enviado correctamente';

?>
El código del formulario:

Código:
<form action="send.php" method="post" name="contacto" target="_self" id="contacto">
                <table width="450" border="0" align="center" cellpadding="3" cellspacing="2">
                  <tr>
                    <td>Nombre completo</td>
                    <td><input name="nombre" type="text" id="nombre" size="30" /></td>
                  </tr>
                  <tr>
                    <td width="182">Empresa</td>
                    <td width="258"><input name="empresa" type="text" id="empresa" size="30" /></td>
                  </tr>
                  <tr>
                    <td align="left"><span class="contacto">
                      <label for="email2">Dirección de correo</label>
                      electrónico</span></td>
                    <td><input name="mail" type="text" id="mail" size="30" maxlength="30" /></td>
                  </tr>
                  <tr>
                    <td>Estado</td>
                    <td><select name="localidad" id="localidad">
                      <option selected="selected">Aguascalientes</option>
                      <option>Baja California</option>
                      <option>Campeche</option>
                      <option>Coahuila</option>
                      <option>Chiapas</option>
                      <option>Chihuahua</option>
                      <option>Durango</option>
                      <option>Estado de México</option>
                      <option>Guanajuato</option>
                      <option>Guerrero</option>
                      <option>Hidalgo</option>
                      <option>Jalisco</option>
                      <option>Michoacán</option>
                      <option>Morelos</option>
                      <option>México, D.F</option>
                      <option>Nayarit</option>
                      <option>Nuevo León</option>
                      <option>Oaxaca</option>
                      <option>Puebla</option>
                      <option>Querétaro</option>
                      <option>Quintana Roo</option>
                      <option>San Luis Potosí</option>
                      <option>Sinaloa</option>
                      <option>Sonora</option>
                      <option>Tabasco</option>
                      <option>Tamaulipas</option>
                      <option>Tlaxcala</option>
                      <option>Veracruz</option>
                      <option>Yucatán</option>
                      <option>Zacatecas</option>
                    </select></td>
                  </tr>
                  <tr>
                    <td>Sexo</td>
                    <td><select name="sexo" id="sexo">
                      <option>Masculino</option>
                      <option>Femenino</option>
                    </select></td>
                  </tr>
                  <tr>
                    <td><label for="mensaje">Deje su comentario</label></td>
                    <td><textarea name="mensaje" cols="30" rows="3" id="comentario2"></textarea></td>
                  </tr>
                  <tr>
                    <td><input name="enviar" type="submit" id="enviar" onclick="MM_validateForm('nombre','','R','mail','','RisEmail','comentario2','','R');return document.MM_returnValue" value="Enviar" /></td>
                    <td class="tabla">&nbsp;</td>
                  </tr>
                </table>
              </form>
Mis conocimientos de php son muy pocos, habrá posibilidad de que al cambiar el documento .html a .php, pueda colocar el código en la misma página?

Si se puede me podrían decir en que manera colocarlo? o si hay otra manera más sencilla. Les agradezco mucho cualquier ayuda que me puedan dar.
  #2 (permalink)  
Antiguo 03/07/2011, 03:23
Avatar de vendoeninternet  
Fecha de Ingreso: marzo-2011
Ubicación: Bilbao
Mensajes: 57
Antigüedad: 13 años, 1 mes
Puntos: 11
Respuesta: Formulario redirecciona a otra página

Hola muy buenas

En el formulario <form de html action="send.php" es el que se encarga de decir donde tiene que enviar la información, a que página va a mandarse la información.

Supongo que send.php es donde tienes el segundo código php.

Si lo que quieres es que se haga todo en la misma página, o bien metes el formulario dentro de send.php o bien el código php dentro de la página de envio y modificas send.php por el nombre de la página, ten cuidado de que la página tenga extensión php.

Ok, te voy a proponer meter el formulario dentro de send.php, si has entendido lo anterior podrás modificarlo para ponerlo en otro sitio.

<?php
// si no se ha enviado nada muestro el primer código
if (empty($_POST)){
?>
AQUÍ EL FORMULARIO
<?php
//si hay formulario va al seguindo código
}else{
?>
AQUÍ EL CODIGO DE ENVIAR EL MAIL
<?php
}
?>

El codigo quedaría así

Cita:
<?php
// si no se ha enviado nada muestro el primer código
if (empty($_POST)){
?>
<form action="send.php" method="post" name="contacto" target="_self" id="contacto">
<table width="450" border="0" align="center" cellpadding="3" cellspacing="2">
<tr>
<td>Nombre completo</td>
<td><input name="nombre" type="text" id="nombre" size="30" /></td>
</tr>
<tr>
<td width="182">Empresa</td>
<td width="258"><input name="empresa" type="text" id="empresa" size="30" /></td>
</tr>
<tr>
<td align="left"><span class="contacto">
<label for="email2">Dirección de correo</label>
electrónico</span></td>
<td><input name="mail" type="text" id="mail" size="30" maxlength="30" /></td>
</tr>
<tr>
<td>Estado</td>
<td><select name="localidad" id="localidad">
<option selected="selected">Aguascalientes</option>
<option>Baja California</option>
<option>Campeche</option>
<option>Coahuila</option>
<option>Chiapas</option>
<option>Chihuahua</option>
<option>Durango</option>
<option>Estado de México</option>
<option>Guanajuato</option>
<option>Guerrero</option>
<option>Hidalgo</option>
<option>Jalisco</option>
<option>Michoacán</option>
<option>Morelos</option>
<option>México, D.F</option>
<option>Nayarit</option>
<option>Nuevo León</option>
<option>Oaxaca</option>
<option>Puebla</option>
<option>Querétaro</option>
<option>Quintana Roo</option>
<option>San Luis Potosí</option>
<option>Sinaloa</option>
<option>Sonora</option>
<option>Tabasco</option>
<option>Tamaulipas</option>
<option>Tlaxcala</option>
<option>Veracruz</option>
<option>Yucatán</option>
<option>Zacatecas</option>
</select></td>
</tr>
<tr>
<td>Sexo</td>
<td><select name="sexo" id="sexo">
<option>Masculino</option>
<option>Femenino</option>
</select></td>
</tr>
<tr>
<td><label for="mensaje">Deje su comentario</label></td>
<td><textarea name="mensaje" cols="30" rows="3" id="comentario2"></textarea></td>
</tr>
<tr>
<td><input name="enviar" type="submit" id="enviar" onclick="MM_validateForm('nombre','','R','mail','' ,'RisEmail','comentario2','','R');return document.MM_returnValue" value="Enviar" /></td>
<td class="tabla">&nbsp;</td>
</tr>
</table>
</form>
<?php
//si hay formulario va al seguindo código
}else{
?>
<?php
$nombre = $_POST['nombre'];
$mail = $_POST['mail'];
$empresa = $_POST['empresa'];
$localidad = $_POST['localidad'];
$sexo = $_POST['sexo'];

$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por " . $nombre . ", de la empresa " . $empresa . ", en el estado de " . $localidad . " \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Contacto desde trabajopagina';

mail($para, $asunto, utf8_decode($mensaje), $header);

echo 'Mensaje enviado correctamente';

?>
<?php
}
?>
__________________
Mi web de anuncios para poner anuncios gratis en internet

Etiquetas: página, formulario
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 09:26.