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
<?php
$file = "path.txt";
if(file_exists($file)){
echo("el archivo existe");
}
if(@chmod($file, 0777) == 0){
echo(" tiene permisos");
}
if((is_writable($file) && is_readable($file)) == 0){
echo(" escritura y lectura");
}
if(($fp = fopen($file, "a+")) == 0){
echo("archivo abierto");
}
$txt = "hola\n";
if((fwrite($fp, $txt)) == 0){
echo("archivo escrito");
}
fclose($fp);
?>
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
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?
Te digo que es por los ==0 :xD
Veras, la funcion is_readable() por ejemplo.
Tu la llamas y la dices asi:
if(is_readable($file) ==0){
echo 'lectura';
}
}
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:
<?php
$file = "path.txt";
if(file_exists($file)){
echo("el archivo existe <br />");
}
if(@chmod($file, 0777)){
echo(" tiene permisos <br />");
}
if((is_writable($file) && is_readable($file))){
echo(" escritura y lectura <br />");
}
if(($fp = fopen($file, "a+"))){
echo("archivo abierto <br />");
}
$txt = "hola\n";
if((fwrite($fp, $txt))){
echo("archivo escrito <br />");
}
fclose($fp);
?>
He añadido los <br /> para marcar una nueva linea...
Saludos
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:
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?
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
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
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
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?
Hola,
Quizá te sea de ayuda esto:
chmod 711 /home/marc
chmod 755 /home/marc/public_html
setsebool -P httpd_enable_homedirs 1
chcon -R -t httpd_sys_content_t /home/marc/public_html
service httpd restart
Está en el siguiente enlace:
http://forums.fedoraforum.org/archive/index.php/t-240075.html