Página 1 de 1

Alguien sabe PHP?

Publicado: Lun Mar 11, 2013 3:37 pm
por Walky
Tengo un problema con un sitio, a ver si alguien me puede traducir este mensaje de error para entender qué lo causa:

Warning: fopen(engine/cache/news.cache.php) [function.fopen]: failed to open stream: Permission denied in httpdocs\engine\function\cache.php on line 91

Warning: fclose(): supplied argument is not a valid stream resource in httpdocs\engine\function\cache.php on line 93



El archivo en cuestión dice lo siguiente (líneas de la 91 a la 93):

$handle = fopen($this->_file, 'w');
fwrite($handle, $this->_content);
fclose($handle);


Probé cambiando permisos y no hay caso, lo que me hace pensar que hay un problema de sintaxis.

¡De antemano gracias!

Re: Alguien sabe PHP?

Publicado: Lun Mar 11, 2013 4:17 pm
por renix
Parece que hay un problema de path...

Tira el log de apache para ver...

Re: Alguien sabe PHP?

Publicado: Lun Mar 11, 2013 4:50 pm
por Walky
El path creo que está bien, lo acorté acá por un tema de privacidad. Qué significa eso de file "w"?.
Cuando llegue a la casa me conecto para pedirte asesoría barsamente :D
(El sitio en sí aparentemente funciona bien).

Re: Alguien sabe PHP?

Publicado: Lun Mar 11, 2013 4:53 pm
por vitoco
Walky escribió:El archivo en cuestión dice lo siguiente (líneas de la 91 a la 93):

$handle = fopen($this->_file, 'w');
fwrite($handle, $this->_content);
fclose($handle);


Probé cambiando permisos y no hay caso, lo que me hace pensar que hay un problema de sintaxis.
No es sintaxis...

Agrega la siguiente línea justo antes que ese bloque y cuéntanos qué dice:

echo "ARCHIVO:" . $this->_file . "\n";

¿Será la ruta que supuestamente debiera decir? Es ahí donde ver si hay permisos de escritura.

Re: Alguien sabe PHP?

Publicado: Lun Mar 11, 2013 4:58 pm
por renix
Walky escribió:El path creo que está bien, lo acorté acá por un tema de privacidad. Qué significa eso de file "w"?.
Cuando llegue a la casa me conecto para pedirte asesoría barsamente :D
(El sitio en sí aparentemente funciona bien).
Ok

Re: Alguien sabe PHP?

Publicado: Lun Mar 11, 2013 5:22 pm
por vitoco
Walky escribió:Qué significa eso de file "w"?
Que quiere escribir desde cero en el archivo que aparecería en el "echo", es decir, si el archivo existe, se lo pisa. Sobre ese archivo debe existir permisos de escritura para el usuario con el que corre el sitio (IIS, httpd, etc.). Si el archivo no existe, la carpeta donde hay que crear el archivo debe tener permisos de escritura para el mismo usuario.

El error en la línea 93 es consecuencia del error en la línea 91. Tal vez la línea 91 debiera decir algo así como:

$handle = fopen($this->_file, 'w') or die "No puedo escribir en ".$this->_file."!!!\n";

Re: Alguien sabe PHP?

Publicado: Lun Mar 11, 2013 5:29 pm
por templar_
el mensaje, segun mi experiencia, es tema de permisos a la carpeta, quizas tienes permiso a la carpeta engine o function, pero quiza esos permisos no estan heredados
prueba darle permisos 777, y luego ve si te arroja el mismo error.
saludos

Re: Alguien sabe PHP?

Publicado: Lun Mar 11, 2013 6:59 pm
por Walky
¡Me castigo, me castigo!

Resulta que estaba cambiando permisos al cache.php cuando en realidad debería habérselos cambiado al cache_news.php de la otra carpeta, ahora se arregló el problema :lol:

¡Gracias a todos! ;)

Ahora bien, hay otros 3 archivos *_news.php en esa carpeta, me pregunto si habrá que modificarlos también jajaja.

Re: Alguien sabe PHP?

Publicado: Mar Mar 12, 2013 1:46 pm
por RigoHoward
La primera línea habla de permisos (pueden ser de archivo o directorio)

Si estás usando un script no fabricado por ti consulta la documentación sobre los permisos necesarios para que opere.

Re: Alguien sabe PHP?

Publicado: Mar Mar 12, 2013 2:32 pm
por Walky
Al final los otros archivos quedaron igual que el de news, eran de similar función y con similares errores. Documentación extra no hay y el autor no estaba disponible por varios días. Pero en fin, ya está todo solucionado, y al final uno de los gestores del proyecto se maneja bien con php así que me dijo que cualquier cosa recurra a él. O sea, todo solucionado :D

Re: Alguien sabe PHP?

Publicado: Sab May 18, 2013 12:29 pm
por dogdark
una pequeña explicacion de lo que paso que es muy comun,,,

Warning: fopen(engine/cache/news.cache.php) [function.fopen]: failed to open stream: Permission denied in httpdocs\engine\function\cache.php on line 91

Warning: fclose(): supplied argument is not a valid stream resource in httpdocs\engine\function\cache.php on line 93


te esta avisando que cache.php que esta en la carpeta engine/function, pide a news.cache.php que esta en engine/cache, se abra para alguna aplicacion de cache, puede que cache.php pida la escritura en este ultimo y no pueda escribirlo o abrirlo, generalmente sucede por que el archivo no existe o no tiene los permisos de escritura en la carpeta y te hace referencia que en la linea 91 de cache.php no se realiza la operacion deseada por algun fallo existente. por lo tanto la operacion se cierra con un fclose por que el argumento no es valido y te arroja el error en la linea 93 de cache.php por que como no pudo abrir tampoco puede cerrar.

hojala que me haya explicado bien

aplique chmod 777 news.cache.php