erreur récurente

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

J'obtient régulièrement le message d'erreur suivant :

warning: Unable to access in /data/www/m/o/ndomaine.org/html/drupal/includes/file.inc on line 146.

Que faire ?

Le nom du répertoire que tu donnes semble fictif, mais je crois qu'il y a un problème de permissions sur ton système. Si tu travailles sous unix, essaie de changer la propriété des fichiers (ils devraient appartenir au même usager qui execute le daemon du serveur web, i.e. usager apache) OU BIEN, ils devraient être disponibles en lecture à l'usager apache (chmod -R g+r ainsi que chmod -R oa+r).

Ca n'a pas l'air d'être ça...

En effet tous mes fichiers sont accessibles en lecture pour tous, et les répertoires en lecture et execution.

Merci quand même.

Une autre idée ?

idée : peut etre voir la ligne en question dans l'erreur, il y aura une instruction php qui a un probleme. Ce n'est pas le fichier cité qui est le problème mais une des commandes qu'il contient à la ligne donnée.

Le bout de code qui cause mes soucis est le suivant :
if (file_exists($_SESSION['file_uploads'][$source]->filepath)) {
return $_SESSION['file_uploads'][$source];
}

Il me semble que drupal ne donne pas de variable à la fonction
file_exists.

Plus exactement, si je demande d'afficher juste avant le if la valeur de
$_SESSION['file_uploads'][$source]->filepath, rien ne s'affiche. Si je
demande juste $_SESSION['file_uploads'][$source], je n'obtiens rien non
plus

J'ai testé la fonction file_exists() avec une variable nulle ($var="";),
et php ne me sort pas d'erreur, par contre si je teste par exemple :
$var="";
if (file_exists($var->filepath)) {...}

Là j'obtiens la même erreur qu'avec drupal.

Que faire ?
J'ai essayé de changer le code en :
if ($_SESSION['file_uploads'][$source]=="") {
return$_SESSION['file_uploads'][$source];}
elseif(file_exists($_SESSION['file_uploads'][$source]->filepath)) {
return $_SESSION['file_uploads'][$source];
}

Là, ça ne me sort plus d'erreur, et normallement ça revient au même non ?

Effectivement, il y avait peut-être un problème sur les droits. Lorsque je met le repertoire en 777, je n'ai plus le message d'erreur.

J'ai lu dans un forum que cela arrivait de temps en temps car sur certains serveurs l'utilisateur apache n'est pas dans le même groupe que l'utilisateur du compte ftp.

Par contre je ne sais pas ce qu'il en est en terme de sécurité.