Escribir en un archivo con jQuery, Ajax y PHP
En este artículo vamos a ver como escribir o crear un archivo .txt con jQuery, Ajax y PHP. Emplearemos estas tecnologías solo por el simple hecho de no tener que recargar la página tras enviar el formulario.
En el ejemplo en funcionamiento tendremos un formulario con un campo textarea donde introduciremos el texto que deseamos guardar en el archivo. Por motivos de seguridad, hemos deshabilitado la opción de introducir código HTML.
En el <body> de nuestra página vamos a tener el siguiente formulario:
<form id="form" method="post"> Texto:<br/> <textarea name="data" id="data" rows="7" cols="84" placeholder="Escribe aqui un texto..."></textarea> <a href="#" id="save">Guardar</a> </form>
Donde simplemente tendremos un campo de texto (textarea) y un botón o link.
En el <head> de esta misma página incluiremos la librería jQuery y los scripts necesarios para llevar a cabo la funcionalidad principal del ejemplo:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('#save').live('click', function() { var dataString = 'data='+$('textarea#data').val(); $.ajax({ type: "POST", url: "writetxt.php", data: dataString, success: function(data) { //alert(data); $('form').remove(); $('.content').append('<p>Tu texto se ha guardado correctamente!</p><a href="data.txt" target="_blank">Ver</a>'); } }); return false; }); }); </script>
El código anterior simplemente está esperando a que se pulse en el botón o link con id=»save» para capturar la información que se ha introducido en el campo de texto con id=»data» (textarea) y mediante la técnica AJAX enviamos esa información a un archivo php que será el encargado de escribir esta información enviada en el archivo .txt.
El archivo .php tendrá el siguiente contenido:
<?php require_once("classes/class.inputfilter.php"); $ifilter = new InputFilter(); $data = $ifilter->process($_POST['data']); $file = 'data.txt'; if (isset($data)) { $fp = fopen($file, 'w'); fwrite($fp, utf8_decode($data)); fclose($fp); chmod($file, 0777); echo 'Se han guardado correctamente la información en el txt!'; } else { echo 'No hay datos que guardar!'; } ?>
En este archivo lo primero que hacemos es recibir los datos enviados mediante el método POST y utilizar un técnica para evitar el XSS con la clase inputfilter de PHP, entonces si hay información que guardar, abrimos el fichero y escribimos en él la información recibida.
Articulo corto y sencillo, pero conciso. Me ha sido de gran ayuda para empezar a hacer unas pruebas. Gracias!
Hola buenas, se podría hacer eso mismo, pero en lugar de escribir todo el txt, acceda a el, busque una variable y sobreescriba solamente el valor asignado a la misma, sin modificar el resto del archivo?
Gracias!
Si, podrías buscar esa variable con una función de php para buscar cadenas dentro de cadenas y volver a rellenar el archivo con el contenido completo. Puedo que haya otras opciones pero no las tengo en mente.
Hola me podrias pasar el codigo de ejemplo gracias
Hola, puedes descargar el archivo desde aquí.