Foros del Web » Programando para Internet » PHP »

Para modificar un txt desde un formulario.

Estas en el tema de Para modificar un txt desde un formulario. en el foro de PHP en Foros del Web. Alguien de ustedes saben como puedo modificar un archivo de texto desde un formulario??? Osea que al cargar el formulario me aparesca en un textarea ...
  #1 (permalink)  
Antiguo 30/10/2004, 15:42
 
Fecha de Ingreso: mayo-2004
Mensajes: 51
Antigüedad: 13 años, 6 meses
Puntos: 0
Para modificar un txt desde un formulario.

Alguien de ustedes saben como puedo modificar un archivo de texto desde un formulario???

Osea que al cargar el formulario me aparesca en un textarea el contenido del datos.txt y alli pueda modificarlo y guardarlo con un boton GUARDAR, alguien sabe como????

Salu2
  #2 (permalink)  
Antiguo 30/10/2004, 15:52
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
<?php
//leer el archivo linea por linea
$contenido="";
$fp=fopen("ruta_archivo_txt/archivo.txt");
while(!feof($fp))
{
//lee 80 caracteres por linea o hasta fin de linea, lo que ocurra primero
$contenido.=fgets($fp,80);
}
fclose($fp);
?>
<textarea name="nose"><?php echo $contenido;?></textarea>
  #3 (permalink)  
Antiguo 30/10/2004, 16:21
 
Fecha de Ingreso: mayo-2004
Mensajes: 51
Antigüedad: 13 años, 6 meses
Puntos: 0
Pero amigo cuando yo ejecuto tu codigo me sale bastantes errores en cadena u nunca acaban, no se a que se deba.

Al parecer tu codigo lo que hace es solo rescatar el contenido del txt, esto esta bien, pero supongamos que lo modifique..... como lo guardaria????

Lo que deseo es rescatar el contenido, modificarlo y luego guardarlo......

Alguna idea????
  #4 (permalink)  
Antiguo 30/10/2004, 16:44
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
el codigo del primer mensaje lo colocas en el formulario, dentro de las etiquetas <form> y </form>, recuerda que la parte que define el textarea es html, no php.

me olvide de colocar el codigo para grabar los cambios.

en otra pagina, indicada en el atributo action del form colocas un codigo como este para grabar los cambios.

<?php
$fp=fopen("ruta_archivo_txt/archivo.txt","a");
fwrite($_POST['nose']);
fclose($fp);
?>

Nota:

le llame nose al textarea de ahi que al rescatar la variable enviada, por method="post" en este caso, use $_POST['nose']

disculpa si no soy muy claro, pero es que doy por supuesto varias cosas.
muestrame los mensajes de error, para ayudarte mas.
  #5 (permalink)  
Antiguo 30/10/2004, 17:36
 
Fecha de Ingreso: mayo-2004
Mensajes: 51
Antigüedad: 13 años, 6 meses
Puntos: 0
A ver amigo, lo que pude entender y ensamblar todo el codigo segun lo que me dices me ha quedado de la siguiente manera:


El archivo llamado modificar.php

------------------------

<html>
<body>
<form method="POST" action="grabar.php">
<?php
//leer el archivo linea por linea
$contenido="";
$fp=fopen("dato.txt");
while(!feof($fp))
{
//lee 80 caracteres por linea o hasta fin de linea, lo que ocurra primero
$contenido.=fgets($fp,80);
}
fclose($fp);
?>
<p><textarea rows="2" cols="20" name="nose" ><?php echo $contenido;?></textarea><input type="submit" value="Enviar" name="envia"></p>
</form>
</body>
</html>
------------------------------




El archivo grabar.php :

----------------------------

<?php
$fp=fopen("dato.txt","a");
fwrite($_POST['nose']);
fclose($fp);
?>
-------------------------




y el txt que se llama dato.txt (CHMOD 777 verdad?)

---------------------

cualquiera

----------------


Segun lo explicado necesitaria yo estos tres archivos con sus respectivos codigos, pero lo he probado y no me funciona y me salen errores consecutivos, diciendome por ej:

Warning: fopen() expects at least 2 parameters, 1 given in xxxxxxxxxxxxxxxxxxx

Warning: feof(): supplied argument is not a valid stream resource in xxxxxxxxxxxxxxxxxx

Warning: fgets(): supplied argument is not a valid stream resource in xxxxxxxxxxxxxxxxxx

las "x" son solo direcciones.

Se supone que al abrir modificar.php apareceria en el textarea la palabra "cualquiera" y pulsando el boton enviar se accionaria el grabar.php y grabaria los cambios, verdad??

A ver amigo como podria ser los codigos de los archivos que se necesitarian, es todo tuyo .-)

hasta luego
  #6 (permalink)  
Antiguo 30/10/2004, 17:51
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
cambia esta linea de codigo en modificar.php:
$fp=fopen("dato.txt");

por:

$fp=fopen("dato.txt","r");

ma faltaba el parametro que indica como se accede al archivo, en este caso: r de lectura.

con respecto a chmod, creo que 755 basta.
  #7 (permalink)  
Antiguo 30/10/2004, 18:16
 
Fecha de Ingreso: mayo-2004
Mensajes: 51
Antigüedad: 13 años, 6 meses
Puntos: 0
Amigo ahora esta todo solucionado con el archivo modificar.php , pero a la hora de grabar en el archivo grabar sale un error:

Warning: Wrong parameter count for fwrite() in xxxxxxxxxxxxxxxx


esta en la linea 3 que pertenece a:

fwrite($_POST['nose']);

Creo que a este codigo le falta algo, que puede ser???

hasta luego
  #8 (permalink)  
Antiguo 30/10/2004, 18:21
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
si falta algo, es asi:

fwrite($fp,$_POST['nose']);

se mne habia olvidado indicar el handler del archivo.
  #9 (permalink)  
Antiguo 30/10/2004, 19:07
 
Fecha de Ingreso: mayo-2004
Mensajes: 51
Antigüedad: 13 años, 6 meses
Puntos: 0
Esta bien tu correccion lo he probado y de grabar si graba, pero sucede que no modifica, solo añade mas datos al txt, osea:

al cargar la pagina modificar.php sale:
----------
cualquiera
-----------

entonces procedo a moficar asi:
----------
cualquier cosa
------------

lo grabo y retrocedo a la pagina modificar.php y le doy en actualizar y sale asi:
--------------
cualquieracualquiera cosa
---------------

y si lo grabo nuevamente sale asi:
------------------
cualquieracualquiera cosacualquieracualquiera cosa
--------------------

Te das cuenta del error???, no graba como se modifico el textarea sino aumenta al dato que ya estaba incluido.

puedes solucionarlo???
  #10 (permalink)  
Antiguo 30/10/2004, 19:52
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
<?php
$fp=fopen("dato.txt","w+");
fwrite($_POST['nose']);
fclose($fp);
?>

esto siempre crea el archivo de nuevo con la nueva informacion.
  #11 (permalink)  
Antiguo 31/10/2004, 13:45
 
Fecha de Ingreso: mayo-2004
Mensajes: 51
Antigüedad: 13 años, 6 meses
Puntos: 0
Hola amigo, de este ultimo codigo extraje la segunda linea y lo puse al anterior codigo, quedando asi:
---------------------
<?php
$fp=fopen("dato.txt","w+");
fwrite($fp,$_POST['nose']);
fclose($fp);
?>
-------------------------

ahora si resulto todo, MUCHISIMAS GRACIAS POR TU AYUDA AMIGO.

Nos vemos chau.
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 12:08.