Tengo que mandar los datos que recibo de un formulario a un archivo de texto para descargarlo. El código que hice funciona correctamente pero de manera local, cuando lo subí al servidor NO se escriben los datos en el archivo, sin embargo, el archivo sí se puede descargar.
Muestro lo que hice para realizar todo este proceso.
En index.html, cuando se manda al formulario entra en acción el archivo "envio.php" el cuál contiene la creación y escritura del archivo. En envio.php tengo esto:
//Guardar datos//
$file = "datos_ilustradores.txt";
$datos = @fopen($file, "rw");
//$datos = @fopen("datos_ilustradores.txt", "a");
@fwrite($datos, "Folio: " . $aleatorio . " |");
@fwrite($datos, " Titulo: " . $titulo . " |");
@fwrite($datos, " Fecha: " . $fecha . " |");
@fwrite($datos, " Tecnica: " . $tecnica . " |");
@fwrite($datos, " Medidas Alto: " . $medidas_alto . " |");
@fwrite($datos, " Medidas Base: " . $medidas_base . " |");
@fwrite($datos, " Seudonimo: " . $seudonimo . " |");
@fwrite($datos, " Edad: " . $edad . " |");
@fwrite($datos, " Ciudad: " . $ciudad . " |");
@fwrite($datos, " Telefono: " . $telefono . " |");
@fwrite($datos, " Celular: " . $celular . " |");
@fwrite($datos, " Correo: " . $correo . " |");
@fwrite($datos, " Sitio: " . $sitio . "\n \n");
@fclose($datos);
En otra vista, en descargar_registros.php simplemente hago referencia al enlace de descarga:
<a href="descargar.php">Descargar registros</a>
Y en descargar.php tengo lo siguiente:
<?php
$file = "datos_ilustradores.txt";
if(!file_exists($file)) die("I'm sorry, the file doesn't seem to exist.");
$type = filetype($file);
// Get a date and timestamp
// Send file headers
header("Content-type: $type");
header("Content-Disposition: attachment;filename=datos_ilustradores.txt");
header("Content-Transfer-Encoding: binary");
header('Pragma: no-cache');
header('Expires: 0');
// Send the file contents.
set_time_limit(0);
readfile($file);
?>
Como mencionaba, esto funciona localmente. Cuando lo pruebo en el servidor, el archivo sí se descarga pero está vacío. En envio.php he intentando con lo siguiente:
$datos = @fopen("datos_ilustradores.txt", "a");
$datos = fopen("datos_ilustradores.txt", "a");
$datos = fopen("formatos/datos_ilustradores.txt", "a");
$datos = @fopen("./formatos/datos_ilustradores.txt", "a");
Pero no logró escribir los datos en el archivo. ¿Qué estoy haciendo mal?