Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/08/2011, 15h35   #1
Invité de passage
 
Homme
Webmaster
Inscription : août 2011
Messages : 2
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 : 2
Points : 1
Points : 1
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 :
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 :
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 :
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
william_13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 15h41   #2
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 776
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 776
Points : 2 340
Points : 2 340
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.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 15h42   #3
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
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...
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 16h59   #4
Membre éprouvé
 
Avatar de guigo
 
Inscription : juin 2006
Messages : 606
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 606
Points : 479
Points : 479
syl2095 a raison. Pour tester fait au départ

Code :
1
2
3
4
5
6
7
 
 
fucntion (){
   global $var;
 
 
}
:
guigo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 17h49   #5
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
excusez-moi d'intervenir ...

Ca ne choque que moi de voir dans une fonction ?
Citation:
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 ...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/08/2011, 15h43   #6
Invité de passage
 
Homme
Webmaster
Inscription : août 2011
Messages : 2
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 : 2
Points : 1
Points : 1
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 :
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 :
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 :
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
william_13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h37.


 
 
 
 
Partenaires

Hébergement Web