Foros del Web » Programando para Internet » PHP »

Enviar variables de formulario a txt, miren el code.

Estas en el tema de Enviar variables de formulario a txt, miren el code. en el foro de PHP en Foros del Web. Código PHP: <? //TOMAMOS TODAS LAS VARIABLES DEL FORMULARIO foreach( $_POST  as  $nombre_campo  =>  $valor ){     $asignacion  =  "\$"  .  $nombre_campo  .  "='"  .  $valor  .  "';" ;    eval( ...
  #1 (permalink)  
Antiguo 04/08/2004, 20:29
Avatar de swishts  
Fecha de Ingreso: noviembre-2002
Ubicación: Uruguay
Mensajes: 209
Antigüedad: 15 años
Puntos: 0
Enviar variables de formulario a txt, miren el code.

Código PHP:
<?
//TOMAMOS TODAS LAS VARIABLES DEL FORMULARIO
foreach($_POST as $nombre_campo => $valor){
   
$asignacion "\$" $nombre_campo "='" $valor "';";
   eval(
$asignacion);
}
//DEFINIMOS EL NOMBRE DEL ARCHIVO DE TEXTO
$archivo "datos.txt";
//CODIGO PARA ESCRIBIR EN EL ARCHIVO
if ($id fopen ($archivo"w+"))
    
fputs ($id$valor);
fclose ($id)
?>
Que pasa que no me manda los datos del formulario al datos.txt?

Gracias de antemano !!!
  #2 (permalink)  
Antiguo 05/08/2004, 07:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
"Mandar datos de un formulario a un archivo?"

El proceso que haces tiene varias partes cláramente diferenciadas:
1) formulario HTML -> enviar datos a tu script PHP de proceso
2) recolecatar esas variables que recibiras del punto 1 en tu script PHP.
3) El proceso propiamente dicho con esas variables.

En tu caso al crear el archivo .. usas $valor y .. además fuera del bucle foreach pero usas "eval()"? ...

Si lo que realmente deseas es generar una línea tipo:
/$nombre_variable = 'valor';
para tu datos.txt por variable que llege de tu formulario .. deberías hacer algo tipo:

Código PHP:
<?
$archivo 
"datos.txt"
if (
$id fopen ($archivo"w+")) 
foreach(
$_POST as $nombre_campo => $valor){ 
   
$asignacion "\$" $nombre_campo "='" $valor "';\n"
    
fputs ($id$asignacion); 


fclose ($id
?>
(el \n es salto de línea para tu archivo generado .. )

Un saludo,
  #3 (permalink)  
Antiguo 05/08/2004, 11:06
Avatar de swishts  
Fecha de Ingreso: noviembre-2002
Ubicación: Uruguay
Mensajes: 209
Antigüedad: 15 años
Puntos: 0
Voy a probarlo, la verdad es que no tengo ni idea de PHP, talves por eso estuviera bastante mal.
  #4 (permalink)  
Antiguo 05/08/2004, 11:30
Avatar de swishts  
Fecha de Ingreso: noviembre-2002
Ubicación: Uruguay
Mensajes: 209
Antigüedad: 15 años
Puntos: 0
Ahora tengo el siguiente problema, en el txt se guarda el nombre del campo y el valor, pero cuando tengo dos campos con el mismo nombre me borra el anterior.
Necesito que los acumule aunque esten repetidas, ¿como tendria que hacer?
  #5 (permalink)  
Antiguo 05/08/2004, 12:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No te borra el anterior .. sino que toma sólo el último.

Si vas a usar campos en tu formulario de nombre IGUAL .. debes tratarlos como arrays:

name="nose[]" (con el [] como nombre)

Y en PHP recibiras un array en ese elemento "nose" que tendras que tratarlo como tal para recorrerlo . .

pero .. realmente no sé por qué tienes nombres de variables repetidos en tu formulario (será que usas checkbox? o radio?). Será mejor que pongas el formulario en concreto que usas también y expliques que fin tiene todo esto.

Ejemplo algo tipo:

Código PHP:
<?
$archivo 
"datos.txt"
if (
$id fopen ($archivo"w+")) 
foreach(
$_POST as $nombre_campo => $valor){ 
 if (
is_array($nombre_campo)){
   foreach (
$nombre_campo as $valor_elemento){
       
$asignacion "\$" $nombre_campo "='" $valor_elemento "';\n";
       
fputs ($id$asignacion);  
   }
 } else {
    
$asignacion "\$" $nombre_campo "='" $valor "';\n";
    
fputs ($id$asignacion);  
 }
}
fclose ($id
?>
Un saludo,
  #6 (permalink)  
Antiguo 05/08/2004, 12:19
Avatar de swishts  
Fecha de Ingreso: noviembre-2002
Ubicación: Uruguay
Mensajes: 209
Antigüedad: 15 años
Puntos: 0
Bueno, consiste en una encuesta que hice con Frontpage, mediante POST llama a un php (el que hiciste) el cual guarda el html en un txt, el problema que estoy teniendo es con la pregunta de la encuesta, he optado por usar un menu desplegable ya que botones de opciones tenia que poner la pregunta en cada boton (eso porque no se como un texto comun usarlo como variable).
Ese es un problema pero lo que me interesa es que se acumulen las respuestas para hacer un total a fin de mes porque no sera una persona quien usara la encuesta, son muchas y por eso no me sirve que no se acumulen.

Mira el link.

http://www.maskeamigos.com/entrar/?u...&submit=ENTRAR

Muchas gracias por ayudarme.

Última edición por swishts; 05/08/2004 a las 12:37
  #7 (permalink)  
Antiguo 05/08/2004, 16:40
Avatar de swishts  
Fecha de Ingreso: noviembre-2002
Ubicación: Uruguay
Mensajes: 209
Antigüedad: 15 años
Puntos: 0
Mejor aun, si existiera el archivo que creara uno nuevo.
Que codigo tendria que usar?
__________________
--------------------------
QUINCHOS WILFREDO, http://www.quinchoswilfredo.com
  #8 (permalink)  
Antiguo 05/08/2004, 20:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
swishts .. ya es hora de que leas algún manual de PHP ...

Ya tienes bastantes ejemplos de código que trabaja archivos de texto plano .. ahora te toca a ti "intentarlo" y poner aquí en el foro las dudas -concretas- que tengas.

Sino, ... visita www.hotscripts.com y toma algún sistema de encuestas ya hecho que se base en archivos de texto plano (que hay muchos). y lo usas simplemente ...

Un saludo,

PD: El editor HTML que has usado es lo de menos .. aquí interesa el código HTML que has usado o te "generó" ese editor visual ..
  #9 (permalink)  
Antiguo 06/08/2004, 12:06
Avatar de swishts  
Fecha de Ingreso: noviembre-2002
Ubicación: Uruguay
Mensajes: 209
Antigüedad: 15 años
Puntos: 0
MMMM.
Que lastima, te comento que ya me descargue cada una de las encuestas de hotscript y no encontre nada.
Solo me faltaba eso para dar por terminado esto...
Voy a ver si alguien mas me quiere ayudar, creo que no pedi un Windows XP, solo que me acumule los datos como lo hace un chat por ej.

En fin, gracias por adelantarme aquello.
__________________
--------------------------
QUINCHOS WILFREDO, http://www.quinchoswilfredo.com
  #10 (permalink)  
Antiguo 06/08/2004, 13:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por pedir .. que no quede .. pero si te dije que leas el manual oficial de PHP es para que empieces a ver las cosas por tu mismo ..

lee:
www.php.net/fopen

y fijate que modo estás usando para crear tu archivo (fopen() ..) ... "w+" .. si usas "a+" ya tienes resuelto tu problema .. Ese módo . .abre el archivo si existe (sino lo crea) y continua escribiendo en el si ya hay algo en el (a partir del último \n de línea ...)


Un saludo,
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 14:51.