Erreur dans mon script

Bonjour,

Je souhaiterais afficher une image alors j'ai pensé à passer par l'url du serveur mais j'ai une erreur

<?
echo "<a href='/upload/$_POST['fichier']'></a>";
?>

voici l'erreur

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /mnt/104/sdb/7/8/site.inter/stage/concours_ts.php on line 602

PS: Je ne sais pas si c'est possible de faire ca si vous avez quelque chose de plus clair...
Configuration: Windows 2000
Firefox 2.0.0.14

13 réponses

  1. Bonjour,

    <?
    $nom=$_POST['fichier']
    echo "<a href=\"/upload/",$nom,"\"></a>";

    ?>

    Par contre ça n'engage que moi mais faire un lien avec une variable POST absolument pas vérifiée comme tu le fait, niveau sécurité c'est pas top...
    1. Et est ce que ca fonctionnerait je veux dire est ce que ca va faire afficher la photo?
      1. Avec ta synthaxe j'ai une autre erreur

        Parse error: syntax error, unexpected T_ECHO in /mnt/104/sdb/7/8/site.inter/stage/concours_ts.php on line 603
        1. Oui si le chemin est exact...

          Mais verifie avant que tu as bien affaire a une image et pas un script ou autre...
          1. je fais déja un test lors de l'upload sur le serveur
            donc tinquiete pas pour la sécurité

            et le lien du site serait /upload/

            donc il est bon nom?
            1. Tien regarde a partir de l'upload tu ferais comment pour le faire s'afficher toi?

              $dossier = '/upload/';
              $fichier = basename($_FILES['fichier']['name']);
              $taille_maxi = 5000000;
              $taille = filesize($_FILES['fichier']['tmp_name']);
              $extensions = array('.png', '.jpg', '.jpeg');
              $extension = strrchr($_FILES['fichier']['name'], '.');
              //Début des vérifications de sécurité...
              if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
              {
              $erreur = 'Vous devez uploader un fichier de type png, jpg, jpeg';
              }
              if($taille>$taille_maxi)
              {
              $erreur = 'Le fichier est trop gros...';
              }
              if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
              {
              //On formate le nom du fichier ici...
              $fichier = strtr($fichier,
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
              $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
              if(move_uploaded_file($_FILES['fichier']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].$dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
              {
              echo 'Upload effectué avec succès !';
              }
              else //Sinon (la fonction renvoie FALSE).
              {
              echo 'Echec de l\'upload !';
              }
              }
              else
              {
              echo $erreur;
              }
              1. Parse error: syntax error, unexpected T_ECHO in

                oui il manque un ; a la ligne d'avant.

                Pour l'afficher:

                $tmp= $_SERVER['DOCUMENT_ROOT'].$dossier."/".$fichier;
                echo "<img src=$tmp />";

                a adapter si ya deja les / ou pas.
                1. ca ne m'affiche pas l'image

                  alors effetivement il y a l'emplacement
                  par contre elle ne se charge pas quand je clik droit et je fais afficher l'image
                  ca me répond document non trouvé
                  1. donc j'ai adapté ton script ca m'était un / de trop

                    donc j'ai fait ca

                    $tmp= $_SERVER['DOCUMENT_ROOT'].$dossier."".$fichier;
                    echo "<img src=$tmp />";

                    et l'url ca répond ca

                    http://site.inter.free.fr/mnt/104/sdb/7/8/site.inter/upload/
                    1. j'ai réussit a aller a la bonne url par contre je ne sais pas pourquoi l'image ne s'affiche pas est ce un problème de chmod?
                      1. j'ai beau mettre ca au niveau de l'upload

                        chmod("$_SERVER['DOCUMENT_ROOT'].$dossier.$fichier", 0777);

                        ca ne fonctionne pas

                        ma ligne n'est pas correct?