elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Editar y guardar ficheros [Solucionado]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Editar y guardar ficheros [Solucionado]  (Leído 5,435 veces)
i-Charlie

Desconectado Desconectado

Mensajes: 11


Ver Perfil WWW
Editar y guardar ficheros [Solucionado]
« en: 6 Octubre 2009, 17:52 pm »

Hola

Mi idea es hacer un pequeño script en php que me permite elegir entre 3 ficheros del server, leerlos y posteriormente volver a guardarlos.

Fichero html para elegir el fichero a editar:
Código:
<!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=UTF-8" />
<title>Prueba para mi script</title>
</head>

<body>

<center>
<form id="form2" name="form2" method="post" action="index.php">
  <label>
  <select name="opcion" id="opcion">
    <option value="menu1">fich1</option>
    <option value="menu2">fich2</option>
    <option value="menu3">fich3</option>
  </select>
  </label>
<br />
  <input name="enviar" type="submit" value="enviar" />
</form>
</center>

</body>
</html>

Fichero2, recibe la opción anterior con POST y dependiendo del valor elegido carga un fichero u otro y posteriormente (con el submit) llamada a index3.php que es quien se encarga de guardarlo:

Código:
<!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=UTF-8" />
<title>Prueba para mi script</title>
</head>

<body>

<form name="area" method="post" action="index3.php">
<textarea name="area1" id="area1" cols="60" rows="20">
<?  
$variable = $_POST[opcion];

if ($variable == "menu1")
$fichero = "archivo.txt";

if ($variable == "menu2")
$fichero = "archivo2.txt";

if ($variable == "menu3")
$fichero = "archivo3.txt";

$fp = fopen($fichero,"r");
fpassthru($fp);
fclose($fp);

?>

  </textarea><br />
      <textarea name="menux" id="menux" cols="10" rows="1">
<?  
echo $variable;
?>
      </textarea>
<input name="enviar" type="submit" value="enviar" />
</form>
</body>
</html>

Aqui en el index3.php he probado de todo, pero no sale. Lo último fue cargar el valor del menú a editar en otro textarea (que luego ya lo ocultaría con css) pero esto es muy chapuza. He intentado comparar con condiciones if y strcmp ($var1, $var2) pero tampoco tiraba.

Código:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Prueba para mi script</title>
</head>

<body>

<?
$menu2 = $_POST["menux"];
echo $menu2;

switch($menu2){
case ("menu1"):
$fp = fopen("archivo.txt","w+");
fwrite($fp,$_POST["area1"]);
fclose($fp);
break;
case ("menu2"):
$fp = fopen("archivo2.txt","w+");
fwrite($fp,$_POST["area1"]);
fclose($fp);
break;
case ("menu3"):
$fp = fopen("archivo3.txt","w+");
fwrite($fp,$_POST["area1"]);
fclose($fp);
break;
default:
echo "tus padres son hermanos, esto dá error";
break;
}

?>

</body>
</html>

Alguna ayuda? Sugerencia? Otra forma de plantear mi problema?

Gracias de antemano
Un saludo! ;-)


« Última modificación: 8 Octubre 2009, 19:46 pm por дٳŦ٭ » En línea

ExDiseñador de www.Estudio-Digital.net
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Editar y guardar ficheros
« Respuesta #1 en: 6 Octubre 2009, 19:21 pm »

Tus archivos tienen permisos?


En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Editar y guardar ficheros
« Respuesta #2 en: 6 Octubre 2009, 20:12 pm »

Citar
<form id="form2" name="form2" method="post" action="index.php">
Te estás enviando la petición al mismo archivo 1 y se supone que lo deberías enviar hacia el archivo 2 no?

además...
Código
  1. .....
  2. <textarea name="area1" id="area1" cols="60" rows="20">
  3. <?
  4. $variable = $_POST
  5. ......
  6. [opcion];

Decir <? no es lo mismo a decir <?php ya que lo que haces tu es una forma de abreviar el tag de apertura y eso es opcional en una configuración de php desde php.ini y no todos lo soportan por lo tanto ese script puede que se ejecute en algunos servidores webs como puede que no se ejecute y no verás su código... vee el código fuente desde tu explorador del archivo y fijate si te aparece el código fuente del php (si usas firefox de ve de color rosa), si no te aparece entonces todo bién pero te recomiendo que te acostumbres a usar <?php en ves de <?

saludos.
« Última modificación: 6 Octubre 2009, 20:15 pm por WHK » En línea

i-Charlie

Desconectado Desconectado

Mensajes: 11


Ver Perfil WWW
Re: Editar y guardar ficheros
« Respuesta #3 en: 6 Octubre 2009, 21:36 pm »

Gracias por vuestas respuestas.

Tus archivos tienen permisos?
Si los tienen.

Citar
<form id="form2" name="form2" method="post" action="index.php">
Te estás enviando la petición al mismo archivo 1 y se supone que lo deberías enviar hacia el archivo 2 no?
Es que el segundo fichero se llama index.php

Mi servidor lee la etiqueta jeje

El caso es que cuando lo hago con un solo menú y en el tercer y último archivo solamente pongo:
Código:
$fp = fopen("archivo.txt","w+");
fwrite($fp,$_POST["area1"]);
fclose($fp);
Me funciona correctamente. Por tanto mi problema está en que el segundo fichero le tiene que pasar al index3.php que menú está editando y dependiendo de eso index3.php deberá sobreescribir en un fichero o en otro.


Gracias!
En línea

ExDiseñador de www.Estudio-Digital.net
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Editar y guardar ficheros
« Respuesta #4 en: 7 Octubre 2009, 01:38 am »

porque no haces un solo php donde le des las tres rutas y abra tres textareas? despues le das en guardar y guarde los tres archivos
En línea

i-Charlie

Desconectado Desconectado

Mensajes: 11


Ver Perfil WWW
Re: Editar y guardar ficheros
« Respuesta #5 en: 7 Octubre 2009, 07:17 am »

Si es una posibilidad, de hecho esa me funciona sin problemas pero me resulta una solución poco estética porque ¿qué pasaría si tuviera 10 ficheros? pongo 10 textarea...

En línea

ExDiseñador de www.Estudio-Digital.net
i-Charlie

Desconectado Desconectado

Mensajes: 11


Ver Perfil WWW
Re: Editar y guardar ficheros
« Respuesta #6 en: 7 Octubre 2009, 23:51 pm »

index.php: se elige el fichero a editar
index2.php: abre el fichero y llama a index3.php para guardarlo
index3.php: compara los valores del input y guarda el fichero correspondiente

SOLUCIÓN:

index.php:
Código
  1. <form name="menu_fich" method="post" action="index2.php">
  2.  <select name="opcion">
  3.    <option value="menu1">fichero1</option>
  4.    <option value="menu2">fichero2</option>
  5.    <option value="menu3">fichero3</option>
  6.  </select>
  7.  <input name="enviar" type="submit" value="enviar" />
  8. </form>

index2.php:
Código
  1. <form name="area_editar" method="post" action="index3.php">
  2. <textarea name="area1" id="area1" cols="60" rows="20">
  3.  
  4. <?PHP  
  5. $variable = $_POST[opcion];
  6. $bba = "";
  7.  
  8. if ($variable == "menu1"){
  9. $fichero = "archivo.txt";
  10. $bba = "menuuno";
  11. }
  12. if ($variable == "menu2"){
  13. $fichero = "archivo2.txt";
  14. $bba = "menudos";
  15. }
  16. if ($variable == "menu3"){
  17. $fichero = "archivo3.txt";
  18. }
  19.  
  20. $fp = fopen($fichero,"r");
  21. fpassthru($fp);
  22. fclose($fp);
  23. ?>
  24.  </textarea>
  25. <input type="hidden" name="menux" maxlength="6" value="<?php echo $bba; ?>" />
  26.  <input name="enviar" type="submit" value="enviar" />
  27. </form>

index3.php:
Código
  1. <?PHP
  2. $menu22 = $_POST[menux];
  3. $menu = (string) $menu22;
  4.  
  5. if (strcmp($menu, 'menuuno') == 0){
  6. $fp = fopen("archivo.txt","w+");
  7. fwrite($fp,$_POST["area1"]);
  8. fclose($fp);
  9. }elseif (strcmp($menu, 'menudos') == 0){
  10. $fp = fopen("archivo2.txt","w+");
  11. fwrite($fp,$_POST["area1"]);
  12. fclose($fp);
  13. }else{
  14. $fp = fopen("archivo3.txt","w+");
  15. fwrite($fp,$_POST["area1"]);
  16. fclose($fp);
  17. }
  18. ?>

Es muy fácil añadir o quitarle ficheros y bastante limpio.

Gracias por vuestros comentarios/ayudas

Un saludo!
« Última modificación: 7 Octubre 2009, 23:53 pm por i-Charlie » En línea

ExDiseñador de www.Estudio-Digital.net
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Editar y guardar ficheros
« Respuesta #7 en: 8 Octubre 2009, 19:45 pm »

Gracias por compartir la solución. Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO] Ficheros binarios
Programación C/C++
KikoSalinas 1 1,992 Último mensaje 1 Junio 2013, 18:16 pm
por KikoSalinas
Guardar variables en ficheros C
Programación C/C++
nyper01 5 3,229 Último mensaje 16 Diciembre 2013, 20:45 pm
por xiruko
guardar estructuras en ficheros
Programación C/C++
pedroedlp 6 3,802 Último mensaje 23 Abril 2014, 19:24 pm
por pedroedlp
Editar ficheros con c++
Programación C/C++
jona_x17 0 1,504 Último mensaje 1 Junio 2015, 19:57 pm
por jona_x17
Como guardar un índice de ficheros
.NET (C#, VB.NET, ASP)
Bob_Ale 3 2,865 Último mensaje 14 Octubre 2015, 08:31 am
por Bob_Ale
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines