Problème de chmod

Bonjour les amis,

J'ai une petite question

Je viens de faire ce bout de code pour la partie du formulaire en php
[CODE]
$dossier = '/upload/';
$fichier = basename($_FILES['fichier']['name']);
$tmp= $_SERVER['DOCUMENT_ROOT'].$dossier."".$fichier;
echo "<img src=$tmp />";[/CODE]

Comme vous le voyez c'est pour mettre une image qui vient d'être uploader par le client
le problème est que quand ja valide ca me met l'emplacement de l'image mais elle ne se charge pas
Alors je click droit afficher l'image le lien est le bon avec le nom du fichier pas de problème par contre il ne l'as charge pas
alors j'ai pensé que c'était le chmod

j'ai donc fait ceci

[CODE]$cheminPhoto = $_SERVER['DOCUMENT_ROOT'].$dossier.$fichier
chmod ("$cheminPhoto", 0755);[/CODE]

Mais ca me met cette erreur

Parse error: syntax error, unexpected T_STRING in /mnt/104/sdb/7/8/site.inter/stage/concours_ts.php on line 460

aidez moi svp

merci d'avance
Configuration: Windows 2000
Firefox 2.0.0.14

14 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour.

    Il faudrait que tu nous donnes ton code source, au moins autour de la ligne 460...

    A vue de nez, je dirais que c'est un problème de guillemets ou de point virgule.
    $cheminPhoto = $_SERVER['DOCUMENT_ROOT'].$dossier.$fichier
    chmod ("$cheminPhoto", 0755);

    Il manque un point virgule à la fin de la première ligne...
    1. effectivement je n'ai plus le problème du message d'erreur par contre la photo de ne se charge toujours pas et le chmod ne change mm pas
      1. - Regarde le code source de ta page, voir si le lien <img...> correspond à l'adresse de la photo.
        - Utilise les echo et des tests :

        $dossier = '/upload/';
        echo 'dossier = '.$dossier.'<br />;
        $fichier = basename($_FILES['fichier']['name']);
        echo 'fichier = '.$fichier.'<br />';
        $tmp= $_SERVER['DOCUMENT_ROOT'].$dossier."".$fichier;
        if ( is_file ( $tpm ) ) {
        echo "<img src=$tmp />";
        }
        else {
        echo 'Le fichier '.$tmp.' est introuvable !<br />';
        }


        $cheminPhoto = $_SERVER['DOCUMENT_ROOT'].$dossier.$fichier;
        if ( is_file( $cheminPhoto) ) { // On regarde si le fichier à chmoder existe...
        chmod ("$cheminPhoto", 0755) or die ('Impossible de faire le chmod !');
        }
        else {
        echo $cheminPhoto." n'existe pas !<br />";
        }
        1. Ca me répond ca:

          Upload effectué avec succès !dossier = /upload/
          fichier = smalllogo.png
          Le fichier /mnt/104/sdb/7/8/site.inter/upload/smalllogo.png est introuvable !
          Impossible de faire le chmod !
          1. Donc le problème vient de
            $_SERVER['DOCUMENT_ROOT'].$dossier.$fichier;, qui te donne le chemin "physique".

            Tu as <img...> dans ta source html ? Normalement, tu ne devrais pas l'avoir.
            L'idéal serait de travailler avec les chemins relatifs.
            Ta page de base est dans quel répertoire ?
            Mets un echo $_SERVER['SCRIPT_FILENAME']; dans ton code, histoire de voir comment faire ton chemin relatif.
            1. Ca me répond ca

              /mnt/104/sdb/7/8/site.inter/stage/concours_ts.php
              1. Yep.

                Donc, plutôt que de récupérer le $_SERVER['DOCUMENT_ROOT'], essaye ça :
                $dossier = 'upload/';
                $fichier = basename($_FILES['fichier']['name']);
                $tmp= '../'.$dossier."".$fichier; // On remonte d'un répertoire avec le ..
                if ( is_file ( $tpm ) ) {
                echo "<img src=$tmp />";
                }
                else {
                echo 'Le fichier '.$tmp.' est introuvable !<br />';
                }

                $cheminPhoto = '../'.$dossier.$fichier;
                if ( is_file( $cheminPhoto) ) { // On regarde si le fichier à chmoder existe...
                chmod ("$cheminPhoto", 0755) or die ('Impossible de faire le chmod !');
                }
                else {
                echo $cheminPhoto." n'existe pas !<br />";

                Par contre, pour le chmod, je ne sais pas si ça marchera : je ne suis pas sûr de qui est ptopriétaire du dossier upload.
                1. le chmod doit être mis sur 777 pour uploader dedans... mais si tu as pas accès au FTP ca va être dur ! Et si le site est chez Free il faudra oublier...
                  La création d'un site commence par la réflexion de son devenir...
                  1. parce qu'il est impossible de changer les chmod des dossiers sur le serveur, ouvre ton FTP et essaye...
                    La création d'un site commence par la réflexion de son devenir...
                    1. bah si ca fonctionne en tps normal puisk je les fait avec un fichier kan j'écris dedans pas un scrpit php

                      mais la c'est vrai ke ils ne veulent pas changer
                      1. cqfd
                        La création d'un site commence par la réflexion de son devenir...
                        1. mais si je passe mon script a un serveur perso est ce que fonctionnera?