problemas con file_exist

palinmaj
20 de Octubre del 2003
Tengo un problema que me esta volviendo loco porque no tiene ningun sentido.

Ya me ha pasado 2 veces que funciones del php no funcionan en directorios especificos. Me explico.

He duplicado una tienda que tenia con oscommerce, hice una pequeña variacion en el codigo para que me mostrara una imagen default si el producto no tenia imagen propia.

if (!file_exists($src)){
$tmp = explode ('/', $src);
$tmp[count ($tmp)-1] = 'fotonodisponible.gif';
$src = implode ('/', $tmp);
}

el caso es que en un directorio funciona perfectamente pero en otro la funcion file_exist no me devuelve nada. ni true ni false.

La segunda funcion con la que me pasa esto es con la funcion mail pero esta vez es aun mas curioso.
Tengo una pagina que recoge datos de un formulario. los datos son nombre, email y consulta. la pagina recoge los datos mete el nombre y el email en una bd y luego manda un email con todos los datos.
La pagina mete los datos en la bd pero no manda el email pero tampoco da error.

A ver si hay suerte y me podeis ayudar. Me interesa mucho mas la primera pregunta que la segunda.

Gracias por anticipado

mort
20 de Octubre del 2003
¿Es un servidor UNIX? Verifica los permisos del directorio y los ficheros, que probablemente se deba a eso.

Respecto al mail, lo más probable es q esté deshabilitado a nivel de php.ini, compruebalo

palinmaj
20 de Octubre del 2003
si es un servidor unix, pero no entiendo bien que ejecute todo tipo de instrucciones php pero no ejecute esa en concreto.

lo del mail se me olvido decir que la pagina la hice a partir de otra pagina que ya funcionaba y solo modifique el trozo que inserta en la bd y que funciona. asi pues tengo dos paginas virtualmente iguales una funcionando y otra que no hay forma.


mort
20 de Octubre del 2003
Como te dije, casi seguramente que se trate de los permisos; todas estas funciones que interactuan con el sistema de ficheros dependen de que el usuario que ejecuta apache cuente con los suficientes, como cualquier otro usuario del sistema. Prueba a ponerles 755.

Respecto al mail, si estás seguro que en el servidor funciona el SMTP prueba a debugear todos los warnings, notices,etc.. Y si puedes, pon aqui el trozo de código.