Foros del Web » Programando para Internet » PHP »

Formulario

Estas en el tema de Formulario en el foro de PHP en Foros del Web. no encontre mi mensaje anterior con respescto a esto mismo, pero no importa por que ahora me pueden explicar mejor Tengo un formularios con 14 ...

  #1 (permalink)  
Antiguo 18/02/2004, 15:46
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
Sonrisa Formulario

no encontre mi mensaje anterior con respescto a esto mismo, pero no importa por que ahora me pueden explicar mejor


Tengo un formularios con 14 campos, entre textbox, checkbox y selects.

Tengo que enviarlos por correo, ahi no esta el problema, el problema es que antes de enviarlos debo mostrarselos al usuarios.


No quiero pasar por una BD como lo puedo hacer, segun recuerdo me dijeron con sesiones, pero como?????? si el usuario no se registrara nunca.?????


Gracias y
__________________
"La imaginacion es el limite"
bee-freaks
  #2 (permalink)  
Antiguo 18/02/2004, 16:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Guardate el array $_POST en una sesión y lo usas (la variable de sesión) en tu script de proceso .. donde envies el e-mail con esos datos .. por medio muestra tus datos en una página aparte.

formulario.php
Código PHP:
<form action="previo.php" method="post">
tus 14 campos y el botón submit ...
</
form
previo.php
Código PHP:
<?
// Inicio sesiones...
session_start();
// Me guardo en "misvariables" el array post entero .. que contiene todas las variables de mi formulario.
$_SESSION['misvariables']=$_POST;
?>

<html>
<head>
</head>
etc ... pagina ..

// Presentas tus variables de la forma habitual .. <? echo  $_POST['nombre_variable_formulario'?> ....

// Y el botón .. link o como gustes para dar el OK y enviar el e-mail
enviar.php
Código PHP:
<?
// inicias sesioens ...
session_start();
// asigno (por comodidad) la variable de sesión a:
$misvariables=$_SESSION['misvariables'];

// Tus variables de tu formulario ahora las tienes en:
$misvariables['nombre_variable_formulario']

// las trabajarías igual que si fueran $_POST['nombre_variable_formulario']

// haces tu proceso .. en tu caso ese envio de ese e-mail ..

// Y nos desacemos de las variables de sesión que ya no vamos a usar ...
session_unset();
session_destroy();

?>
Usando sesiones .. incluso si en el "previo.php" necesitas volver al formulario para que modifiquen algo .. puedes usar la misma variable de sesión que contiene todas las del formulario (es una array) en tus campos value="" de los input .. u otras técnicas para otros elementos de formulario ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 18/02/2004, 16:13
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
otra duda, puse unos select tipo lista como hago si me eligen mas de un valor (cosa que pueden hacer).

o lo cambio por checkbox.

voy a quedar enfermo con esta w.... de form
__________________
"La imaginacion es el limite"
bee-freaks
  #4 (permalink)  
Antiguo 18/02/2004, 17:07
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
Código PHP:
<?
session_register
("checkbox")
session_register("checkbox2");
session_register("checkbox3");
session_register("checkbox4");
?>

Por otro lado me consegui esto, y funciona, pero hago para mostrarlas



Gracias
__________________
"La imaginacion es el limite"
bee-freaks
  #5 (permalink)  
Antiguo 18/02/2004, 18:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
[email protected]

Por favor .. lee antes algo sobre sesiones:
www.php.net/session

Eso de ir "consiguiendote código" sin entender lo que haces no es bueno. Así mezclaras un montón de cosas que "igual" funcionan que nó ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 19/02/2004, 09:02
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
ok, Gracias ahora me queda mas claro el asunto.

Volviendo a mis inventos, que pasa si al final de formulario pongo un textbox hide con value=al del form y lo guardo en una sesion, se puede????

o estoy pelando cables????

SUERTE y GRACIAS
__________________
"La imaginacion es el limite"
bee-freaks
  #7 (permalink)  
Antiguo 19/02/2004, 10:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cualquier campo de un formulario tiene su "name" así que eso es lo que debes refenciarte en tu parte PHP al recoger tus variables. Por eso mismo te decia en los ejemplos de usar el array superglobal $_POST .. que contiene -todos- los campos de ese formulario .. incluidos botones submit, botones de imagen y cualquier otro que uses, pero, para accederlo debes hacerlo por su nombre (name="nose") y un campo hidden tambien tiene su "name" lo mismo que cualquier otro ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 19/02/2004, 10:14
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
ah ok, ya estoy trabajando en el, pero cundo le doy submit en la barra de exploraxion me aparecen puros garabatos.

pero lo sacare adelante

GRACIAS Cluster (master of the Dark Side)
__________________
"La imaginacion es el limite"
bee-freaks
  #9 (permalink)  
Antiguo 19/02/2004, 10:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
cuando dices "puros garabatos" .. que es?.. (podrías pegar un ejemplo ..) .. Será algo tipo:

PHPSIDSEESION=asdf789asdf767sadf0asdf ?

O similar?

Eso son las sesiones .. es el SID (identificador único de sesión) . .Eso ya es parte de la configuración de sesiones .. Si no quieres verlo en el URL debes usar cookies para propagarlo (bien modificando tu php.ini session.use_cookies = 1 (ON) o bien por la función ini_set(). ...)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 19/02/2004, 10:43
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
duda existencial....


// Presentas tus variables de la forma habitual .. <? echo $_POST['nombre_variable_formulario'] ?> ....

a que te refieres con ['nombre_variable_formulario']


no le encuentro el dato y me dice que...

Notice: Undefined index: erp_.php in c:\archivos de programa\easyphp1-7\www\speakingsoft\erp_send.php on line 211

(esa es la linea 211)

GRACIAS
__________________
"La imaginacion es el limite"
bee-freaks
  #11 (permalink)  
Antiguo 19/02/2004, 11:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si tienes un formulario:

Código PHP:
<form action="nose.php" method="POST">
<
input type="loquesea" name="esto_es_una_variable_de_tu_formulario">
etc...
</
form
en nose.php .. recibiras el array superglobal $_POST (mejor dicho podrás acceder a las variables de ..) por su INDICE . .el indice de ese array (arreglo, matriz) será el nombre de tu "campo" de tu formulario (name="...")

Código PHP:
<?
echo $_POST['esto_es_una_variable_de_tu_formulario'];
?>
(lee las FAQ's de este foro .. de las primeras está explicado todo esto ..)

Eso sí, requieres de PHP versión 4.1.0 en adelante ... para versiones inferiores usa $HTTP_POST_VARS['....']

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 19/02/2004, 13:27
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
Sorry, me di cuneta despues de que hablas, tendre mas cuidado para la proxima.

Miren me pasa esto ahora, cuando envio un checkbox con valor 0 me da el sgte error....

Notice: Undefined index: Developers in c:\archivos de programa\easyphp1-7\www\speakingsoft\erp_send.php on line 221

"line 221 es donde llamo la variable"
"Developers es la variable"

como puedo hacer para que cuando vayan con valor 0 no me arroje el error?????
__________________
"La imaginacion es el limite"
bee-freaks
  #13 (permalink)  
Antiguo 19/02/2004, 14:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Los checkbox que no tienen valor no son propagados en las variables POST/GET ....

para eso debes hacer preguntas tipo: "si existe .. haces algo .."

Código PHP:
if (isset($_POST['el_checkbox'])){
   
// la usas ... ejemplo:
   
echo $_POST['el_checkbox'];

En realidad habría que hacerlo con todas las variables extenas (esa minima validación ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 19/02/2004, 14:46
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
GRAAAAAAAAAAAAAAAAAAAAAAAAAAANDE

CLUSTER, en los creditos de la pagina de la empresa pondre tu nombre
me emociones compatriota



Gracias te pasaste.
Cuando este lista te dare la url para que la vayas a ver.


SALUDOS
__________________
"La imaginacion es el limite"
bee-freaks
  #15 (permalink)  
Antiguo 19/02/2004, 18:14
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 14 años, 5 meses
Puntos: 2
Que te parece si posteas el codigo y ayudarias de mucho a todos , mejor aun postealo para que vaya a las Faqs
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #16 (permalink)  
Antiguo 20/02/2004, 07:31
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
haya ira a dar

SALUDOS
__________________
"La imaginacion es el limite"
bee-freaks
  #17 (permalink)  
Antiguo 20/02/2004, 07:42
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
en que Faqs pongo el codigo me andube mareando



Saludos
__________________
"La imaginacion es el limite"
bee-freaks
  #18 (permalink)  
Antiguo 20/02/2004, 08:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues en el mensaje marcado como importante de este foro (de los primeros) "FAQ's de PHP" ..

No sólo pongas el código y ya está .. intenta explicarlo un pco que es lo que hace y por qué lo haces así .. ademas de seguir la estructura de las FAQs: "Tituloo .. tema y la respuesta que será tu código y explicación que hagas".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #19 (permalink)  
Antiguo 20/02/2004, 08:25
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
ok gracias en cuanto este bien explicado lo subo.



SALUDOS
__________________
"La imaginacion es el limite"
bee-freaks
  #20 (permalink)  
Antiguo 20/02/2004, 10:28
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
creian queme habia ido,..... mentira, y como es del mismo formulario uso la misma.....



tengo unos selects multiples en el form pero cuando envio los datos solo me envia un dato de cada select, como puedo hacer para enviar mas.



GRACIAS
__________________
"La imaginacion es el limite"
bee-freaks
  #21 (permalink)  
Antiguo 20/02/2004, 12:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Los select multiples para PHP son arrays si llevan mas de un dato que seleccionastes .. tratalos como tal. (leerlos con bucles foreach() ..etc) ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #22 (permalink)  
Antiguo 20/02/2004, 13:05
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
ya lo logre tome el codigo que me diste para los checkbox y comence a investigar y llegue a esto

<select class="t_n" name="SO[]" size="3" multiple>
<option value="1) option>algo</option>
</select>

Código PHP:
<? $array=$_POST['SO'];
                                           
// en $array tendras un array con los valores seleccionados
                                           
foreach ($array as $valor) {
                                           echo 
$valor.'<br>';
                                           }
?>

y me resulto
__________________
"La imaginacion es el limite"
bee-freaks
  #23 (permalink)  
Antiguo 20/02/2004, 18:12
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 14 años, 5 meses
Puntos: 2
pon el codigo aqui al menos para ver como funciona un formulario con sesiones :)
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #24 (permalink)  
Antiguo 24/02/2004, 11:51
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
EEEEEEEEEEEEEh , volvi, sorry pero no podia postear, tenia problemas con las cookies.


Ya publicare el codigo como lo tengo, ya que necesito un poco de ayuda al final las priemras pares ya estan echas y funcionan bien.

asi que ahora va.
__________________
"La imaginacion es el limite"
bee-freaks
  #25 (permalink)  
Antiguo 24/02/2004, 13:13
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
Esta pagina se llamara form.php
<!--Primero que nada creamos la pagina con el formulario donde el usuario hara sus selecciones
Para hacerlo mas cortito colocare solo un campo de cada tipo
en mi caso solo ocupo tres checkbox, select simple y list select-->
<form action="erp_send.php" method="post" name="form">
<!--Creamos el primer campo llamado desicion el es un checkbox-->
<input name="Decision" type="checkbox" class="t_b" id="Decision" value="It Decision Makers">
<!--Creamos el segundo campo llamado el cual es un Selct simple-->
<select name="industry_area" class="t_n">
<option> </option>
<option value="1) Aerospace &amp; Defense (A &amp; D)">Aerospace &amp; Defense (A &amp; D)</option>
<option value="2) Associations/Non-Profit">Associations/Non-Profit</option>
</select>
<!--Creamos el ultimo campo que sera el list select (el que mas me costo :p)-->
<select class="t_n" name="tech[]" size="3" multiple>
<option value="1) ebXML">ebXML</option>
<option value="2) HTTP">HTTP</option>
</select>
<!--para que despues no digan que no es completa la explicacion ahora ponemos los botones-->
<input class="t_n" type="button" name="Submit" value="Submit" onClick="check_form()">
<input type="reset" class="t_n" name="Submit2" value="Reset">
<!--Con esto estaria listo el formulario-->
<!--Ahora parte el la pagina para visualizar las variables del form-->
__________________
"La imaginacion es el limite"
bee-freaks
  #26 (permalink)  
Antiguo 24/02/2004, 13:15
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
el famoso SCRIPT

Esta pagina se llamara "var_sen.php"
[php><?php
// Inicio sesiones...
session_start();
// Me guardo en "misvariables" el array post entero .. que contiene todas las variables de mi formulario.
$_SESSION['form']=$_POST;
//Con este Script llamamos la variable del checkbox, con este validamos que si va con valor 0 no nos muestr error
<? if (isset($_POST['Decision'])){
// la usas ... ejemplo:
echo $_POST['Decision'];
}
//Ahora hacemos el script para llamar la variable del select simple
echo $_POST['industry_area'];
//Creamos el script para el list select
$array=$_POST['tech'];
// en $array tendras un array con los valores seleccionados
foreach ($array as $valor) {
echo $valor.'<br>';
}
//con esto estarimos listos con la recoleccion de variables.
//Ahora es cuando empiza mi problema, ya que necesito que el user vea lo que selecciono y enviarselo por correo a el y a mi empresa y lo hago asi....
?>[/php]
<!--Como ven ahora se comleta un formulario para el cliente o user y lo envio por correo-->
<input type=text name="first_name" class="t_n" size=25>
<input type="text" name="last_name" class="t_n" size="25">
<input type="text" name="phone" class="t_n" size="25">
<input type="text" class="t_n" size="25" name="mail">
<input type="submit" name="Submit" value="Submit" class="t_n" onClick="check_form()">
<input value="Reset" class="t_n" name="reset" type="reset">
<!--Creo que es importante decir que todas las variables de var_send.php van dentro del "<form action="var_sender.php" method="post" name="form">"-->
__________________
"La imaginacion es el limite"
bee-freaks
  #27 (permalink)  
Antiguo 24/02/2004, 13:15
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
Código PHP:
Ahora les muestro la pagina var_sender.php
<?php
<?php
// inicias sesioens ...
session_start();
$misvariables=$_SESSION['form'];
// Tus variables de tu formulario ahora las tienes en
$misvariables['SO']
// haces tu proceso .. en tu caso ese envio de ese e-mail ..
$nombre $_POST['first_name'];
$apellido$_POST['last_name'];
$phono$_POST['phone'];
$email $_POST['mail'];
//Aqui se supone que cargo las variables para enviarlas por correo pero no funcan
$solucion $_SESSION['form'];

$asunto "Me acaban de contactar en mi sitio web!!";

$adondeva "[email protected]";
$otrocorreo $_POST['mail'];

$encabezados .= "From: $email<$elemail>\n";
$encabezados .= "X-Sender: <$elemail>\n";
$encabezados .= "X-Mailer: PHP\n";
$encabezados .= "Return-Path: <$elemail>\n";

$mensaje .= "Aqui esta lo que llegó:\n\n";
$mensaje .= "Sr.: $nombre $apellido\n";
$mensaje .= "E-Mail: $email\n";
$mensaje .= "Phone: $phono\n";
$mensaje .= "En el formulario ERP respondio:\n$solucion\n";

if(
$nombre == "" || $email == "" || $apellido ==""){
print 
"Hay que llenar todos los campos!";
} else {
print 
"Muchas gracias por contactarnos!";
mail($adondeva$asunto$mensaje$encabezados);
mail($otrocorreo$asunto$mensaje$encabezados);
}

session_unset();
session_destroy();
?>
__________________
"La imaginacion es el limite"
bee-freaks
  #28 (permalink)  
Antiguo 24/02/2004, 13:16
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
Ahora alguien me podria decir por que no me funciona????


GRACIAS A TODOS
__________________
"La imaginacion es el limite"
bee-freaks
  #29 (permalink)  
Antiguo 25/02/2004, 04:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues si explicas por qué no te funciona .. que no hace y debería hacer .. o si tienes algún error que presente PHP u otros sería lo ideal ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #30 (permalink)  
Antiguo 25/02/2004, 05:04
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Si tu problema es que te muestra en el email:

En el formulario ERP respondio:\nArray\n

es por la misma razon que muestra Array este codigo:
Código PHP:
$a=array(1,3,5,7);
echo 
$a
Revisa print_r() (www.php.net/print_r).

Saludos.

PD: Y si no es ese el error, echale la culpa a mi bola de cristal
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 15:58.