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 :

[Upload] Problèmes de chmod lors d'un upload


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Points : 70
    Points
    70
    Par défaut [Upload] Problèmes de chmod lors d'un upload
    Salut, je fais un site internet et j'ai un probleme quand je veux uploader des images dans un dosssier.
    La personne peut creer des dossiers sur le serveur et y placer des images dedans.
    Creer des dossiers fonctionnent, c'est quand je veux y a placer des images dedans.
    J'ai 4 erreurs pour 2 fichiers
    1ere erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Warning: chmod() [function.chmod]: Operation not permitted in /var/www/vhosts/Aeons-irc.net/subdomains/legendanime-fansub/httpdocs/legendfansub/administration/image/insertimages.php on line 97
    ../../images/test/
    Voila le bout de code correspondant
    $chemin est le chemin initial, $dossier est le dossier que la personne a selectionnée pour y placer des images et $lien est le lien complet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $chemin="../../images/";//chemin d'origine
    $slash="/";
    $dossier=$rep."".$slash;//on combien le repertoire avec un /
    $lien=$chemin."".$dossier;//le lien combiné avec le tout
     
    chmod($chemin,'777');
     
    $up=$outils->upload('fichier',$lien);
    Ensuite j'ai 3 erreurs avec ma fontion d'upload

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Warning: chmod() [function.chmod]: Unable to access ../../images/test/20061229102421644326312_small.jpg in /var/www/vhosts/Aeons-irc.net/subdomains/legendanime-fansub/httpdocs/legendfansub/class/outils_class.php on line 263
     
    Warning: chmod() [function.chmod]: No such file or directory in /var/www/vhosts/Aeons-irc.net/subdomains/legendanime-fansub/httpdocs/legendfansub/class/outils_class.php on line 263
     
    ../../images/test/20061229102421644326312_small.jpg
    Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 10038 is not allowed to access /var/www/vhosts/Aeons-irc.net/subdomains/legendanime-fansub/httpdocs/legendfansub/images/test owned by uid 48 in /var/www/vhosts/Aeons-irc.net/subdomains/legendanime-fansub/httpdocs/legendfansub/class/outils_class.php on line 266
    Voila le code de la fonction upload
    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
    38
    39
    40
     
    public function upload($index,$destination)
    	{	
    		echo $destination;
    		chmod($_FILES[$index]['tmp_name'],0777);
    		if($_FILES[$index]['error']!=4)
    		{
    			if($_FILES[$index]['tmp_name'])
    			{
    				if( (strstr($_FILES[$index]['type'], 'gif')) || (strstr($_FILES[$index]['type'], 'jpeg'))
    					 || (strstr($_FILES[$index]['type'], 'jpg')) || (strstr($_FILES[$index]['type'], 'png')))
    				{
     
    					$moment=date("YmdHis");//calcul de la date et heure
    					//echo $moment;
    					$foto=$moment . addslashes($_FILES[$index]['name']);//on attribue un nom unique			
     
     
    					echo "<br>";
     
    					$destinationfinale=$destination."".$foto;//on colle la destionation avec le nom unique
    					chmod($destinationfinale,0777);
    					echo "<br>";
    					echo $destinationfinale;
    					if( !move_uploaded_file($_FILES[$index]['tmp_name'], $destinationfinale))
    					{
    						return FALSE;	
    					}
    					else
    					{
    						return $foto;
    					}
    				return FALSE;
    				}	
    			return FALSE;
    			}	
     
    		return FALSE;
    		}	
    	}
    Qqn peut-il me venir en aide svp ?

    Merci d'avance !

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    bonjour,

    il semblerait que chmod() ne sois pas autorisé sur ton serveur.
    As tu vérifié auprés de ton hébergeur ?

  3. #3
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Il ne faut pas confondre chemin physique et chemin virtuel.

    C:/mydocuments/images/tacata/ est un chemin physique
    ../images/tacata est un chemin virtuel

    Quand tu fais des opérations de création de dossier ou de chmod, donc en gros dès que tu interviens sur du filesystem, il est conseillé d'utiliser des chemins physiques et non virtuel....

    en gros tu lui dis de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chmod ('../../images/mondossier');
    Alors que lui s'attendrais plus a quelquechose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chmod ('/var/www/vhosts/Aeons-irc.net/subdomains/legendanime-fansub/httpdocs/legendfansub/images/mondossier');
    @+
    cadou
    PS : Par contre gaffe a tes chmod. Un 0777 est tres dangereux. Tu devrais plutot descendre en 0644

  4. #4
    Membre régulier
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Points : 70
    Points
    70
    Par défaut
    merci pour vos reponses !
    le chmod fonctionne car jlutilise quand je creer des dossiers.

    Et j'ai essayé avec le chemin, çà passe pas non plus

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    Tu peux essayer ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chmod("path_complet", "0777", "-r");
    le -r c'est pour que ce soit récursif mais peut etre ne peut on pas mettre un 3eme argument.

  6. #6
    Membre régulier
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Points : 70
    Points
    70
    Par défaut
    ui il a pas compris le 3ème argument

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    et le 0777 au lieu de 777 ?

  8. #8
    Membre régulier
    Profil pro
    ingé sys
    Inscrit en
    Avril 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingé sys

    Informations forums :
    Inscription : Avril 2004
    Messages : 156
    Points : 70
    Points
    70
    Par défaut
    que je mette 0777 ou 777, c'est la meme erreur : operation not permitted

Discussions similaires

  1. [Upload] Probleme de renommage lors d'un upload
    Par Aenima dans le forum Langage
    Réponses: 3
    Dernier message: 02/04/2008, 15h34
  2. [Upload] Probleme de syntaxe lors d'un upload
    Par pierrot10 dans le forum Langage
    Réponses: 5
    Dernier message: 01/04/2008, 21h32
  3. [Upload] problème de permission d'un fichier uploadé
    Par ned-flanders dans le forum Langage
    Réponses: 1
    Dernier message: 07/03/2007, 19h30
  4. [Upload] Erreur de mémoire lors d'un upload
    Par alpking dans le forum Langage
    Réponses: 3
    Dernier message: 10/11/2006, 10h35
  5. [Upload] Erreur 'Action annulée' lors d'un upload
    Par SegmentationFault dans le forum Langage
    Réponses: 8
    Dernier message: 31/07/2006, 15h12

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