Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Editar archivos en php

PHP, HTML, CSS, JS, jQuery, etc.
Responder
Alvaro Achutegui
Observador/a
Mensajes: 7
Registrado: 01 Ene 2018, 21:46
Género:

Editar archivos en php

#1

Mensaje por Alvaro Achutegui »

Hola:
Mi nombre es Alvaro, evidentemente no se crear archivos en php por eso copio codigo que hay en Internet,
pero este codigo me da problemas ya que está establecido creo para un directorio activo no para rutas relativas ni absolutas por eso me casca!!! :)
Estoy seguro que podreis ayudarme

Codigo:
______________________________________________________________________________________________________

Código: Seleccionar todo

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Archivo  html Inicio</title>
<style>
body{background-image: url(fondo.jpg);}
#enlaces a{text-decoration: none;color: black;display: block;text-align: center;}
#enlaces a:hover{background-color: blue;}
#enlaces{border: 4px solid black;width: 200px;text-align: center;}
form {margin: 0 auto;}
</style>
</head>
<body>
<!--Esta es otra seccion-->
<?php
$fn = "/share/CACHEDEV1_DATA/Web/index.html";

if (isset($_POST['content']))
{
    $content = stripslashes($_POST['content']);
    $fp = fopen($fn,"w") or die ("Error al abrir el archivo");
    fputs($fp,$content);
    fclose($fp) or die ("Error al cerrar el archivo");
}
?>
<div style="width:950px; text-align: center; margin: auto; background-color: #F0F0F0; border: 1px solid #B3B9D5; border-color: #B3B9D5; padding: 15px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #717CB0; font-size: 14px;">
<h1>Archivo  html Inicio</h1>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
<textarea rows="25" cols="110" name="content"><?php readfile($fn); ?>
_____________________________________________________________________________________________________

Me desaparece el botón de guardar cambios :( y aparece el mensaje de <<error al abrir el archivo>>
He revisado que los archivos tengan permiso +x es decir que se puedan editar, si me falla eso lo volveré a revisar :P
Os adjunto unas muestras:
ok1.PNG
error.PNG
Alvaro
Última edición por ThE KuKa el 02 Ene 2018, 22:19, editado 1 vez en total.
Razón: BBCode añadido

Avatar de Usuario
AlfredoRamos
Ex Staff
Mensajes: 1235
Registrado: 14 Ene 2017, 22:18
Género:

Re: Editar archivos en php

#2

Mensaje por AlfredoRamos »

Alvaro Achutegui escribió: [...] está establecido creo para un directorio activo no para rutas relativas ni absolutas por eso me casca [...]
Un directorio activo (si es que nos referimos a lo mismo) es una ruta absoluta... realmente no sé a qué te refieres con eso.
Alvaro Achutegui escribió: [...]
Me desaparece el botón de guardar cambios :( y aparece el mensaje de <<error al abrir el archivo>>
He revisado que los archivos tengan permiso +x es decir que se puedan editar, si me falla eso lo volveré a revisar :P
Os adjunto unas muestras:
Alvaro
Cuál botón? tu código esta incompleto.

El permiso chmod x es para ejecutar (execute) no para "editar", para ello necesita permisos de escritura w (write) pero para poder leer el archivo, el directorio que lo contiene necesita tener permisos de lectura, escritura y ejecución (rwx).

Los permisos por default son 644 en octal (o rw-r--r--) para ficheros, y 755 (o rwx-r-xr-x) para directorios.

Algunas de mis extensiones:
Imagen Imgur | :chart_with_upwards_trend: SEO Metadata | Imagen Markdown | :see_no_evil: Simple Spoiler BBCode | :shield: hCaptcha
:trophy: Checa todas mi extensiones aprobadas :trophy:

:penguin: Usuario de Arch Linux :penguin:


Alvaro Achutegui
Observador/a
Mensajes: 7
Registrado: 01 Ene 2018, 21:46
Género:

Re: Editar archivos en php

#3

Mensaje por Alvaro Achutegui »

Tienes razón colega mi codigo está incompleto pero por eso intento pedir ayuda por los foros para disponer del codigo correcto ya que no se programar y el codigo que copie no lo entiendo no puedo mejorarlo. :D
Creo que el codigo que copie esta haciendo referencia a un archivo que esta en el mismo directorio que el archivo .php pero en mi caso no.
El archivo php esta en un lugar y el archivo esta en otro y creo que por eso me casca :| .
Me refiero al botón que esta debajo del textarea que pone "guardar cambios" en la imagen que pone ok1.jpg :P
Quizás me este complicando y sea mas fácil javascript que php!!! :wink:
Tienes razón le he establecido al archivo que quiero modificar 777 porque me da cosa que no pueda escribir en el , aunque 644 también seria valido???? :joy:
Gracias por responderme :clap: seguiré pidiendo ayuda en otros foros
Un saludo
Alvaro

Avatar de Usuario
AlfredoRamos
Ex Staff
Mensajes: 1235
Registrado: 14 Ene 2017, 22:18
Género:

Re: Editar archivos en php

#4

Mensaje por AlfredoRamos »

Alvaro Achutegui escribió:Tienes razón colega mi codigo está incompleto pero por eso intento pedir ayuda por los foros para disponer del codigo correcto ya que no se programar y el codigo que copie no lo entiendo no puedo mejorarlo. :D
Entonces, cópialo completo del sitio en donde lo conseguiste...? Cuál es la finalidad del código? es una tarea? un trabajo?
Alvaro Achutegui escribió: Creo que el codigo que copie esta haciendo referencia a un archivo que esta en el mismo directorio que el archivo .php pero en mi caso no.
El archivo php esta en un lugar y el archivo esta en otro y creo que por eso me casca :| .

Código: Seleccionar todo

$fn = "/share/CACHEDEV1_DATA/Web/index.html";

if (isset($_POST['content']))
{
    ...
    $fp = fopen($fn,"w") or die ("Error al abrir el archivo");
    ...
}
A menos que estes corriendo Apache (o similar) en Windows, las rutas que comiencen con diagonal ("/") son rutas absolutas, entonces no importa desde donde estes ejecutando el script PHP.

/share no es una ruta estándar en sistemas Unix, sí que lo es /{prefijo}/share/ como /usr/share/, pero al estar en la raíz lo normal es que no puedas editar nada dentro de ese directorio (lo que ya es un poco inseguro), si puedes hacerlo esque la seguridad del servidor es nula.
Alvaro Achutegui escribió: Quizás me este complicando y sea mas fácil javascript que php!!! :wink:
A menos que uses NodeJS u otro intérprete JavaScript del lado del servidor, por de seguridad, por default no es posible escribir archivos en el equipo.
Alvaro Achutegui escribió: Tienes razón le he establecido al archivo que quiero modificar 777 porque me da cosa que no pueda escribir en el , aunque 644 también seria valido???? :joy:
Por lo regular PHP es ejecutado con un usuario con privilegios reducidos, además de que esta resringido a no salir de los directorios establecidos (open_basedir).

Asegurate de que el fichero se encuentre dentro de algún directorio público para Apache, porque en cualquier otro proveedor de hosting tu cuenta esta enjaulada.

Algunas de mis extensiones:
Imagen Imgur | :chart_with_upwards_trend: SEO Metadata | Imagen Markdown | :see_no_evil: Simple Spoiler BBCode | :shield: hCaptcha
:trophy: Checa todas mi extensiones aprobadas :trophy:

:penguin: Usuario de Arch Linux :penguin:


Alvaro Achutegui
Observador/a
Mensajes: 7
Registrado: 01 Ene 2018, 21:46
Género:

Re: Editar archivos en php

#5

Mensaje por Alvaro Achutegui »

Esta copiado completo del sitio, no me olvide de ninguna coma :-P .
No es ni tarea ni un trabajo es una forma de modificar archivos .conf y html y css de forma sencilla mediante un textarea.
:)
Si este archivo .php esta dentro de apache pero el archivo que quiero modificar esta en los directorios del sistema!!! :(
Gracias por ayudarme has sido muy amable , actualizaré el codigo y utilizaré javascript haber que tal me va. :rofl:
Un saludo

Alvaro Achutegui
Observador/a
Mensajes: 7
Registrado: 01 Ene 2018, 21:46
Género:

Re: Editar archivos en php

#6

Mensaje por Alvaro Achutegui »

El código que subí es posible que estuviera incompleto pero el código que voy a colgar ahora solo funciona si el archivo texto.txt y editar.php están en la misma ubicación. :P
________________________________________________________________________________________________
<?php

$strArchivo = "nombre_archivo.txt";
$strPassword = "contraseña_elegida";

$postTexto = $_POST["Texto"];
$postPassword = $_POST["Password"];
$intAction = $_POST['act'];

if ($intAction == 1 and $postPassword==$strPassword) {

if($fp = fopen($strArchivo,"w+")){
fwrite($fp,stripslashes($postTexto));
fclose($fp);
} else {
die("Error de escritura");
}

if($fp = fopen($strArchivo,"r")) {
if (filesize ($strArchivo) > 0) {
$strContenido = fread ($fp, filesize ($strArchivo));
}
fclose($fp);
} else {
die("Error de lectura");
}

echo "<b><font color=\"lime\">Archivo modificado</font></b> <br><br>";

} elseif (!empty($intAction)) {
echo "<b><font color=\"red\">Contraseña incorrecta</font></b> <br><br>";
}

echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">
<input type=\"hidden\" name=\"act\" value=\"1\">
Password:<br> <input type=\"password\" name=\"Password\" value=\"$postPassword\"><br><br>
Texto: <br><textarea name=\"Texto\">$strContenido</textarea><br>
<a href=\"javascript:document.forms[0].submit()\">Guardar</a>
<!-- <input type=\"Submit\" value=\"Guardar\"> -->
</form>";

?>
______________________________________________________________________________________________________

Que hay que cambiar para que pueda estar el archivo .txt en distinta ubicacion al php¿¿??? :D :D

Responder

Volver a “🆘 Recursos Webmaster”