Alguien sabe PHP?

Todo lo relacionado con Hardware y Software de la computación contemporánea...
Responder
Avatar de Usuario
Walky
Mensajes: 597
Registrado: Mar Ene 22, 2013 5:48 pm
Contactar:

Alguien sabe PHP?

Mensaje por Walky » Lun Mar 11, 2013 3:37 pm

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!

Avatar de Usuario
renix
Mensajes: 4675
Registrado: Vie Ene 25, 2013 1:39 am

Re: Alguien sabe PHP?

Mensaje por renix » Lun Mar 11, 2013 4:17 pm

Parece que hay un problema de path...

Tira el log de apache para ver...

Avatar de Usuario
Walky
Mensajes: 597
Registrado: Mar Ene 22, 2013 5:48 pm
Contactar:

Re: Alguien sabe PHP?

Mensaje por Walky » Lun Mar 11, 2013 4:50 pm

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).

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: Alguien sabe PHP?

Mensaje por vitoco » Lun Mar 11, 2013 4:53 pm

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.

Avatar de Usuario
renix
Mensajes: 4675
Registrado: Vie Ene 25, 2013 1:39 am

Re: Alguien sabe PHP?

Mensaje por renix » Lun Mar 11, 2013 4:58 pm

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

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: Alguien sabe PHP?

Mensaje por vitoco » Lun Mar 11, 2013 5:22 pm

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";

Avatar de Usuario
templar_
Mensajes: 310
Registrado: Lun Feb 11, 2013 3:27 pm

Re: Alguien sabe PHP?

Mensaje por templar_ » Lun Mar 11, 2013 5:29 pm

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

Avatar de Usuario
Walky
Mensajes: 597
Registrado: Mar Ene 22, 2013 5:48 pm
Contactar:

Re: Alguien sabe PHP?

Mensaje por Walky » Lun Mar 11, 2013 6:59 pm

¡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.

RigoHoward
Mensajes: 1137
Registrado: Lun Ene 28, 2013 9:52 am

Re: Alguien sabe PHP?

Mensaje por RigoHoward » Mar Mar 12, 2013 1:46 pm

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.

Avatar de Usuario
Walky
Mensajes: 597
Registrado: Mar Ene 22, 2013 5:48 pm
Contactar:

Re: Alguien sabe PHP?

Mensaje por Walky » Mar Mar 12, 2013 2:32 pm

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

Avatar de Usuario
dogdark
Mensajes: 594
Registrado: Lun Mar 04, 2013 1:36 pm
Contactar:

Re: Alguien sabe PHP?

Mensaje por dogdark » Sab May 18, 2013 12:29 pm

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

Responder