Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/10/2008, 10:45
Avatar de rogertm
rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Respuesta: Pequeño error en script para editar archivos de texto

Resuelto... ademas le meti otro foreach cuando por fin se puede escribir y editar el archivo, y redefino $codigo, porque si no no me volvia a mostrar el contenido del archivo una vez editado y asi lo puedes ir editando cuantas veces quieras y guardarlo una vez terminado todo, al final quedo todo asi:

Código php:
Ver original
  1. <?php
  2. if(!isset($_SESSION)){
  3.     session_start();
  4. }
  5.  
  6. // comprobamos si el formulario
  7. // ha sido enviado correctamente
  8. if(isset($_POST['abrir']) && $_POST['abrir'] == 'Abrir archivo'){
  9.     if (!empty($_POST['archivo'])){
  10.         $archivo = $_POST['archivo'];
  11.         $_SESSION['archivo'] = $archivo;
  12.         // comprobamos que existe el archivo
  13.         if (!file_exists($archivo) && !is_file($archivo)){
  14.             $msg = "El archivo no existe";
  15.         } else {
  16.             //$archivo_abierto = $archivo;
  17.             if($archivo){
  18.                 foreach (file($archivo) as $lineas){
  19.                     $codigo .= htmlentities($lineas);
  20.                 }
  21.             }
  22.             $msg = "La ruta del archivo es <b>$archivo</b>";
  23.         }
  24.     } else {
  25.         $msg = "Debe introducir la diraccion del archivo a editar";
  26.     }
  27. }
  28.  
  29. // editamos el archivo abierto
  30. if(isset($_POST['editar']) && $_POST['editar'] == 'Editar archivo'){
  31.     $archivo = $_SESSION['archivo'];
  32.     $archivo_editado = $_POST['archivo_editado'];
  33.     if(is_writable($archivo)){
  34.         if(!$gestor = fopen($archivo, 'w')){
  35.             $msg = "No se puede abrir el archivo $archivo";
  36.             exit;
  37.         }
  38.         // editamos el archivo
  39.         if(fwrite($gestor, html_entity_decode($archivo_editado)) === false){
  40.             $msg = "No se puede escribir en el archivo $archivo";
  41.         }
  42.         // Exito...!
  43.         $msg = "El archivo $archivo se edito con exito";
  44.         if($archivo){
  45.             foreach (file($archivo) as $lineas){
  46.                 $codigo .= htmlentities($lineas);
  47.             }
  48.         }
  49.         fclose($gestor);
  50.     }else{
  51.         $msg = "No se peude escribir en el archivo $archivo_editado";
  52.     }
  53. }
  54.  
  55. // guardamos el archivo
  56. // y destruimos todas las variables
  57. if(isset($_POST['guardar']) && $_POST['guardar'] == 'Guardar'){
  58.     unset($archivo);
  59.     unset($_SESSION['archivo']);
  60. }
  61. ?>
  62.  
  63. <form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
  64.     <p>URL: <input type="text" name="archivo" value="" size="50" />
  65.     <input type="submit" name="abrir" value="Abrir archivo" /></p>
  66. <?php echo "<p>".$msg."</p>"; ?>
  67.     <textarea name="archivo_editado" rows="25" cols="100">
  68. <?php
  69. // mostramos el codigo
  70. // o el texto del archivo a editar
  71. echo $codigo;
  72. ?>
  73.     </textarea>
  74.     <p>
  75.     <input type="submit" name="editar" value="Editar archivo" />
  76.     <input type="submit" name="guardar" value="Guardar" />
  77.     <input type="reset" value="Restablecer" />
  78.     </p>
  79. </form>

gracias milllll
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose