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 ($fp, stripslashes($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+1, 5);
$content = "..$write2/$files[$a]"; /*en la siguiente linea da error*/
$fp = fopen($content, 'r' ) or die ('No se pudo abrir el archivo.');
$contents = fread($fp, filesize($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:
Warning: fopen(../Apache2.2) [function.fopen]: failed to open stream: Permission denied. No se pudo abrir el archivo.
¿Por qué da error en esa línea del código si el archivo se edita correctamente?