Foros del Web » Programando para Internet » PHP »

Como puedo Configurar este formulario?

Estas en el tema de Como puedo Configurar este formulario? en el foro de PHP en Foros del Web. Hola soy novel en php tengo el siguiente problema Este es el codigo de una pagina que procesa los datos de un formulario. me funciona ...
  #1 (permalink)  
Antiguo 12/11/2006, 15:20
Avatar de JinSunMi  
Fecha de Ingreso: octubre-2006
Ubicación: Lima
Mensajes: 101
Antigüedad: 17 años, 6 meses
Puntos: 0
Como puedo Configurar este formulario?

Hola
soy novel en php tengo el siguiente problema
Este es el codigo de una pagina que procesa los datos de un formulario.
me funciona bien pues recibo los correos que envio ya desde internet
Mis problemas son los siguientes:
  1. Cuando recibo el correo, en mi bandeja de entrada se lee al remitente como: "Nobody" y deseo poner un remitente personalizado (ejem "Jin")
    como lo hago? (tengo un host de pago y no puedo manipular el archivo "ini.php").
  2. Deseo tambien que el mensaje de Gracias no se visualice en otra pagina sino dentro de un campo del mismo formulario (por ejemplo en el campo donde se insertan los comentarios).
  3. Como puedo redireccionar (ya para otro formulario, no este) a una pagina de confirmacion de envio?.
Muchas gracias a todos
Jin

Código:
<? 
}else{
    $cuerpo = "Consulta \n";
    $cuerpo .= "Nombre: " . $HTTP_POST_VARS["Nombre"] . "\n"; 
    $cuerpo .= "Apellidos: " . $HTTP_POST_VARS["Apellidos"] . "\n"; 
    $cuerpo .= "Pais: " . $HTTP_POST_VARS["Pais"] . "\n";
    $cuerpo .= "mail:" . $HTTP_POST_VARS["E-mail"] . "\n"; 
    $cuerpo .= "Consulta: " . $HTTP_POST_VARS["consulta"] . "\n";	 
//mando el correo... 
    mail("[email protected]","Consulta de un paciente ",$cuerpo); 
	//doy las gracias por el envío 
    echo "Gracias por escribirnos" ; 
} 
?>
  #2 (permalink)  
Antiguo 12/11/2006, 15:31
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 3 meses
Puntos: 1
Re

debes añadir cabeceras adicionales

Código PHP:
mail("destinatario","asunto","mensaje","FROM: Nombre <[email protected]>\n"); 
__________________
¡Estamos para Enseñar y Aprender!
  #3 (permalink)  
Antiguo 12/11/2006, 16:32
Avatar de JinSunMi  
Fecha de Ingreso: octubre-2006
Ubicación: Lima
Mensajes: 101
Antigüedad: 17 años, 6 meses
Puntos: 0
muchas gracias emilio: mi primera pregunta ha sido respondida

ahora mi inquietud es como lograr que el mensaje de agradecimiento no redireccione avanzando la pagina (es decir cambia)
lo que deseo es que el mensaje de agradecimiento se haga en la misma pagina y de preferencia en uno de los campos de formulario (por ejemplo dentro del campo "comentarios" o en un campo oculto

como hago eso?


Para otro formulario: como hago para redireccionar el formulario, luego de hacer click en el boton de envio a otro html de confirmacion ? (su mensaje ha sido enviado...)

gracias emilio
gracias a todos por su nueva ayuda
Jin
  #4 (permalink)  
Antiguo 12/11/2006, 21:11
Avatar de JinSunMi  
Fecha de Ingreso: octubre-2006
Ubicación: Lima
Mensajes: 101
Antigüedad: 17 años, 6 meses
Puntos: 0
Hay un error de sintaxis que anula los otros campos en la ayuda que me dio
emilio21.
Es decir no recibo los campo de nombre, pais, correo etc. y ya comprobè que no tiene que ver con el formulario porque cuando lo dejo tal como estaba inicialmente llegan todos los datos pero cuando inserto la linea que me dio emilio21...ya los campos no llegan
que es lo que no esta correcto?
como puedo hacerlo?
gracias

Jin
  #5 (permalink)  
Antiguo 13/11/2006, 00:31
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Código PHP:
<? 
}else{
    
$usuariomail $_POST["E-mail"];
    
$cuerpo "Consulta \n";
    
$cuerpo .= "Nombre: " $_POST["Nombre"] . "\n"
    
$cuerpo .= "Apellidos: " $_POST["Apellidos"] . "\n"
    
$cuerpo .= "Pais: " $_POST["Pais"] . "\n";
    
$cuerpo .= "mail:" $_POST["E-mail"] . "\n"
    
$cuerpo .= "Consulta: " $_POST["consulta"] . "\n";     
//mando el correo... 
    
mail("[email protected]","Consulta de un paciente ",$cuerpo); 
    
//doy las gracias por el envío 
    
echo "Gracias por escribirnos" 

?>

<!-- AQUI IRIA TU FORMULARIO -->
Para escribir el mensaje de gradecimiento ahi lo estas haciendo con el hecho... Te recuerdo que si tienes el formulario en otra página no te va a funcionar por lo que debes poner el formulario debajo de la llave que cierra la función de php.

2.- Para tu segundo es la misma sentencia nada más que agregas otra función de mail y un $cuerpo2 como la siguiente:

Código PHP:
$cuerpo2 "Su mensaje ha sido recibido\n";
$cuerpo2 .= "Gracias";

mail($usuariomail,"Su mensaje ha sido recibido",$cuerpo2); 
Saludos
__________________
Hospedaje Web al mejor costo!
  #6 (permalink)  
Antiguo 13/11/2006, 10:27
Avatar de JinSunMi  
Fecha de Ingreso: octubre-2006
Ubicación: Lima
Mensajes: 101
Antigüedad: 17 años, 6 meses
Puntos: 0
Tengo un dilema
al momento de guardar el archivo con el formulario...debe ser .php
para que funcione?

lo que sucede es que este formulario esta ubicado en el index.html
y como sabemos, no puede ser index.php como pagina principal
entonces necesito guardar la pagina como .html pero que opere el formulario php. insertado
Ya lo hice asi pero no funciona el form
que hago mal?
Jin
  #7 (permalink)  
Antiguo 13/11/2006, 10:34
Avatar de JinSunMi  
Fecha de Ingreso: octubre-2006
Ubicación: Lima
Mensajes: 101
Antigüedad: 17 años, 6 meses
Puntos: 0
añadiendo
Me salen ademas estos mensajes cuando guardo la pagina como .php
y los subo al servidor
Parse error: syntax error, unexpected '}' in /home/theplace/public_html/mixto.php on line 42

Borre la linea 42 ( {else}
y luego..
Parse error: syntax error, unexpected '}' in /home/theplace/public_html/mixto.php on line 56
} <------linea 56

que hago mal?
Jin
  #8 (permalink)  
Antiguo 13/11/2006, 14:41
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
los index pueden ser .html o php, logicamente tu servidor apache debe estar configurado. Respecto a lo de mixto.php no entiendo que error tienes ya que no he visto tú código, puedes postearlo para que te ayudemos.

Saludos
__________________
Hospedaje Web al mejor costo!
  #9 (permalink)  
Antiguo 14/11/2006, 09:24
Avatar de JinSunMi  
Fecha de Ingreso: octubre-2006
Ubicación: Lima
Mensajes: 101
Antigüedad: 17 años, 6 meses
Puntos: 0
que hago mal?

Que hago mal aqui?
necesito que la pagina sea HTML ya que no puedo configurar el servidor para que el index sea Php
ademas no creo que un index php sea lo ideal para el posicionamiento en buscadores.

Código PHP:
<? 
    $usuariomail 
$_POST["E-mail"];
    
$cuerpo "Consulta \n";
    
$cuerpo .= "Nombre: " $_POST["Nombre"] . "\n"
    
$cuerpo .= "Apellidos: " $_POST["Apellidos"] . "\n"
    
$cuerpo .= "Pais: " $_POST["Pais"] . "\n";
    
$cuerpo .= "mail:" $_POST["E-mail"] . "\n"
    
$cuerpo .= "Consulta: " $_POST["consulta"] . "\n";     
//mando el correo... 
    
mail("[email protected]","Consulta Rapida ",$cuerpo); 
    
//doy las gracias por el envío 
    
echo "Gracias por escribirnos" 
    
$cuerpo2 "Su mensaje ha sido recibido\n";
$cuerpo2 .= "Gracias";
mail($usuariomail,"Su mensaje ha sido recibido",$cuerpo2);  

?>
Al ser insertado el codigo Php en la misma pagina del formulario, que debo poner en form action???
(al usar el procesador.php en otro archivo ponia el nombre de ese archivo)


Código HTML:
Consulta r&aacute;pida- Quick message </p>
<form action="" method="post" name="Consulta rapida" target="_self" id="Consulta rapida" onsubmit="MM_validateForm('Nombre','','R');MM_validateForm('Apellidos','','R');MM_validateForm('Pais','','R');MM_validateForm('Email','','RisEmail');return document.MM_returnValue">
  <table width="200" border="0" align="center">
    <tr>
      <td><table width="330" border="0">
        <tr>
          <td width="146" class="Estilo3">Nombre / Name </td>
          <td width="174"><label>
            <input name="Nombre" type="text" id="Nombre" />
          </label></td>
        </tr>
        <tr>
          <td class="Estilo3">Apellidos / Last Name </td>
          <td><input name="Apellidos" type="text" id="Apellidos" /></td>
        </tr>
        <tr>
          <td class="Estilo3">Pa&iacute;s / Country </td>
          <td><input name="Pais" type="text" id="Pais" /></td>
        </tr>
        <tr>
          <td class="Estilo3">E-mail</td>
          <td><label>
            <input name="Email" type="text" id="Email" />
          </label></td>
        </tr>
      </table>
          <table width="329">
            <tr>
              <td><label>
                  <input name="oculto" type="hidden" id="oculto" />
                  <div align="center">
                    <textarea name="consulta" cols="40" rows="5" id="consulta"></textarea>
                  </div>
                </label></td>
            </tr>
        </table></td>
    </tr>
  </table>
  <div align="left"></div>
  <label></label>
  <table width="223" border="0" align="center">
    <tr>
      <td width="322" height="52"><label>
        <input type="submit" name="Submit" value="Enviar / Sent" />
        </label>
          <label></label></td>
      <td width="322"><input type="reset" name="Submit2" value="Borrar / Reset" /></td>
    </tr>
  </table>
</form> 
  #10 (permalink)  
Antiguo 14/11/2006, 10:00
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Código:
<form action="procesador.php" method="post" name="Consulta rapida" target="_self" id="Consulta rapida" onsubmit="MM_validateForm('Nombre','','R');MM_validateForm('Apellidos','','R');MM_validateForm('Pais','','R');MM_validateForm('Email','','RisEmail');return document.MM_returnValue">
Aunque yo no validaría en JavaScript. Lo haría en PHP para mucha mejor usabilidad.

Código PHP:
foreach ($_POST as $valor) {
                
$valor $_POST[$valor]; 

if (empty(
$valor)) { 
exit (
"Has dejado campos en blanco");
}

}

$usuariomail $_POST["E-mail"];
    
$cuerpo "Consulta \n";
    
$cuerpo .= "Nombre: " $_POST["Nombre"] . "\n"
    
$cuerpo .= "Apellidos: " $_POST["Apellidos"] . "\n"
    
$cuerpo .= "Pais: " $_POST["Pais"] . "\n";
    
$cuerpo .= "mail:" $_POST["E-mail"] . "\n"
    
$cuerpo .= "Consulta: " $_POST["consulta"] . "\n";     
//mando el correo... 
    
mail("[email protected]","Consulta Rapida ",$cuerpo); 
    
//doy las gracias por el envío 
    
echo "Gracias por escribirnos" 
    
$cuerpo2 "Su mensaje ha sido recibido\n";
$cuerpo2 .= "Gracias";
mail($usuariomail,"Su mensaje ha sido recibido",$cuerpo2);  

Si haces esto ultimo, el form quedaría así:

Código:
<form action="procesador.php" method="post" name="Consulta rapida" id="Consulta rapida">
...A no ser que quieras dejar el JavaScript como validación auxiliar.
  #11 (permalink)  
Antiguo 14/11/2006, 10:09
 
Fecha de Ingreso: abril-2005
Mensajes: 70
Antigüedad: 19 años
Puntos: 0
En mi opinión, si no tienes acceso a la configuración de tu servidor puedes hacer un redireccionamiento a la pagina php deseada:

<script language="javascript">
window.location="tu_pagina.php";
</script>

o puedes también incluirla en la pagina corriente:

require_once “tu_pagina.php” ;

Otra cosa es que index.php viene valorado por Google u otro motor de búsqueda exactamente igual que index.htm o index.asp.
Una vez que resuelvas este problema de incluir el codigo php en la pagina htm, si es que esto para ti es muy necesario, basta con llamarla a si misma: <form action=”tu_pagina.php”> y poner una condición para ejecutar tu script php, por ejemplo:

if ( !empty($_REQUEST['exe']) )
{
ejecucion de tu script PHP
}

Siendo “exe” un parámetro enviado digamos desde la forma, puede ser el propio botón de la misma si lo llamas exe ya que su valor nunca será vacio.
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 08:12.