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 :

Probléme de variable


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut Probléme de variable
    Bonjour la communauté

    J'espére ne pas mettre trompé de forum
    sinon veuillez m'en excuser
    d avance merci.

    Voici mon souci :
    J' ai rajouté dans mon formulaire une liste deroulante
    afin que l on puisse choisir le dossier de destination au niveau du serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <label for="dossiers">Destination</label>
     
    	<select name="dossiers" id="dossiers">
    	<option value="../zip/">Zip</option>
    	<option value="../mp3/">Mp3</option>
    	</select>';
    Là pas de réel probléme
    Pour savoir si le formulaire envoie bien la demande
    j' ai fait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //On recupere les variables passer dans le tableau $_POST[] :
    $var= htmlentities($_POST["dossiers"], ENT_QUOTES);
     
    //On fais un print des variables obtenues :
    print "$var";
    et j ai bien le dossier selectionné ex ../mp3/

    Maintenant voici le probléme
    j'ai $upload_dir qui est le chemin menant au répertoire de destination du fichier à uploader

    et là je ne sait pas comment intégrer le resultat de la selection du formulaire

    si je met en dur $upload_dir="../mp3/
    le fichier est bien uploader dans le bon dossier
    mais là je nai pas le choix de la destination

    si je fais $upload_dir ="$var"
    l upload ne se fait pas et j ai :
    comme erreur

    Warning: move_uploaded_file(echo 099.mp3) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/liswenti2/public_html/Gestion/_1.php on line 71

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/home/liswenti2/tmp/php5NPy0i' to 'echo 099.mp3' in /home/liswenti2/public_html/Gestion/_1.php on line 71
    Une erreur est survenue lors du transfert de 099.mp3


    et aussi ceci:
    Notice: Undefined variable: var in /home/liswenti2/public_html/Gestion/_1.php on line 29



    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
     
    function FILE_UPLOADER($num_of_uploads=1, $file_types_array=array('mp3'), $max_file_size=26214400){
    if(!is_numeric($max_file_size)){
        $max_file_size = 26214400;;
      }
     
    $upload_dir= "echo $var"; ici la ligne 29
      $max_file_size_Mo = $max_file_size/26214400;;
      if(!isset($_POST['submitted'])){
        $form = '<form action="_1.php" method="post" enctype="multipart/form-data">Telechargement de fichier:<br /><input type="hidden" name="submitted" value="TRUE" id="'.time().'"><input type="hidden" name="MAX_FILE_SIZE" value="'.$max_file_size.'">';
        for($x=0;$x<$num_of_uploads;$x++){
          $form .= '<input type="file" name="file[]"><font color="red">*</font><br /><br />';
        }
     
       $form .=   '<label for="folder">Destination</label>
     
    	<select name="dossiers" id="dossiers">
    	<option value="../zip/">Zip</option>
    	<option value="../mp3/">Mp3</option>
    	</select>';
        $form .= '<input type="submit" value="Telecharger"><br /><font color="red">*</font> Type(s) de fichiers autorisés: ';
        $y=count($file_types_array);
    	for($x=0;$x<$y;$x++){
          if($x<$y-1){
           $form .= $file_types_array[$x].', ';
          }else{
            $form .= $file_types_array[$x].'.';
          }
        }
        $form .= '</form>';
        echo($form);
      }
    Merci pour votre aide

    cordialement
    wiliam_13

  2. #2
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    Bonjour,

    Il nous faudrait ton code en entier pour comprendre pourquoi ta variable $var n'est pas défini, et à quel endroit ça pêche.
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  3. #3
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Bonjour,

    il semblerait que ta variable $var est déclarée en dehors de ta fonction...

    donc soit tu la passes en paramètre de la fonction soit tu la déclares en variable globale...

  4. #4
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    syl2095 a raison. Pour tester fait au départ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    fucntion (){
       global $var;
     
     
    }
    :

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    excusez-moi d'intervenir ...

    Ca ne choque que moi de voir dans une fonction ?
    if(!isset($_POST['submitted'])){
    Ou même la simple existence de cette fonction, dont la seule ... fonction (!) est d'afficher le formulaire ?

    A l'origine, cette fonction devait permettre d'afficher plusieurs champs <input type="file" ...>
    Or, on a tout de suite : $num_of_uploads=1
    Donc, a mon avis ... autant simplifier et ré-écrire les choses proprement ...

    Concernant $var ou $upload_dir (qui soit dit en passant sont les même) :
    leur présence n'est PAS requise dans la fonction, mais au moment du traitement du formulaire ...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut
    Bonjour;

    Merci à vous, Pour avoir pris de votre temps .
    Veuillez m excuser de ne ne pas vous avoir répondu plus rapidement

    J attendais un mail m indiquant qu'un message avait été posté
    Comme sur certain forum.

    Pour FirePrawn
    voici le code en entier
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    <?php
     
    function FILE_UPLOADER($num_of_uploads=1, $file_types_array=array('mp3'), $max_file_size=26214400){
    if(!is_numeric($max_file_size)){
        $max_file_size = 26214400;;
      }
     
    $upload_dir= "$var"; 
      $max_file_size_Mo = $max_file_size/26214400;;
      if(!isset($_POST['submitted'])){
        $form = '<form action="_1.php" method="post" enctype="multipart/form-data">Telechargement de fichier:<br /><input type="hidden" name="submitted" value="TRUE" id="'.time().'"><input type="hidden" name="MAX_FILE_SIZE" value="'.$max_file_size.'">';
        for($x=0;$x<$num_of_uploads;$x++){
          $form .= '<input type="file" name="file[]"><font color="red">*</font><br /><br />';
        }
     
       $form .=   '<label for="dossiers">Destination</label>
    
    	<select name="dossiers" id="dossiers">
    	<option value="../zip/">Zip</option>
    	<option value="../mp3/">Mp3</option>
    	</select>';
        $form .= '<input type="submit" value="Telecharger"><br /><font color="red">*</font> Type(s) de fichiers autorisés: ';
        $y=count($file_types_array);
    	for($x=0;$x<$y;$x++){
          if($x<$y-1){
           $form .= $file_types_array[$x].', ';
          }else{
            $form .= $file_types_array[$x].'.';
          }
        }
        $form .= '</form>';
        echo($form);
      }else{
        foreach($_FILES['file']['error'] as $key => $value){
          if($_FILES['file']['name'][$key]!=""){
            if($value==UPLOAD_ERR_OK){
              $origfilename = $_FILES['file']['name'][$key];
              $filename = explode('.', $_FILES['file']['name'][$key]);
             $filenameext = $filename[count($filename)-1];
              unset($filename[count($filename)-1]);
              $filename = implode('.', $filename);
              $filename = substr($filename, 0, 15).'.'.$filenameext;
              $file_ext_allow = FALSE;//par mesure de securité on suppose l'extenion du fichier fausse
    		  //verifions si notre fichier fait partie des types autorisés
    		  if(false !== ($iClef = array_search($filenameext, $file_types_array))) {
     $file_ext_allow = TRUE;
    }
              if($file_ext_allow){
                if($_FILES['file']['size'][$key]<$max_file_size){
                  if(move_uploaded_file($_FILES['file']['tmp_name'][$key], $upload_dir.$filename)){
                    echo('Transfert de fichier effectué avec succès. - <a href="'.$upload_dir.$filename.'" target="_blank">'.$filename.'</a><br />');/*evidemment plutot que d'afficher ici le lien vers le fichier uploader sur le serveur vous pouvez proceder à une redirection vers une autre page*/
                  }else{
                    echo('Une erreur est survenue lors du transfert de '.'<strong>'.$origfilename.'</strong><br />');
                  }
                }else{
                  echo('La taille du fichier '.'<strong>'.$origfilename.'</strong>'.' excède les '.$max_file_size_Mo.' Mo autorisé(s), ERREUR DE TRANSFERT !<br />');
                }
              }else{
                echo('Le fichier '.'<strong>'.$origfilename.'</strong>'.'  a une extension invalide, ERREUR DE TRANSFERT !<br />');
            }       }else{
              echo('Une erreur est survenue lors du transfert de '.'<strong>'.$origfilename.'</strong><br />');
            }
          }
        }
      }
    }
     
    ?>
     
    <?php
    //On recupere les variables passer dans le tableau $_POST[] :
    $var= htmlentities($_POST["dossiers"], ENT_QUOTES);
     
     
    //On fait un print des variables obtenues :
    print "$var";
     
    ?>
    En fait au départ $var me servait à savoir si
    la sélection au niveau du dossier de destination était bien envoyé par le formulaire

    Je viens de modifié le code selon vos remarques
    voici le code modifié, en fait peut de chose.
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    <?php
     
    global $var;
     
    function FILE_UPLOADER($num_of_uploads=1, $file_types_array=array('mp3'), $max_file_size=26214400){
    if(!is_numeric($max_file_size)){
        $max_file_size = 26214400;;
      }
     
    $var= htmlentities($_POST["dossiers"], ENT_QUOTES);
      $max_file_size_Mo = $max_file_size/26214400;;
      if(!isset($_POST['submitted'])){
        $form = '<form action="_1.php" method="post" enctype="multipart/form-data">Telechargement de fichier:<br /><input type="hidden" name="submitted" value="TRUE" id="'.time().'"><input type="hidden" name="MAX_FILE_SIZE" value="'.$max_file_size.'">';
        for($x=0;$x<$num_of_uploads;$x++){
          $form .= '<input type="file" name="file[]"><font color="red">*</font><br /><br />';
        }
     
       $form .=   '<label for="dossiers">Destination</label>
    
    	<select name="dossiers" id="dossiers">
    	<option value="../zip/">Zip</option>
    	<option value="../mp3/">Mp3</option>
    	</select>';
        $form .= '<input type="submit" value="Telecharger"><br /><font color="red">*</font> Type(s) de fichiers autorisés: ';
        $y=count($file_types_array);
    	for($x=0;$x<$y;$x++){
          if($x<$y-1){
           $form .= $file_types_array[$x].', ';
          }else{
            $form .= $file_types_array[$x].'.';
          }
        }
        $form .= '</form>';
        echo($form);
      }else{
        foreach($_FILES['file']['error'] as $key => $value){
          if($_FILES['file']['name'][$key]!=""){
            if($value==UPLOAD_ERR_OK){
              $origfilename = $_FILES['file']['name'][$key];
              $filename = explode('.', $_FILES['file']['name'][$key]);
             $filenameext = $filename[count($filename)-1];
              unset($filename[count($filename)-1]);
              $filename = implode('.', $filename);
              $filename = substr($filename, 0, 15).'.'.$filenameext;
              $file_ext_allow = FALSE;//par mesure de securité on suppose l'extenion du fichier fausse
    		  //verifions si notre fichier fait partie des types autorisés
    		  if(false !== ($iClef = array_search($filenameext, $file_types_array))) {
     $file_ext_allow = TRUE;
    }
              if($file_ext_allow){
                if($_FILES['file']['size'][$key]<$max_file_size){
                  if(move_uploaded_file($_FILES['file']['tmp_name'][$key], $var.$filename)){
                    echo('Transfert de fichier effectué avec succès. - <a href="'.$var.$filename.'" target="_blank">'.$filename.'</a><br />');/*evidemment plutot que d'afficher ici le lien vers le fichier uploader sur le serveur vous pouvez proceder à une redirection vers une autre page*/
                  }else{
                    echo('Une erreur est survenue lors du transfert de '.'<strong>'.$origfilename.'</strong><br />');
                  }
                }else{
                  echo('La taille du fichier '.'<strong>'.$origfilename.'</strong>'.' excède les '.$max_file_size_Mo.' Mo autorisé(s), ERREUR DE TRANSFERT !<br />');
                }
              }else{
                echo('Le fichier '.'<strong>'.$origfilename.'</strong>'.'  a une extension invalide, ERREUR DE TRANSFERT !<br />');
            }       }else{
              echo('Une erreur est survenue lors du transfert de '.'<strong>'.$origfilename.'</strong><br />');
            }
          }
        }
      }
    }
     
    ?>
    Le fichier s'uploade bien et va vers le dossier de destination selectionné dans le formulaire
    J ai fait 3 tests qui sont concluant.

    j'ai juste ceci comme notice
    Notice: Undefined index: dossiers in /home/liswenti2/public_html/Gestion/_1.php on line 32
    qui correspont à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $var= htmlentities($_POST["dossiers"], ENT_QUOTES);
    mais n affecte pas son fonctionnement

    Je pense que le sujet est résolu

    Merci à vous tous
    William_13

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

Discussions similaires

  1. [VB.NET] Probléme de variable
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/03/2005, 11h51
  2. [Debutant(e)]problème de variable d'environnement
    Par tolsam dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/08/2004, 19h08
  3. Problème de variable
    Par vp dans le forum Windows
    Réponses: 2
    Dernier message: 14/05/2004, 16h27
  4. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 17h41
  5. [servlet]problème de variable jamais nulle
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/03/2004, 09h31

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