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...
    0
    1. Et est ce que ca fonctionnerait je veux dire est ce que ca va faire afficher la photo?
      0
      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
        0
        1. Oui si le chemin est exact...

          Mais verifie avant que tu as bien affaire a une image et pas un script ou autre...
          0
          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?
            0
            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;
              }
              0
              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.
                0
                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é
                  0
                  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/
                    0
                    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?
                      0
                      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?
                        0