Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/10/2008, 08:01
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
Pequeño error en script para editar archivos de texto

Hola... estaba preparando un script para editar archivos vie url, me funciona bien, pero tiene un pequeño fallo y es que si el archivo pedido no existe me manda un error y ya mi cabecita no me dio para mas y tambien quiero ver como hacer para editar los archivos via URL, pues ahora solo los edita en el server local. osea, que funciona con rutas del tipo /carpeta/file.html pero no con http://localhost/carpeta/file.html

El error que da es:
Warning: file(eyj) [function.file]: failed to open stream: No such file or directory in D:\WAMP-SERVER\wamp\www\foo\file-edit.php on line 63

Warning: Invalid argument supplied for foreach() in D:\WAMP-SERVER\wamp\www\foo\file-edit.php on line 63

aqui el codigo:
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.             $msg = "La ruta del archivo es <b>$archivo</b>";
  18.         }
  19.     } else {
  20.         $msg = "Debe introducir la diraccion del archivo a editar";
  21.     }
  22. }
  23.  
  24. // editamos el archivo abierto
  25. if(isset($_POST['editar']) && $_POST['editar'] == 'Editar archivo'){
  26.     $archivo = $_SESSION['archivo'];
  27.     $archivo_editado = $_POST['archivo_editado'];
  28.     if(is_writable($archivo)){
  29.         if(!$gestor = fopen($archivo, 'w')){
  30.             $msg = "No se puede abrir el archivo $archivo";
  31.             exit;
  32.         }
  33.         // editamos el archivo
  34.         if(fwrite($gestor, html_entity_decode($archivo_editado)) === false){
  35.             $msg = "No se puede escribir en el archivo $archivo";
  36.         }
  37.         // Exito...!
  38.         $msg = "El archivo $archivo se edito con exito";
  39.         fclose($gestor);
  40.         //unset($_SESSION['archivo']);
  41.     }else{
  42.         $msg = "No se peude escribir en el archivo $archivo_editado";
  43.     }
  44. }
  45.  
  46. // guardamos el archivo
  47. // y destruimos todas las variables
  48. if(isset($_POST['guardar']) && $_POST['guardar'] == 'Guardar'){
  49.     unset($archivo);
  50.     unset($_SESSION['archivo']);
  51. }
  52. ?>
  53.  
  54. <form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
  55.     <p>URL: <input type="text" name="archivo" value="" size="50" />
  56.     <input type="submit" name="abrir" value="Abrir archivo" /></p>
  57. <?php echo "<p>".$msg."</p>"; ?>
  58.     <textarea name="archivo_editado" rows="25" cols="100">
  59. <?php
  60. // mostramos el contenido
  61. // del archivo abierto
  62. if($archivo){    
  63.     foreach (file($archivo) as $lineas){
  64.         echo htmlentities($lineas);
  65.     }
  66. }
  67. ?>
  68.     </textarea>
  69.     <p>
  70.     <input type="submit" name="editar" value="Editar archivo" />
  71.     <input type="submit" name="guardar" value="Guardar" />
  72.     <input type="reset" value="Restablecer" />
  73.     </p>
  74. </form>

quisiera me ayudaran a descubrir por donde estan los fallos aqui, que le sobre y que le falta

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