IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[FTP] Impossible de modifier le chmod


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [FTP] Impossible de modifier le chmod
    Bonjour,

    J'utilise la fonction ftp_chmod pour modifier les permissions à certains dossiers de mon site à son installation. Le problème c'est que les permissions ne sont jamais changées.....

    Voilà comme je m'y prend :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach($tab_dossier_777 as $d)
    	{
    		if(ftp_chmod($cnx_chmod, 0777, $d) !== false)
    			echo "Les permissions à ".$d." ont été modifiées avec succès en 777.<br/>";
    		else
    			echo "Impossible de modifier les permissions de ".$d." en 777. Veuillez les modifier manuellement.<br/>";
    	}
    Il me renvois tout le temps dans le else.

    $cnx_chmod est testé plus haut dans le code dons pas d'erreur à ce niveau là.

  2. #2
    Invité
    Invité(e)
    Par défaut
    En fait je vous mets tout le code se sera peut être plus simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    // 1) Liste des dossiers :
    		$tab_dossier_777 = array(	"librairies/fichiers",
    									"fichiers", "fichiers/pages", "fichiers/smileys", "fichiers/sponsor",
    									"Style/custom", "Style/custom/images",
    									"temp",
    									"visites", "visites/counter.txt");
     
    	// 2) Connexion au FTP :
    		if ($cnx_chmod = ftp_connect($_SESSION['admin_ftp_hote'], $_SESSION['admin_ftp_port']))
    		{
    			if (ftp_login($cnx_chmod, $_SESSION['admin_ftp_login'], $_SESSION['admin_ftp_password']))
    			{
    				ftp_chdir($cnx_chmod, $_SESSION['admin_ftp_dossier']);
     
    	// 3) Modification des permissions de chaque dossier :
    				foreach($tab_dossier_777 as $d)
    				{
    					if(ftp_chmod($cnx_chmod, 0777, $d) !== false)
    						echo "Les permissions à ".$d." ont été modifiées avec succès en 777.<br/>";
    					else
    						echo "Impossible de modifier les permissions de ".$d." en 777. Veuillez les modifier manuellement.<br/>";
    				}
    				echo "<br/>";
    				ftp_close($cnx_chmod);
    			}
    			else
    			{
    				echo "<script language=\"JavaScript\">alert(\"Erreur FTP : login ou mot de passe incorrect.\");</script>";
    				exit();
    			}
    		}
    		else
    		{
    			echo "<script language=\"JavaScript\">alert(\"Erreur FTP : hôte ou port incorrect.\");</script>";
    			exit();
    		}

  3. #3
    Invité
    Invité(e)
    Par défaut
    j'ai tenté un fichier de test super simplifié pour voir ou sa cache l'erreur. Ca n'est en tout cas pas dans les identifiants.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(ftp_chmod($cnx_chmod, 0777, $file))
    	echo "ok, permissions accordées";
    else
    	 echo "erreur, permissions non accordées";
    Cela ne fonctionne toujours pas. Pensez-vous que l'hébergeur puisse bloquer cette fonction ? Si oui, comment le savoir ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par babastutz
    Pensez-vous que l'hébergeur puisse bloquer cette fonction ?
    Oui, c'est le cas de Free par exemple.

    Citation Envoyé par babastutz
    Si oui, comment le savoir ?
    La fonction ftp_chmod devrait théoriquement échouer (renvoi de la valeur FALSE) et émettre un message d'erreur en indiquant la raison. Pour la deuxième partie de la réponse cela dépendra éventuellement de votre manière de coder (arobases à bannir) et de la configuration de votre serveur (affichage ou non des erreurs, types des messages d'erreur reportés).

    Mais cela pourrait être simplement la conséquence d'un problème au niveau du chemin par exemple.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Je n'ai jamais reçu de message d'erreur malgré l'absence d'arobase. Je crois que je vais faire une pause pasque là je commence à m'énerver sur ce problème

  6. #6
    Invité
    Invité(e)
    Par défaut
    Est-ce que quelqu'un saurait comment l'hébergeur bloque cette fonction ? Fichiers .htaccess sur le ftp ou je sais pas quoi. Y'a t'il un manière de modifier ça ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    En fait mon hébergeur (easygiga) bloque la fonction ftp_chmod. J'ai donc contourné le problème comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    // 1) Liste des dossiers :
    		$tab_dossier_777 = array(	"librairies/fichiers",
    						"fichiers", "fichiers/pages", "fichiers/smileys", "fichiers/sponsor",
    						"Style/custom", "Style/custom/images",
    						"temp",
    						"visites", "visites/counter.txt");
     
    	// 2) Connexion au FTP :
    		if ($cnx_chmod = ftp_connect($_SESSION['admin_ftp_hote'], $_SESSION['admin_ftp_port']))
    		{
    			if (ftp_login($cnx_chmod, $_SESSION['admin_ftp_login'], $_SESSION['admin_ftp_password']))
    			{
    				ftp_chdir($cnx_chmod, $_SESSION['admin_ftp_dossier']);
    				ftp_chdir($cnx_chmod, ".."); //Racine du site
    	// 3) Modification des permissions de chaque dossier :
    				foreach($tab_dossier_777 as $d)
    				{
    					$sitecommand = "chmod 0777 $d";
    					$success = ftp_site($cnx_chmod, $sitecommand);
    					if ($success == false) { 
    						echo "Impossible de changer les permissions de <strong>$d</strong> en chmod 777. Veuillez le faire manuellement.<br/>";
    					}
    				}
    				ftp_close($cnx_chmod);
    			}
    			else
    			{
    				echo "<script language=\"JavaScript\">alert(\"Erreur FTP : login ou mot de passe incorrect.\");</script>";
    				exit();
    			}
    		}
    		else
    		{
    			echo "<script language=\"JavaScript\">alert(\"Erreur FTP : hôte ou port incorrect.\");</script>";
    			exit();
    		}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible de modifier les droits (même avec chmod)
    Par Mithryl dans le forum Ubuntu
    Réponses: 1
    Dernier message: 26/10/2012, 07h39
  2. Réponses: 2
    Dernier message: 05/10/2005, 15h27
  3. Réponses: 6
    Dernier message: 30/09/2005, 16h24
  4. Réponses: 11
    Dernier message: 30/08/2005, 09h31
  5. [Windows 2000 server] Téléchargement FTP impossible sous IE6
    Par o151181 dans le forum Windows Serveur
    Réponses: 6
    Dernier message: 24/11/2004, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo