Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1837 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Variable variable.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Variable variable.

n°1420645
cimourdain
Posté le 05-08-2006 à 23:34:36  profilanswer
 

Salut,
 
Voila j'ai une variable qui depend d'une autre donc je voulais deja savoir si c'était correcte d'écrire ca:

Code :
  1. $test{$numero};


pour avoir la variable $test1, si avant on a $numero=1 mais ce qui me fais surtout souci c'est comment fait dans le cas des variables superglobales (c'est bien comme ca qu'on dit ?) dans ce cas de figure:  

Code :
  1. $_FILES['fichier{$numero}']['name']


car dans le formulaire correspondant on peut avoir ces cas de figure

Code :
  1. <input type="file" name="fichier1" />
  2. <input type="file" name="fichier2" />
  3. <input type="file" name="fichier3" />
  4. etc...


les acolades apparement c'est faux alors quelle est la bonne syntaxe ?
 
P.S. au passage j'ai une petite question sur les fichier qu'on envoie avec un formulaire html (formulaire qui produit la variable $_FILES) je voulais savoir comment faire pour savoir si l'utilisateur a bien choisit un fichier avant de cliquer sur le bouton submit ou si il a laisser le champ vide. Est ce que c'est avec un isset() comme pour le cas de la variable $_POST, qui elle n'est pas un tableau à deux dimansions comme $_FILES.


Message édité par cimourdain le 05-08-2006 à 23:42:49
mood
Publicité
Posté le 05-08-2006 à 23:34:36  profilanswer
 

n°1420660
Sh@rdar
Ex-PhPéteur
Posté le 06-08-2006 à 00:09:13  profilanswer
 

en fait tu utilises un tableau là ;)
 
et la syntaxe c'est comme pour une chaine (puisque la clef en est une)
 
$tableau['numero'.$mavariable] donnera $tableau['numero1'] si $mavariable vaut 1
 
pour les variables variables  ta syntaxe est bonne, y'a juste confusion dans ce cas précis


Message édité par Sh@rdar le 06-08-2006 à 00:09:54

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1420874
cimourdain
Posté le 06-08-2006 à 16:40:08  profilanswer
 

ca marche pas, est ce que c'est parce que c'est dans une fonction la ligne

Code :
  1. $test{$numero};


et que $numero est un argument de la fonction ?

Code :
  1. function transformation($numero)
  2. {
  3.                 ...
  4. $test{$numero} = ...
  5.                 ...
  6. }


 
j'obtiens une erreur

Citation :

Parse error: syntax error, unexpected T_STRING


j'ai vérifié 10 fois et je ne vois pas de quoi d'autre cette erreur pourrait venir.


Message édité par cimourdain le 06-08-2006 à 16:42:46
n°1420875
Sh@rdar
Ex-PhPéteur
Posté le 06-08-2006 à 16:45:10  profilanswer
 

alors si ça marche pas [:spamafote]
 
y'a une erreur de syntaxe mais sans code c'est dur à corriger...


Message édité par Sh@rdar le 06-08-2006 à 16:45:59

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1420898
cimourdain
Posté le 06-08-2006 à 17:14:30  profilanswer
 

Code :
  1. function up_fichier($numero)
  2. {
  3. $erreur='';
  4. if ($_FILES['fichier'.$numero]['error'] > 0 )
  5. {
  6. $erreur = $erreur." Erreur lors du transfert du fichier ".$numero;
  7. }
  8. $maxsize=1000000;
  9. if ($_FILES['fichier'.$numero]['size'] > $maxsize)
  10. {
  11. $erreur = $erreur." Le fichier ".$numero." est trop gros";
  12. }
  13. $ext_valides = array( 'jpg', 'JPG');
  14. $ext_fichier{$numero} = substr(  strrchr($_FILES['fichier'.$numero]['name'], '.')  ,1);
  15. if ( !(in_array($ext_fichier{$numero}, $ext_valides)))
  16. {
  17. $erreur = $erreur.' Extensions incorrectes pour le fichier '.$numero.': jpg seulement !';
  18. }
  19. $maxwidth=1280;
  20. $maxheight=1024;
  21. $fichier{$numero}_sizes = getimagesize($_FILES['fichier'.$numero]['tmp_name']);
  22. ....
  23. }


 
ca bloque sur la dernière ligne:

Code :
  1. $fichier{$numero}_sizes = getimagesize($_FILES['fichier'.$numero]['tmp_name']);


 
j'appelle la fonction ainsi: up_fichier(2); par exemple pour faire mes essais.


Message édité par cimourdain le 06-08-2006 à 17:17:33
n°1420917
Je@nb
Kindly give dime
Posté le 06-08-2006 à 17:53:52  profilanswer
 

c'est crade ce que tu fais :/

n°1420924
cimourdain
Posté le 06-08-2006 à 18:12:39  profilanswer
 

pourquoi ?

n°1420928
Je@nb
Kindly give dime
Posté le 06-08-2006 à 18:20:36  profilanswer
 

Ce serait pas plus simple de stocker dans un tableau plutot que des variables variables ?
 
Par exemple : $fichier[$numero]["ext"]=substr(  strrchr($_FILES['fichier'.$numero]['name'], '.')  ,1);
et pareil pour la taille :)

n°1420942
Sh@rdar
Ex-PhPéteur
Posté le 06-08-2006 à 18:56:20  profilanswer
 

c'est pas crade c'est infâme en plus d'être incorrect


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1420952
cimourdain
Posté le 06-08-2006 à 19:17:48  profilanswer
 

ouais ben au lieu de me descendre vous voulez pas me filer un coup de main svp ?


Message édité par cimourdain le 06-08-2006 à 19:19:31
mood
Publicité
Posté le 06-08-2006 à 19:17:48  profilanswer
 

n°1420955
Je@nb
Kindly give dime
Posté le 06-08-2006 à 19:26:44  profilanswer
 

Qu'est ce que j'ai fais ?

n°1420961
cimourdain
Posté le 06-08-2006 à 19:38:17  profilanswer
 

au lieu de me dire que mon code c'est de la merde, vous pourriez pas juste me dire comment résoudre mon probleme ?

n°1420965
Sh@rdar
Ex-PhPéteur
Posté le 06-08-2006 à 19:44:32  profilanswer
 

utilise un tableau, Je@nb t'as montré comment faire :o


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1421482
cimourdain
Posté le 07-08-2006 à 14:24:03  profilanswer
 

pourquoi est ce que quand j'écris ca:

Code :
  1. $numero=2;
  2. $nom_fichier{$numero}="test encore";
  3. echo "<br/>";
  4. echo $nom_fichier2;


pourquoi est ce que j'obtiens a chaque fois que la premiere lettre de la chaine ? ici en l'occurence "t" ?

Message cité 1 fois
Message édité par cimourdain le 07-08-2006 à 14:24:49
n°1421487
Je@nb
Kindly give dime
Posté le 07-08-2006 à 14:29:36  profilanswer
 

On ne peut pas dire que tu es entêté quand même

n°1421509
cimourdain
Posté le 07-08-2006 à 14:43:45  profilanswer
 

pourquoi tu veux pas juste répondre a ma question ? sérieux ca te sers a quoi de me dire

Citation :

On ne peut pas dire que tu es entêté quand même

??


Message édité par cimourdain le 07-08-2006 à 14:43:57
n°1421512
Je@nb
Kindly give dime
Posté le 07-08-2006 à 14:47:35  profilanswer
 

On te dis de faire des tableaux et toi tu t'entetes à faire des variables variables qui te compliquent la vie en plus d'être crade.
On te donne la ligne qui va bien, bref tout et toi tu reviens à la charge :/

n°1421514
Sh@rdar
Ex-PhPéteur
Posté le 07-08-2006 à 14:48:27  profilanswer
 

cimourdain a écrit :

pourquoi est ce que quand j'écris ca:

Code :
  1. $numero=2;
  2. $nom_fichier{$numero}="test encore";
  3. echo "<br/>";
  4. echo $nom_fichier2;


pourquoi est ce que j'obtiens a chaque fois que la premiere lettre de la chaine ? ici en l'occurence "t" ?


 
 
on abrège plutôt :
 
${'nom_fichier'.$numero}  
 
et ça passera mieux
 


Message édité par Sh@rdar le 07-08-2006 à 14:49:51

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1421799
cimourdain
Posté le 07-08-2006 à 19:00:18  profilanswer
 

ok merci.
Je me suis apercu que ce que j'avais fait est completement stupide, non pas a cause de ce que vous disiez mais a cause que je n'ai pas besoin des indices sur les variables ! en fait j'ai fait la conneries de ne pas distinguer les variables locales de ma fonction et les variables du reste du code. J'ai voulu faire une fonction car la meme opération devait se répéter plusieurs fois au fur et a mesure que j'avancais dans le code et donc pour faire la fonction j'ai fait un copier coller d'une seule des 3 lingnes identiques a chaque fois (à l'indice pres) et c'est pour ca que j'avais voulu faire une variable pour l'indice. Bon je sais pas si je suis très clair mais toujours est-il que j'ai résussi a faire ce que je voulais.
Par contre je sais toujours pas pourquoi c'est crade de pas faire sous forme de tableau et pourquoi dans le dernier exemple que je donne j'obtiens que la premiere lettre de la chaine ! J'aimerais bien le savoir pour m'instruire !!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Variable variable.

 

Sujets relatifs
[SQL SERVER]Requête n'acceptant pas une variablePasser une variable avec un ? dans l'URL
[Résolu] [VB.Net] Accès variable de type Generic.List(Of ...) dansProblème de contenu d'une variable suite à requete AJAX.
Variable de très grande tailleLancer une commande DOS avec une variable dans un VBS
[Fortran] Renommer un fichier à partir d'une variablevariable pas assez grande
Concatenation dans une variable (set)Modification de la variable PATH
Plus de sujets relatifs à : Variable variable.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR