Foros del Web » Programando para Internet » PHP »

Formulario en php y html

Estas en el tema de Formulario en php y html en el foro de PHP en Foros del Web. Hola a todos, tengo el siguiente problema, tengo hecho un formulario en html y php, el mismo tiene campos de nombre, email, comentario y luego ...
  #1 (permalink)  
Antiguo 10/08/2006, 15:14
 
Fecha de Ingreso: agosto-2006
Mensajes: 5
Antigüedad: 11 años, 4 meses
Puntos: 0
Formulario en php y html

Hola a todos, tengo el siguiente problema, tengo hecho un formulario en html y php, el mismo tiene campos de nombre, email, comentario y luego tiene una lista desplegable (equivale al subjet del mail), ahora bien, cada nombre de la lista tiene un mail correspondiente...el formulario que yo tengo solo envia el mail a la opcion que esta ultima, y no a la que corresponde, por ejemplo: lista:
consultas
sugerencias
ventas
info
-------
Yo elijo ventas, pero el mail llega SIEMPRE a info.
Existe alguna manera de lograrlo??? ya he probado diferentes codigos, y siempre pasa lo mismo, o no llegan los mails o da algun error, si necesitan puedo copiarles el codigo...

Desde ya muchas gracias
  #2 (permalink)  
Antiguo 10/08/2006, 15:22
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 7 meses
Puntos: 3
Hola

Digo:
- siempre es bueno que comentes mas por ejemplo lo que dejaste para el segundo post, tus archivos.
- Postear el error
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #3 (permalink)  
Antiguo 10/08/2006, 15:36
Avatar de Phobos  
Fecha de Ingreso: abril-2001
Ubicación: sentado frente a un pc prestado
Mensajes: 375
Antigüedad: 16 años, 7 meses
Puntos: 2
podrias enviar el html que muestra el list tambien.
eso ayudaria...

saludos.
  #4 (permalink)  
Antiguo 10/08/2006, 16:11
 
Fecha de Ingreso: agosto-2006
Mensajes: 5
Antigüedad: 11 años, 4 meses
Puntos: 0
Esto es lo que esta en la pagina de php

<?
/* aqui se incializan variables de PHP */
if (phpversion() >= "4.2.0") {
if ( ini_get('register_globals') != 1 ) {
$supers = array('_REQUEST',
'_ENV',
'_SERVER',
'_POST',
'_GET',
'_COOKIE',
'_SESSION',
'_FILES',
'_GLOBALS' );

foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
} else {
if ( ini_get('register_globals') != 1 ) {

$supers = array('HTTP_POST_VARS',
'HTTP_GET_VARS',
'HTTP_COOKIE_VARS',
'GLOBALS',
'HTTP_SESSION_VARS',
'HTTP_SERVER_VARS',
'HTTP_ENV_VARS'
);

foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
}

/* DE AQUI EN ADELANTE PUEDES EDITAR EL ARCHIVO */

if($email=="")
{
/* reclama si no se ha rellenado el campo email en el formulario */
echo "No ingresaste la dirección de correo electrónico";
exit();
}

/* aquí se especifica la pagina de respuesta en caso de envío exitoso */
$respuesta="respuesta.htm";
// la respuesta puede ser otro archivo, en incluso estar en otro servidor

/* AQUÍ ESPECIFICAS EL CORREO AL CUAL QUEREIS QUE SE ENVÍEN LOS DATOS
DEL FORMULARIO, SI QUIERES ENVIAR LOS DATOS A MÁS DE UN CORREO,
LOS PUEDES SEPARAR POR COMAS */

if (isset($opciones)) {
switch ($opciones) {
case "consultas":$para = "[email protected]";
break;
case "sugerencias":$para = "[email protected]";
break;
case "ventas":$para = "[email protected]";
break;
case "errores":$para = "[email protected]";
break;
case "daños":$para = "[email protected]";
break;
case "otros":$para = "[email protected]";
break;
}
}
/* aquí se construye el encabezado del correo*/
$encabezado = "From: $nombre <$email>";
$encabezado .= "\nReply-To: $email";
$encabezado .= "\nX-Mailer: PHP/" . phpversion();

/* con esto se captura la IP del que envío el mensaje */
$ip=$REMOTE_ADDR;

/* las siguientes líneas arman el mensaje */
$mensaje .= "NOMBRE = $nombre\n";
$mensaje .= "TU EMAIL = $email\n";
$mensaje .= "COMENTARIOS = $comentarios\n";


/* aqui se intenta enviar el correo, si no se
tiene éxito se da un mensaje de error */ if(!mail($para, $sujeto, $mensaje, $encabezado))
{
echo "<h1>No se pudo enviar el Mensaje</h1>";
exit();
}
else
{
/* aqui redireccionamos a la pagina de respuesta */
echo "<meta HTTP-EQUIV='refresh' content='1;url=$respuesta'>";
}

?>

---------------------------------------------------------------------

Este es el codigo del form en la pagina que esta en html

<FORM METHOD="POST" ACTION="envio.php" name="opciones">

<p>
<font face="Verdana" size="2">
<b>Nombre/Name:</b></font>
<INPUT TYPE="text" NAME="nombre" SIZE="20" style="color: #FFFFFF; font-family: Verdana; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></p>

<p>
<b><font face="Verdana" size="2">E-mail:&nbsp; </font></b>
<INPUT TYPE="text" NAME="email" SIZE="20" style="font-family: Verdana; color: #FFFFFF; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></p>

<p>
<b><font face="Verdana" size="2">Asunto/Topic:</font></b>
<select size="1" name="D1" style="color: #FFFFFF; font-family: Verdana; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">
<option selected value="Sin asunto">Elija / Choose</option>
<option value="Consultas">Consultas</option>
<option value="Sugerencias">Sugerencias</option>
<option value="Ventas">Ventas</option>
<option value="Errores">Errores</option>
<option value="Daños">Daños</option>
<option value="Otros">Otros</option>
</select></p>

<p>
<font face="Verdana" size="2"><b>Mensaje/Message:</b></font><br>
<TEXTAREA NAME="comentarios" ROWS="6" COLS="50" WRAP="soft" style="color: #FFFFFF; font-size: 8pt; font-family: Verdana; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></TEXTAREA></p>

<p align="center">

<br>

<INPUT TYPE="submit" VALUE="Enviar/Send" style="font-family: Verdana; font-size: 8pt; color: #FFFFFF; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">

<INPUT TYPE="reset" VALUE="Borrar/Reset" style="font-family: Verdana; font-size: 8pt; color: #FFFFFF; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">
</p>

</FORM>
------------------------
Si necesitan algo mas, pidan...
Espero que puedan ayudarme.
Graciassss

Última edición por Barbi; 10/08/2006 a las 16:41
  #5 (permalink)  
Antiguo 11/08/2006, 09:49
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 7 meses
Puntos: 3
Hola

index.php
Código PHP:
<FORM METHOD="POST" ACTION="enviar.php" name="opciones">

<
p>
<
font face="Verdana" size="2">
<
b>Nombre/Name:</b></font
<
INPUT TYPE="text" NAME="nombre" SIZE="20" style="color: #FFFFFF; font-family: Verdana; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></p>

<
p>
<
b><font face="Verdana" size="2">E-mail:&nbsp; </font></b
<
INPUT TYPE="text" NAME="email" SIZE="20" style="font-family: Verdana; color: #FFFFFF; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></p>

<
p>
<
b><font face="Verdana" size="2">Asunto/Topic:</font></b>
<
select size="1" name="opciones" style="color: #FFFFFF; font-family: Verdana; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">
<
option selected value="Sin asunto">Elija Choose</option>
<
option value="consultas">Consultas</option>
<
option value="sugerencias">Sugerencias</option>
<
option value="ventas">Ventas</option>
<
option value="errores">Errores</option>
<
option value="danos">Daños</option>
<
option value="otros">Otros</option>
</
select></p>

<
p>
<
font face="Verdana" size="2"><b>Mensaje/Message:</b></font><br>
<
TEXTAREA NAME="comentarios" ROWS="6" COLS="50" WRAP="soft" style="color: #FFFFFF; font-size: 8pt; font-family: Verdana; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></TEXTAREA></p>

<
p align="center">

<
br>

<
INPUT TYPE="submit" VALUE="Enviar/Send" style="font-family: Verdana; font-size: 8pt; color: #FFFFFF; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">

<
INPUT TYPE="reset" VALUE="Borrar/Reset" style="font-family: Verdana; font-size: 8pt; color: #FFFFFF; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">
</
p>

</
FORM
Código PHP:
<?
/* aqui se incializan variables de PHP */
if (phpversion() >= "4.2.0") {
if ( 
ini_get('register_globals') != ) {
$supers = array('_REQUEST',
'_ENV',
'_SERVER',
'_POST',
'_GET',
'_COOKIE',
'_SESSION',
'_FILES',
'_GLOBALS' );

foreach( 
$supers as $__s) {
if ( (isset($
$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__sEXTR_OVERWRITE );
}
unset(
$supers);
}
} else {
if ( 
ini_get('register_globals') != ) {

$supers = array('HTTP_POST_VARS',
'HTTP_GET_VARS',
'HTTP_COOKIE_VARS',
'GLOBALS',
'HTTP_SESSION_VARS',
'HTTP_SERVER_VARS',
'HTTP_ENV_VARS'
);

foreach( 
$supers as $__s) {
if ( (isset($
$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__sEXTR_OVERWRITE );
}
unset(
$supers);
}
}

/* DE AQUI EN ADELANTE PUEDES EDITAR EL ARCHIVO */

if($email=="")
{
/* reclama si no se ha rellenado el campo email en el formulario */
echo "No ingresaste la dirección de correo electrónico";
exit();
}

/* aquí se especifica la pagina de respuesta en caso de envío exitoso */
$respuesta="respuesta.htm";
// la respuesta puede ser otro archivo, en incluso estar en otro servidor

/* AQUÍ ESPECIFICAS EL CORREO AL CUAL QUEREIS QUE SE ENVÍEN LOS DATOS
DEL FORMULARIO, SI QUIERES ENVIAR LOS DATOS A MÁS DE UN CORREO,
LOS PUEDES SEPARAR POR COMAS */

if (isset($opciones)) { 
switch (
$opciones) { 
case 
"consultas":$para "[email protected]";
break; 
case 
"sugerencias":$para "[email protected]"
break; 
case 
"ventas":$para "[email protected]"
break; 
case 
"errores":$para "[email protected]"
break; 
case 
"daños":$para "[email protected]"
break; 
case 
"otros":$para "[email protected]"
break; 

}
/* aquí se construye el encabezado del correo*/ 
/*$encabezado = "From: $comentario";
$encabezado .= "\nReply-To: $comentario";
$encabezado .= "\nX-Mailer: PHP/" . phpversion();
*/
/* con esto se captura la IP del que envío el mensaje */
$ip=$REMOTE_ADDR;

/* las siguientes líneas arman el mensaje */
$mensaje .= "De: $nombre\n";
$mensaje .= "Email: $email\n";
$mensaje .= "Comentario: $comentarios\n";


/* aqui se intenta enviar el correo, si no se
tiene éxito se da un mensaje de error */
//$sujeto, 
mail($opciones$nombre$mensaje);
{
exit();
}
?>
Digo:
Código:
(!mail($para, $sujeto, $mensaje, $encabezado))
- linea falta parametro ;
- la variable $sujeto no viene de ningun lado de tus script
- iguale el valor (value) de las opciones del formulario a la cuenta de envio a la toma de opciones, para poder enviar mail.
- cambie nombre de la lista de opciones D1 por opciones y llevar a la función mail
Código:
mail($opciones, $nombre, $mensaje);
Pregunto:
- que función cumple el encabezado (omiti), ya que envias mail desde la variable opciones.


Pd: espero que podamos seguir abordando sobre este topic
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #6 (permalink)  
Antiguo 11/08/2006, 13:30
 
Fecha de Ingreso: agosto-2006
Mensajes: 5
Antigüedad: 11 años, 4 meses
Puntos: 0
Hola!! Ya puse como lo dejaste vos...pero ahora no me sale la pagina de confirmacion de mensaje enviado y no me llega el mail tampoco...
Sinceramente ya no se que hacer.
Muchas gracias!!!
  #7 (permalink)  
Antiguo 11/08/2006, 14:01
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 7 meses
Puntos: 3
Digo:
- como lo logre yo
archivo index.php
Cita:
<option value="consultas">Consultas</option>
en value puse mi user de email

- en enviar.php puse
Código PHP:
case "consultas":$para "[email protected]"
y así para las demas opciones user en el value del index.php archivo de formulario y email completo en el archivo enviar.php

pd: me diste archivo envio.php yo le puse al del formulario enviar.php
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #8 (permalink)  
Antiguo 11/08/2006, 14:39
 
Fecha de Ingreso: agosto-2006
Mensajes: 5
Antigüedad: 11 años, 4 meses
Puntos: 0
Esta escrito como debe ser...en el formulario del html figura envio.php y no enviar.php
y luego en el archivo php, esta puesto como vos lo pusiste...no me da ningun error, pero no me sale la pagina de confirmacion y tampoco llega el mail...
No se cual puede ser el problema.
  #9 (permalink)  
Antiguo 11/08/2006, 15:07
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 7 meses
Puntos: 3
A la verdad que no se ahora porque no te funciona

Digo:
- Lo unico en hacer fue modificar algo adentro de los dos script y el que tu tenias como envio.php lo llame enviar.php y ese mismo nombre se lo puse el archivo de formulario (enviar.php)

Pregunto:
- y tu php.ini que me dices
-- la función SMTP =
-- sendmail_from =

- que hay en esas dos variables, están habilitadas fundamental sendmail_from =
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #10 (permalink)  
Antiguo 11/08/2006, 15:28
 
Fecha de Ingreso: agosto-2006
Mensajes: 5
Antigüedad: 11 años, 4 meses
Puntos: 0
Es que el problema comenzo cuando quise que la lista de las opciones se envie a cada mail...
Al empezar a modificar el codigo del php no se envia ningun mail...ahora si yo dejo el codigo como hice la primera vez...el formulario funciona perfecto...pero me lo envia al ultimo mail de la lista.

este seria el codigo original del php

<?
/* aqui se incializan variables de PHP */
if (phpversion() >= "4.2.0") {
if ( ini_get('register_globals') != 1 ) {
$supers = array('_REQUEST',
'_ENV',
'_SERVER',
'_POST',
'_GET',
'_COOKIE',
'_SESSION',
'_FILES',
'_GLOBALS' );

foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
} else {
if ( ini_get('register_globals') != 1 ) {

$supers = array('HTTP_POST_VARS',
'HTTP_GET_VARS',
'HTTP_COOKIE_VARS',
'GLOBALS',
'HTTP_SESSION_VARS',
'HTTP_SERVER_VARS',
'HTTP_ENV_VARS'
);

foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
}

/* DE AQUI EN ADELANTE PUEDES EDITAR EL ARCHIVO */

if($email=="")
{
/* reclama si no se ha rellenado el campo email en el formulario */
echo "No ingresaste la dirección de correo electrónico";
exit();
}

/* aquí se especifica la pagina de respuesta en caso de envío exitoso */
$respuesta="respuesta.htm";
// la respuesta puede ser otro archivo, en incluso estar en otro servidor

/* AQUÍ ESPECIFICAS EL CORREO AL CUAL QUEREIS QUE SE ENVÍEN LOS DATOS
DEL FORMULARIO, SI QUIERES ENVIAR LOS DATOS A MÁS DE UN CORREO,
LOS PUEDES SEPARAR POR COMAS */
$para ="[email protected]";
$para ="[email protected]";
$para ="[email protected]";
$para ="[email protected]";
$para ="[email protected]";
$para ="[email protected]";
/* AQUI ESPECIFICAS EL SUJETO DEL EMAIL */
$sujeto = "Consultas";
$sujeto = "Sugerencias";
$sujeto = "Ventas";
$sujeto = "Errores";
$sujeto = "Daños";
$sujeto = "Info";
/* aquí se construye el encabezado del correo*/
$encabezado = "From: $nombre <$email>";
$encabezado .= "\nReply-To: $email";
$encabezado .= "\nX-Mailer: PHP/" . phpversion();

/* con esto se captura la IP del que envío el mensaje */
$ip=$REMOTE_ADDR;

/* las siguientes líneas arman el mensaje */
$mensaje .= "NOMBRE = $nombre\n";
$mensaje .= "TU EMAIL = $email\n";
$mensaje .= "COMENTARIOS = $comentarios\n";


/* aqui se intenta enviar el correo, si no se
tiene éxito se da un mensaje de error */ if(!mail($para, $sujeto, $mensaje, $encabezado))
{
echo "<h1>No se pudo enviar el Mensaje</h1>";
exit();
}
else
{
/* aqui redireccionamos a la pagina de respuesta */
echo "<meta HTTP-EQUIV='refresh' content='1;url=$respuesta'>";
}

?>
--------------------------------------------------------
Con este codigo el formulario de ambas pagina funciona, pero no de la manera que yo quiero, porque si yo en el form del htm elijo la ocion "ventas", el mail me llega al mail: [email protected] con el asunto: info, osea el ultimo de la lista, cuando lo que yo quiero es que llega al mail: [email protected] con el asunto: ventas

No se si se entiende lo que yo quiero, pero no logro hacerlo funcionar.
  #11 (permalink)  
Antiguo 11/08/2006, 15:57
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 7 meses
Puntos: 3
A la verdad que estoy al dar el jajajajajaajajajajajajajaajajajajajajaj

Digo:
- Ya este no se parece mucho al primero que posteaste pero lo que estoy convencido es que hice 6 cuentas nuevas y las probe y me dio resultado con el que te postee anteriormente.

te pongo tu formulario
Código PHP:
<FORM METHOD="POST" ACTION="envio.php" name="opciones">

<
p>
<
font face="Verdana" size="2">
<
b>Nombre/Name:</b></font
<
INPUT TYPE="text" NAME="nombre" SIZE="20" style="color: #FFFFFF; font-family: Verdana; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></p>

<
p>
<
b><font face="Verdana" size="2">E-mail:&nbsp; </font></b
<
INPUT TYPE="text" NAME="email" SIZE="20" style="font-family: Verdana; color: #FFFFFF; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></p>

<
p>
<
b><font face="Verdana" size="2">Asunto/Topic:</font></b>
<
select size="1" name="opciones" style="color: #FFFFFF; font-family: Verdana; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">
<
option selected value="Sin asunto">Elija Choose</option>
<
option value="consultas">Consultas</option>
<
option value="sugerencias">Sugerencias</option>
<
option value="ventas">Ventas</option>
<
option value="errores">Errores</option>
<
option value="danos">Daños</option>
<
option value="otros">Otros</option>
</
select></p>

<
p>
<
font face="Verdana" size="2"><b>Mensaje/Message:</b></font><br>
<
TEXTAREA NAME="comentarios" ROWS="6" COLS="50" WRAP="soft" style="color: #FFFFFF; font-size: 8pt; font-family: Verdana; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></TEXTAREA></p>

<
p align="center">

<
br>

<
INPUT TYPE="submit" VALUE="Enviar/Send" style="font-family: Verdana; font-size: 8pt; color: #FFFFFF; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">

<
INPUT TYPE="reset" VALUE="Borrar/Reset" style="font-family: Verdana; font-size: 8pt; color: #FFFFFF; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">
</
p>

</
FORM
y te pongo tu archivo envio.php
Código PHP:
<?
/* aqui se incializan variables de PHP */
if (phpversion() >= "4.2.0") {
if ( 
ini_get('register_globals') != ) {
$supers = array('_REQUEST',
'_ENV',
'_SERVER',
'_POST',
'_GET',
'_COOKIE',
'_SESSION',
'_FILES',
'_GLOBALS' );

foreach( 
$supers as $__s) {
if ( (isset($
$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__sEXTR_OVERWRITE );
}
unset(
$supers);
}
} else {
if ( 
ini_get('register_globals') != ) {

$supers = array('HTTP_POST_VARS',
'HTTP_GET_VARS',
'HTTP_COOKIE_VARS',
'GLOBALS',
'HTTP_SESSION_VARS',
'HTTP_SERVER_VARS',
'HTTP_ENV_VARS'
);

foreach( 
$supers as $__s) {
if ( (isset($
$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__sEXTR_OVERWRITE );
}
unset(
$supers);
}
}

/* DE AQUI EN ADELANTE PUEDES EDITAR EL ARCHIVO */

if($email=="")
{
/* reclama si no se ha rellenado el campo email en el formulario */
echo "No ingresaste la dirección de correo electrónico";
exit();
}

/* aquí se especifica la pagina de respuesta en caso de envío exitoso */
$respuesta="respuesta.htm";
// la respuesta puede ser otro archivo, en incluso estar en otro servidor

/* AQUÍ ESPECIFICAS EL CORREO AL CUAL QUEREIS QUE SE ENVÍEN LOS DATOS
DEL FORMULARIO, SI QUIERES ENVIAR LOS DATOS A MÁS DE UN CORREO,
LOS PUEDES SEPARAR POR COMAS */

if (isset($opciones)) { 
switch (
$opciones) { 
case 
"consultas":$para "[email protected]";
break; 
case 
"sugerencias":$para "[email protected]"
break; 
case 
"ventas":$para "[email protected]"
break; 
case 
"errores":$para "[email protected]"
break; 
case 
"daños":$para "[email protected]"
break; 
case 
"otros":$para "[email protected]"
break; 

}
/* aquí se construye el encabezado del correo*/ 
/*$encabezado = "From: $comentario";
$encabezado .= "\nReply-To: $comentario";
$encabezado .= "\nX-Mailer: PHP/" . phpversion();
*/
/* con esto se captura la IP del que envío el mensaje */
$ip=$REMOTE_ADDR;

/* las siguientes líneas arman el mensaje */
$mensaje .= "De: $nombre\n";
$mensaje .= "Email: $email\n";
$mensaje .= "Comentario: $comentarios\n";


/* aqui se intenta enviar el correo, si no se
tiene éxito se da un mensaje de error */
//$sujeto, 
mail($opciones$nombre$mensaje);
{
exit();
}
?>
pd: Por favor prueba de esta forma y al archivo segundo ponerle envio.php tal como lo tenias tu antes.
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #12 (permalink)  
Antiguo 11/08/2006, 16:13
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 16 años, 9 meses
Puntos: 535
Hola Barbi, probá este formulario:

Código:
<FORM METHOD="POST" ACTION="envio.php" name="opciones">

<p>
<font face="Verdana" size="2">
<b>Nombre/Name:</b></font>
<INPUT TYPE="text" NAME="nombre" SIZE="20" style="color: #FFFFFF; font-family: Verdana; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></p>

<p>
<b><font face="Verdana" size="2">E-mail:&nbsp; </font></b>
<INPUT TYPE="text" NAME="email" SIZE="20" style="font-family: Verdana; color: #FFFFFF; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></p>

<p>
<b><font face="Verdana" size="2">Asunto/Topic:</font></b>
<select size="1" name="D1" style="color: #FFFFFF; font-family: Verdana; font-size: 8pt; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">
<option selected value="Sin asunto">Elija / Choose</option>
<option value="consultas">Consultas</option>
<option value="sugerencias">Sugerencias</option>
<option value="ventas">Ventas</option>
<option value="errores">Errores</option>
<option value="danos">Daños</option>
<option value="otros">Otros</option>
</select></p>

<p>
<font face="Verdana" size="2"><b>Mensaje/Message:</b></font><br>
<TEXTAREA NAME="comentarios" ROWS="6" COLS="50" WRAP="soft" style="color: #FFFFFF; font-size: 8pt; font-family: Verdana; font-weight: bold; border: 1px solid #FF9933; background-color: #800080"></TEXTAREA></p>

<p align="center">

<br>

<INPUT TYPE="submit" VALUE="Enviar/Send" style="font-family: Verdana; font-size: 8pt; color: #FFFFFF; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">

<INPUT TYPE="reset" VALUE="Borrar/Reset" style="font-family: Verdana; font-size: 8pt; color: #FFFFFF; font-weight: bold; border: 1px solid #FF9933; background-color: #800080">
</p>

</FORM>

Y éste código PHP:
Código:
<?
/* aqui se incializan variables de PHP */
if (phpversion() >= "4.2.0") {
if ( ini_get('register_globals') != 1 ) {
$supers = array('_REQUEST',
'_ENV',
'_SERVER',
'_POST',
'_GET',
'_COOKIE',
'_SESSION',
'_FILES',
'_GLOBALS' );

foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
} else {
if ( ini_get('register_globals') != 1 ) {

$supers = array('HTTP_POST_VARS',
'HTTP_GET_VARS',
'HTTP_COOKIE_VARS',
'GLOBALS',
'HTTP_SESSION_VARS',
'HTTP_SERVER_VARS',
'HTTP_ENV_VARS'
);

foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
}

/* DE AQUI EN ADELANTE PUEDES EDITAR EL ARCHIVO */

if($email=="")
{
/* reclama si no se ha rellenado el campo email en el formulario */
echo "No ingresaste la dirección de correo electrónico";
exit();
}

/* aquí se especifica la pagina de respuesta en caso de envío exitoso */
$respuesta="respuesta.htm";
// la respuesta puede ser otro archivo, en incluso estar en otro servidor

/* AQUÍ ESPECIFICAS EL CORREO AL CUAL QUEREIS QUE SE ENVÍEN LOS DATOS
DEL FORMULARIO, SI QUIERES ENVIAR LOS DATOS A MÁS DE UN CORREO,
LOS PUEDES SEPARAR POR COMAS */

if (isset($_POST['D1'])) {
$para = "";
switch ($_POST['D1']) {
case "consultas";
	$para = "[email protected]";
	break;
case "sugerencias";
	$para = "[email protected]";
	break;
case "ventas";
	$para = "[email protected]";
	break;
case "errores";
	$para = "[email protected]";
	break;
case "danos";
	$para = "[email protected]";
	break;
case "otros";
	$para = "[email protected]";
	break;
}
}
/* aquí se construye el encabezado del correo*/
$encabezado = "From: $nombre <$email>";
$encabezado .= "\nReply-To: $email";
$encabezado .= "\nX-Mailer: PHP/" . phpversion();

/* con esto se captura la IP del que envío el mensaje */
$ip=$REMOTE_ADDR;

/* las siguientes líneas arman el mensaje */
$mensaje = "NOMBRE = $nombre\n";
$mensaje .= "TU EMAIL = $email\n";
$mensaje .= "COMENTARIOS = $comentarios\n";


$sujeto = "mail enviado desde el sitio para $para";
echo $para . "<br>";
echo $sujeto . "<br>";
echo $mensaje . "<br>";
echo $encabezado . "<br>";
/* aqui se intenta enviar el correo, si no se
tiene éxito se da un mensaje de error */ if(!mail($para, $sujeto, $mensaje, $encabezado))
{
echo "<h1>No se pudo enviar el Mensaje</h1>";
exit();
}
else
{
/* aqui redireccionamos a la pagina de respuesta */
//echo "<meta HTTP-EQUIV='refresh' content='1;url=$respuesta'>";
}

?>
__________________
...___...

Última edición por AlZuwaga; 11/08/2006 a las 16:41
  #13 (permalink)  
Antiguo 11/08/2006, 17:10
 
Fecha de Ingreso: agosto-2006
Mensajes: 1
Antigüedad: 11 años, 4 meses
Puntos: 0
La verdad esque usando estos scripts nunca aprenderas a programar :S
lo unico que haces es una rutina para que te funcione algo, pero si tu intención es realmente aprender a programar en PHP, deberias ir por otro camino, como por ejemplo leerte un buen manual de PHP.
Con ese codigo haras un formulario, pero no puedes estar toda la vida asi....
Ademas ocupas muchisimas lineas de codigo, para un formulario, que deberia ocupar poquisimo...
Nadamas para recibir las variables usas una rutina, que es bastante larga...

Ademas recomiendo que la rutina de recibir variables, la copies en otro archivo, por ejemplo variables.php, y hagas un include:
Código PHP:
include("funciones/variables.php"); 
;)
Adiós
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 01:35.