Page 1 sur 2
probleme avec un opendir()
Posté : 23 févr. 2010, 19:31
par tom_nameless
Bonjour,
la fonction opendir() ne fonctionne pas sur mon serveur...
voici le message d'erreur :
PHP Warning: opendir() expects parameter 2 to be resource, integer given in....
savez-vous d'où le probleme peut venir ?
merci pour votre aide.
Re: probleme avec un opendir()
Posté : 23 févr. 2010, 20:59
par angus666
Bonsoir,
Ce serait bien que tu nous donne ton code vu que le paramètre 2 de la fonction opendir est aléatoire.
Angus
Re: probleme avec un opendir()
Posté : 24 févr. 2010, 11:15
par tom_nameless
voici mon code :
$open = opendir("Documents/", 0700);
Re: probleme avec un opendir()
Posté : 24 févr. 2010, 11:27
par Victor BRITO
La fonction opendir () ne permet pas d'indiquer les permissions. Supprime donc ton second paramètre, qui est facultatif et ne concerne que les contextes de flux.
$open = opendir ('Documents/');
Soit dit en passant, pour ouvrir et explorer un dossier, il existe une fonction en PHP 5 plus pratique :
scandir ().

Re: probleme avec un opendir()
Posté : 24 févr. 2010, 12:06
par tom_nameless
en effet ça marche mieux sans la permission !
par contre je galère toujours.. ce n'est pas mon truc les opendir(), readdir(), mkdir()...
en fait je souhaite vérifier si un dossier existe et le créer si ce n'est pas le cas...
y a t il une solution pour eviter le message d'erreur quand le dossier n'existe pas ?
$open = opendir("Documents/32/");
if($open==TRUE)
{
echo"ok";
closedir("Documents/32/");
}
else{
echo"fichier cree";
mkdir ("Documents/32/");
}
Re: probleme avec un opendir()
Posté : 24 févr. 2010, 12:14
par Victor BRITO
Pour la fonction closedir (), c'est même motif, même punition qu'opendir () : pas de paramètre sur les permissions (en cas de doute sur les types de paramètres, RTFM

). En outre, quand tu utilises un booléen dans une condition, utilise un opérateur d'identité plutôt que l'opérateur d'égalité. Enfin, vérifie, lorsque tu tentes de créer un dossier, que ce dernier est bien créé.
$open = opendir ('Documents/32/');
if ($open === true)
{
echo 'ok';
closedir ($open);
}
else
{
echo (mkdir ('Documents/32/', 0700))? 'Dossier créé': 'PHPFrance, on a encore un problème';
}
Re: probleme avec un opendir()
Posté : 24 févr. 2010, 12:37
par tom_nameless
y a t il une solution pour eviter le message d'erreur quand le dossier n'existe pas ?
Warning: opendir(Documents/32/): failed to open dir: Invalid argument in
Re: probleme avec un opendir()
Posté : 24 févr. 2010, 12:39
par stealth35
Re: probleme avec un opendir()
Posté : 24 févr. 2010, 12:52
par angus666
@opendir
Re: probleme avec un opendir()
Posté : 24 févr. 2010, 13:15
par Victor BRITO
y a t il une solution pour eviter le message d'erreur quand le dossier n'existe pas ?
Warning: opendir(Documents/32/): failed to open dir: Invalid argument in
Essaie en supprimant le dernier /.
opendir ('Documents/32');
@opendir
Le recours à l'@ n'est pas très recommandé : pour ne pas afficher d'erreur, le mieux est d'utiliser ini_set () pour mettre la directive display_errors à Off (et uniquement en production).

Re: probleme avec un opendir()
Posté : 24 févr. 2010, 14:13
par stealth35
Le recours à l'@ n'est pas très recommandé : pour ne pas afficher d'erreur, le mieux est d'utiliser ini_set () pour mettre la directive display_errors à Off (et uniquement en production).

+1

Re: probleme avec un opendir()
Posté : 24 févr. 2010, 15:58
par angus666
Tu as raison mais je ne faisais que répondre à sa question mais je ne suis pas d'accord sur le fait de cacher toutes les erreurs pour ne pas afficher une erreur.
Sinon is_dir ou alors mettre une condition sur opendir pour continuer le script bien que mtnt j'utilise constamment scandir.
Re: probleme avec un opendir()
Posté : 24 févr. 2010, 16:03
par stealth35
ou encore mieux DirectoryIterator
Re: probleme avec un opendir()
Posté : 24 févr. 2010, 16:44
par angus666
Oui mais va expliquer la POO à qqun qui vient d'apprendre opendir
Mais oui pourquoi pas

Re: probleme avec un opendir()
Posté : 04 mars 2010, 11:11
par tom_nameless
c'est du chinois pour moi.. les DirectoryIterator, ini_set()...
$open = opendir("Documents/".$num_retour."/");
if($open==TRUE)
{}
else{mkdir ("Documents/".$num_retour."/");}
comment adapter mon code afin de cacher le message d'erreur...