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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  porque no podre escribir en archivos con php?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: porque no podre escribir en archivos con php?  (Leído 5,253 veces)
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
porque no podre escribir en archivos con php?
« en: 26 Agosto 2012, 17:39 pm »

hola

alguien sabe porque razon no puedo escribir en archivos con php?, hice este codigo para ver si tenia algun error, pero al parecer todo va bien, y no me explico porque cuando reviso el archivo "path.txt", no contiene nada, lo estoy haciendo en un servidor local con apache y sistema linux

Código
  1. <?php
  2. $file = "path.txt";
  3. if(file_exists($file)){
  4. echo("el archivo existe");
  5. }
  6. if(@chmod($file, 0777) == 0){
  7. echo(" tiene permisos");
  8. }
  9. if((is_writable($file) && is_readable($file)) == 0){
  10. echo(" escritura y lectura");
  11. }
  12. if(($fp = fopen($file, "a+")) == 0){
  13. echo("archivo abierto");
  14. }
  15. $txt = "hola\n";
  16. if((fwrite($fp, $txt)) == 0){
  17. echo("archivo escrito");
  18. }
  19. fclose($fp);
  20.  
  21. ?>


En línea

.                                 
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: porque no podre escribir en archivos con php?
« Respuesta #1 en: 26 Agosto 2012, 18:20 pm »

Porque le pones ==0 a todo ? xD
Con tal de que pongas if(funcion()) esta te devolverá true, false o data...

Quita los ==0 y la @ de chmod. Ademas asegúrate de que php tiene configurado el mostrar errores.

Saludos


« Última modificación: 26 Agosto 2012, 18:25 pm por drvy | BSM » En línea

Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: porque no podre escribir en archivos con php?
« Respuesta #2 en: 26 Agosto 2012, 18:53 pm »

jeje viejas costumbres de programacion C  :P

pero lo que no entiendo es, porque no escribe, todos los echo que puse, me aparecen como true, pero al final no tiene nada el archivo path.txt

tambien ya le di permisos desde la consola de linux, que mas podria ser?
En línea

.                                 
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: porque no podre escribir en archivos con php?
« Respuesta #3 en: 26 Agosto 2012, 18:59 pm »

Te digo que es por los ==0  :xD

Veras, la funcion is_readable() por ejemplo.

Tu la llamas y la dices asi:

Código
  1. if(is_readable($file) ==0){
  2. echo 'lectura';
  3. }
  4. }

Guay, pero 0 no es true. 0 es false. PHP dirá, vale voy a mirar si puedo leer este archivo, lo intenta... no puede y te devuelve false. Y tu con el if le indicas que si la función is_readable devuelve 0 que muestre "lectura"... en realidad te esta devolviendo false no true.

Entonces la manera correcta de hacerlo es:
Código
  1. <?php
  2. $file = "path.txt";
  3. if(file_exists($file)){
  4. echo("el archivo existe <br />");
  5. }
  6. if(@chmod($file, 0777)){
  7. echo(" tiene permisos <br />");
  8. }
  9. if((is_writable($file) && is_readable($file))){
  10. echo(" escritura y lectura <br />");
  11. }
  12. if(($fp = fopen($file, "a+"))){
  13. echo("archivo abierto <br />");
  14. }
  15. $txt = "hola\n";
  16. if((fwrite($fp, $txt))){
  17. echo("archivo escrito <br />");
  18. }
  19. fclose($fp);
  20.  
  21. ?>

He añadido los <br /> para marcar una nueva linea...
Saludos
En línea

Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: porque no podre escribir en archivos con php?
« Respuesta #4 en: 26 Agosto 2012, 19:57 pm »

a ok gracias por la explicacion

pues ya quite los "==0" y el "@"

busque en php.ini y esta activado display_errors

pero sigue sin escribir nada en el archivo path.txt y no me muestra errores  :huh:
En línea

.                                 
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: porque no podre escribir en archivos con php?
« Respuesta #5 en: 26 Agosto 2012, 20:01 pm »

ya logre que me muestre los mensajes... tenia que reiniciar httpd

y me muestra esto

el archivo existe

Warning: chmod(): Permission denied in /var/www/html/phishing/phi.php on line 9

Warning: fopen(pass.txt): failed to open stream: Permission denied in /var/www/html/phishing/phi.php on line 15

Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/html/phishing/phi.php on line 19

Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/html/phishing/phi.php on line 22

ya le di permisos a toda la carpeta www pero ni asi funciona, que puedo hacer?
En línea

.                                 
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: porque no podre escribir en archivos con php?
« Respuesta #6 en: 26 Agosto 2012, 22:18 pm »

Como has dado permisos a la carpeta ?

La manera que debería funcionarte es desde un terminal, sudo chmod o+w Nombre_carpeta.

También esta el hecho de poner a PHP (no apache.) y a tu usuario en un grupo con los permisos necesarios 0755.


Saludos
En línea

Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: porque no podre escribir en archivos con php?
« Respuesta #7 en: 27 Agosto 2012, 04:28 am »


le puse permisos a toda la carpeta www desde root

#chmod -R 777 www

y al analizar las propiedades de la carpeta tengo en todo, escritura y lectura, tambien verifique las propiedades de los archivos y tambien tienen lectura y escritura, root, usuario y grupo

En línea

.                                 
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: porque no podre escribir en archivos con php?
« Respuesta #8 en: 28 Agosto 2012, 06:01 am »

hola

nadie tiene alguna idea de que podria hacer, ya google e intente de todo lo que encontraba pero nada

o habra algun servidor como XAMPP o variante con el que no tenga problemas de permisos?, espero me puedan ayudar

salu2
En línea

.                                 
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: porque no podre escribir en archivos con php?
« Respuesta #9 en: 28 Agosto 2012, 06:28 am »

Creo ya lo logre al parecer tenia que desactivar SElinux

 SELinux (setenforce 0)

solo que ahora me aparece

Warning: chmod(): Operation not permitted

pero ya funciona todo lo demas

me podrian decir porque chmod no esta permitido?
En línea

.                                 
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines