Hola.
Tengo el siguiente código, que subi a un hosting contratado:
Código:
<?php
ini_set('track_errors', 1);
$total = 0;
$archivo = "contador.txt";
echo "Permisos: ", sprintf ( '%o', fileperms ( $archivo ) ), "<br/>" ;
echo "FileOwner: ", posix_getpwuid ( fileowner ( $archivo ) ), "<br/>"; // Get Owner
echo "getUid: ", posix_getpwuid ( posix_getuid () ), "<br/>"; // Get User
if (is_file ( $archivo )) echo "is_file", "<br/>";
else echo "NO es fichero ", "<br/>";
if (is_readable ( $archivo )) echo "is_readable", "<br/>";
else echo "NO es readable ", "<br/>";
if (is_writable ( $archivo )) echo "is_writable", "<br/>";
else echo "NO es writable ", "<br/>";
$f_cont = fopen($archivo, "w");
if ( !$f_cont ) echo ' (2)fopen falla. Error: ', $php_errormsg;
else {
fwrite($f_cont, $total);
fclose($f_cont);
}
?>
Y la salida es:
Código:
Permisos: 100644
FileOwner: Array
getUid: Array
is_file
is_readable
NO es writable
(2)fopen falla. Error: fopen(contador.txt): failed to open stream: Permission denied
Es decir que aparentemente tiene permisos de escritura, pero en la práctica no me deja abrir como "w" ni "w+" ni nada parecido. Además me dice que no es writable.
Hasta aquí todo apunta a que son problemas de permisos. No se por qué tiene que tener problemas de permisos, pero es lo que he leído en el foro.
El problema es que si voy directamente al ftp con nautilus (lo más simple que hay) y edito el archivo "contador.txt" con gedit (también lo más simple) resulta que SI me deja grabar. Es decir modifico el contenido y grabo sin problemas.
Y no lo entiendo.
Ahora que teniendo en cuenta que SI puedo grabar, a ver con qué cara le digo nada al proveedor (es hosting contratado). Además no puedo usar chmod ni chown por la misma razón.
Deduzco entonces que es un problema de php. Pero ¿cual?. ¿Alguna sugerencia?.
Gracias.