Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: AWES0MN en 31 Julio 2010, 15:30 PM

Título: Problema Php,duda
Publicado por: AWES0MN en 31 Julio 2010, 15:30 PM
Tengo un problema con un fopen,el caso es que quiero editar los archivos fácilmente,en éste caso es de configuración...

os dejo como se ve sin tocar nada,sin editarlo...

ANTES:
http://s3.subirimagenes.com:81/imagen/48895422ss.png

DESPUES:
http://s3.subirimagenes.com:81/imagen/488954323ss.png

CODIGO:

<?php
if (isset($_POST['arch'])) {
$nombre_archivo = '../settings.php';
$final=$_POST['contenido'];

// Inserto los datos :P
    if (!$gestor = fopen($nombre_archivo, 'r+')) {
         echo "<span class='Estilo1'>No se puede abrir el archivo ($nombre_archivo)</span>";
         exit;
    }

    if (fwrite($gestor, $final) === FALSE) {
        echo "<span class='Estilo1'>No se puede escribir al archivo ($nombre_archivo)</span>";
        exit;
    }

    echo "Insertado";

    fclose($gestor);
}
?>

form:

<form id="form1" method="post" action="">
  <label>Contenido:<br />
  <textarea name="contenido" rows="25"  cols="100"><?php 
readfile ('../settings.php'); 
?> </textarea>
  </label>
  <br />
  <input name="arch" type="hidden" id="arch" value="si" />
  <br />
  <label>
  <input type="submit" name="Submit" value="Guardar" />
  </label>
</form>

ERRORES:
*Que antes de editarlo,todo bien lo tengo a "R+" pero después,raramente donde dice "=" o algo así,dice "=\" \ vamos,muy raro.Esa es mi duda,repito: ESTÁ A R+. ;)

Gracias por sus ayudas.  ;D
Título: Re: Problema Php,duda
Publicado por: Zazú en 31 Julio 2010, 23:07 PM
No entiendo cual es tu problema, ¿que es exactamente lo que necesitas?
En ves de "r+" pone "a" ;)

suerte  :silbar:
Título: Re: Problema Php,duda
Publicado por: AWES0MN en 1 Agosto 2010, 00:03 AM
Cita de: Zazú en 31 Julio 2010, 23:07 PM
No entiendo cual es tu problema, ¿que es exactamente lo que necesitas?
En ves de "r+" pone "a" ;)

suerte  :silbar:
No es por los r+ ni nada,lo tengo a r+,sí.

Pero el problema es que,lo edita bien el archivo pero al editarlo se generan unos =\ (en la imagen,verás qué digo,mira ambas)

Gracias  ;-)
Título: Re: Problema Php,duda
Publicado por: ~ Yoya ~ en 1 Agosto 2010, 01:47 AM
No es problema del source, al parecer tienes la directiva magic_quotes_gpc On del php.ini que escapa las comillas simples y dobles que se envían via GET/POST/COOKIE....

Tienes que desactivarla, luego reinicia apache y deberá funcionar...

yoya@yoya-desktop ~ $ cat /etc/php5/apache2/php.ini|grep magic_quotes_gpc
; magic_quotes_gpc
magic_quotes_gpc = Off
Título: Re: Problema Php,duda
Publicado por: AWES0MN en 1 Agosto 2010, 02:52 AM
Gracias ~ Yoya ~ ,me pareció muy raro.

Estoy en un compartido,lo reportaré,muchísimas gracias.  ;-)
Título: Re: Problema Php,duda
Publicado por: ~ Yoya ~ en 1 Agosto 2010, 03:13 AM
No es necesario reportarlo, puedes usar la función stripslashes() (http://php-es.com/function.stripslashes.html)

Ejemplo:
Código (php) [Seleccionar]
<?php

$a 
'assas\"ssa\"asaas';
echo 
stripslashes($a);
?>



Salida:
assas"ssa"asaas
Título: Re: Problema Php,duda
Publicado por: AWES0MN en 1 Agosto 2010, 04:59 AM
wow,gracias ;)

Ni idea tenía de eso,algo que me apunto.  ;D
Título: Re: Problema Php,duda
Publicado por: AWES0MN en 1 Agosto 2010, 05:13 AM
Por cierto ya que lo tengo solucionado dejo el código... y gracias de nuevo...! va perfecto!  ;-)


<?php
if (isset($_POST['arch'])) {
$nombre_archivo = 'AQUIELARCHIVO.PHP';
$final=$_POST['contenido'];

// Inserto los datos :P
    if (!$gestor = fopen($nombre_archivo, 'r+')) {
         echo "<span class='Estilo1'>No se puede abrir el archivo ($nombre_archivo)</span>";
         exit;
    }

    if (fwrite($gestor, stripslashes($final)) === FALSE) {
        echo "<span class='Estilo1'>No se puede escribir al archivo ($nombre_archivo)</span>";
        exit;
    }

    echo "Insertado";

    fclose($gestor);
}
?>

<form id="form1" method="post" action="">
  <label>Contenido:<br />
  <textarea name="contenido" rows="25"  cols="100"><?php 
readfile ('../settings.php'); 
?> </textarea>
  </label>
  <br />
  <input name="arch" type="hidden" id="arch" value="si" />
  <br />
  <label>
  <input type="submit" name="Submit" value="Guardar" />
  </label>
</form>
Título: Re: Problema Php,duda
Publicado por: Zazú en 1 Agosto 2010, 08:01 AM
Si hubiera sabido lo que necesitabas ya te lo decia :P

Cualquier otra cosa postea o mandame un mensaje privado que intento ayudarte, suerte  ;)