Foros del Web » Programando para Internet » PHP »

Editar pagina web desde la propia pagina

Estas en el tema de Editar pagina web desde la propia pagina en el foro de PHP en Foros del Web. Buenas, estoy creando una página que muestra automáticamente los archivos de la página web para así poder editarlas con un script en php. El código ...
  #1 (permalink)  
Antiguo 17/03/2008, 09:55
 
Fecha de Ingreso: julio-2007
Mensajes: 62
Antigüedad: 16 años, 9 meses
Puntos: 0
Editar pagina web desde la propia pagina

Buenas, estoy creando una página que muestra automáticamente los archivos de la página web para así poder editarlas con un script en php.
El código con la función para editar el código es:

Código PHP:
 function write_file($filename$contents) {
 if (
$fp fopen($filename"w")) {
        
fwrite ($fpstripslashes($contents));
        
fclose($fp);
        return 
1; }
 else { return 
0; } }; 
este otro detecta si se pulsa el botón de enviar para modificar la página
Código PHP:
if ($submitButton == "Terminado") {
        
write_file("$page""$test"" ");
        echo 
"<a href=\"$page\">$page</a><br>     ";} 
Estos dos primeros codigos están antes de la etiqueta <html> mientras que este último código está en el body, y sirve para mostrar automáticamente los ficheros con un formulario para editarlos:
Código PHP:
/*la variable $write2 muestra el directorio actual, mientras que $files[$a] muestra el nombre del archivo*/
for($a 0$a count($files); $a++) {
 
$position strrpos($files[$a], ".");
 
$temp substr($files[$a] , $position+15);
    
$content "..$write2/$files[$a]"/*en la siguiente linea da error*/
    
$fp fopen($content'r' ) or die ('No se pudo abrir el archivo.');
    
$contents fread($fpfilesize($content)) or die('No se pudo leer el archivo.'); 
    
$contents htmlspecialchars($contents); 
    
fclose($fp);
    echo 
"<form action='main_total.php?page=$files[$a]' method='POST'>";
    echo 
"$files[$a]"." - <a href='javascript:()' onclick='mostrar(this,$a)'>Editar</a><br>";
    echo 
"<div style='display:none' id='ocultar_$a'><textarea name=test rows=20 cols=70 wrap=soft>";
    echo 
$contents;
    echo 
"</textarea><br>";
    echo 
"<INPUT type=\"submit\" NAME=\"submitButton\" VALUE=\"Terminado\"></div>";
    echo 
"</form>"

Estos codigos muestran y editan las páginas correctamente, sin embargo aparece este error en la linea 5 del último código.
Código PHP:
Warningfopen(../Apache2.2) [function.fopen]: failed to open streamPermission deniedNo se pudo abrir el archivo
¿Por qué da error en esa línea del código si el archivo se edita correctamente?
  #2 (permalink)  
Antiguo 17/03/2008, 16:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Editar pagina web desde la propia pagina

Necesitas permisos 777 sobre el archivo que quieras abrir y escribir.

Saludos.
  #3 (permalink)  
Antiguo 18/03/2008, 02:36
 
Fecha de Ingreso: julio-2007
Mensajes: 62
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Editar pagina web desde la propia pagina

¿Entonces tendria que incluir una variable que modificara los permisos antes de editarla no? ¿Cómo podría incluirla en el código?
  #4 (permalink)  
Antiguo 18/03/2008, 10:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Editar pagina web desde la propia pagina

Con chmod.

Saludos.
  #5 (permalink)  
Antiguo 18/03/2008, 10:31
 
Fecha de Ingreso: julio-2007
Mensajes: 62
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Editar pagina web desde la propia pagina

Ok, muchas gracias, vamos a ver si lo podemos incluir en el php
  #6 (permalink)  
Antiguo 18/03/2008, 11:49
 
Fecha de Ingreso: julio-2007
Mensajes: 62
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Editar pagina web desde la propia pagina

Nada, el error no es por permisos (al menos de momento), el problema es que después de editar archivos vuelve a la raíz del servidor (en este caso mi pc), y como no encuentra archivos editables (php, html, txt,etc.) me da un error.
¿como puedo hacer para que vuelva al directorio en el que estaba y así saltarme el error?
  #7 (permalink)  
Antiguo 18/03/2008, 12:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Editar pagina web desde la propia pagina

Usa header("Location: tu_archivo.php" );

Saludos.
  #8 (permalink)  
Antiguo 18/03/2008, 12:54
 
Fecha de Ingreso: julio-2007
Mensajes: 62
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Editar pagina web desde la propia pagina

Cita:
Iniciado por GatorV Ver Mensaje
Usa header("Location: tu_archivo.php" );

Saludos.
Nada, no funciona, el problema es que el archivo lista archivos y carpetas desde la raiz hasta que se acaban las carpetas, y despues de editar el código vuelve a la carpeta raíz.
¿no hay una forma de indicar al script que vuelva al directorio donde estaba el archivo que edité?
  #9 (permalink)  
Antiguo 18/03/2008, 12:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Editar pagina web desde la propia pagina

Puedes hacerlo guardando en una variable antes de enviar a editar tu formulario, que guarde el directorio actual y posteriormente redireccionar a ese directorio.

Saludos.
  #10 (permalink)  
Antiguo 18/03/2008, 12:58
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Re: Editar pagina web desde la propia pagina

yo trataria la pagina como un archivo.. y obviamente le agregaria 777 para leer escribir y eliminar.. salu2
  #11 (permalink)  
Antiguo 18/03/2008, 12:59
 
Fecha de Ingreso: julio-2007
Mensajes: 62
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Editar pagina web desde la propia pagina

La variable la tengo guardada, es ..$write2, ¿como pongo ahora que vuelva a ese directorio?
  #12 (permalink)  
Antiguo 18/03/2008, 13:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Editar pagina web desde la propia pagina

Pues dependiendo de tu código puedes enviar vía get:
Código PHP:
header"Location: pagina_que_lista_directorios.php?path=$write2" ); 
Saludos.
  #13 (permalink)  
Antiguo 18/03/2008, 13:20
 
Fecha de Ingreso: julio-2007
Mensajes: 62
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Editar pagina web desde la propia pagina

Ok muchas gracias ya lo arreglé
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 23:05.