"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,