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

  FORUM HardWare.fr
  Programmation
  PHP

  prob en php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

prob en php

n°1290488
osi
Posté le 23-01-2006 à 20:56:56  profilanswer
 

Bonjour,
 
Voila j'ai un gros problème en php :  
 
j'ai sur une page :  
 
$num est le nombre de "input type=file" à afficher
 

Code :
  1. <form enctype='multipart/form-data' method='post' action='ajoutPhoto1_.php'>
  2. <?
  3. for ($j=1; $j <= $num; $j++)
  4. {
  5. echo '<input name='."userfile$j".' type=file size=120><br>';
  6. }
  7. ?>
  8. <input type="hidden" name="num" value="<? echo"$num"; ?>">
  9. <input type='Submit' value='  Ajouter !   '  onclick='return testNomFichier(this.form)'>
  10. </form>


 
Jusque là, ca va
 
Passon ensuite à la suite
 
Sur la page ajoutPhoto1_.php :  
 

Code :
  1. <?
  2. for ($p=1; $p <= $num; $p++)
  3. {
  4. echo "$userfile_name"."$p"; //normalement, le script est bcq plus grand mais j'ai réussi à voir ou ca coinçait
  5.                                      // en faite, je n'arrive pas a faire le truc ou c'est pax ex : dans la premiere boucle : $userfile_name1, puis dans la 2eme : $userfile_name2
  6. }
  7. ?>


 
le résultat affiché est : 12
 
alors si quelqu'un pourait m'aider, ce serai sympas ;)
 
Merci d'avance
 
 

mood
Publicité
Posté le 23-01-2006 à 20:56:56  profilanswer
 

n°1290493
osi
Posté le 23-01-2006 à 21:04:13  profilanswer
 

et voici le script qui marche sans le system de boucles ...
 

Code :
  1. $fichier = "$userfile_name";
  2. $tab = split('[/\]',$fichier);
  3. $nb = count($tab) - 1;
  4. $fichier = $tab[$nb];
  5. require('conf.php');
  6. mysql_connect($server, $log, $pass);
  7. mysql_select_db($db);
  8. $requete = mysql_query('SELECT COUNT(*) AS nbPhoto FROM photos_maman WHERE nom = \''.$fichier.'\'');
  9. $list = mysql_fetch_array($requete);
  10. //Up seulement du JPG
  11. if(!preg_match('!\.php!', $fichier))
  12. {
  13.   if($list['nbPhoto'] == 0)
  14.    {
  15.     if(strlen($userfile_name) && file_exists($userfile) && stristr($userfile_name, ".php" ) == "" )
  16.     {
  17.     if(!copy($userfile, $userfile_name))
  18.     echo "<script language='javascript'>alert('une erreur s'est produite pendant le téléchargement.');</script>";
  19.      // un peu de nettoyage peut faire du bien, "des coups que..."
  20.    if(file_exists($userfile))
  21.    unlink($userfile);
  22.          }
  23. mysql_query('INSERT INTO photos_maman VALUES(\'\', \''.$fichier.'\', \''.$_POST['commentaire'].'\',\'2\')');
  24. //On creer la miniature
  25.    $source = imagecreatefromjpeg($fichier);
  26.    $largeur_source = imagesx($source);
  27.    $hauteur_source = imagesy($source);
  28.    $newLargeur = ceil($largeur_source*(600/$hauteur_source));
  29.    $destination = imagecreatetruecolor($newLargeur, 600);
  30. imagecopyresampled($destination, $source, 0, 0, 0, 0, $newLargeur, 600, $largeur_source, $hauteur_source);
  31.                imagejpeg($destination, 'moy_'.$fichier);
  32.    $mini = imagecreatetruecolor(140, 120); // On crée la miniature vide
  33.    $largeur_mini = imagesx($mini);
  34.    $hauteur_mini = imagesy($mini);
  35. imagecopyresampled($mini, $source, 0, 0, 0, 0, $largeur_mini, $hauteur_mini, $largeur_source, $hauteur_source);
  36.    imagejpeg($mini, 'mini_'.$fichier);
  37.   ?>
  38.   <script language="JavaScript">
  39.     alert("L'image a correctement été rajoutée." );
  40.    document.location.href="./ajoutPhoto2.php"
  41.     </script>
  42.   <?
  43.  }
  44.  else
  45.  {
  46.    ?>
  47.  <script language="JavaScript">
  48.  alert("Cette image existe déjà ou a le même nom qu'une autre image." );
  49.  document.location.href="./ajoutPhoto2.php"
  50.  </script>
  51.   <?
  52.  }
  53. }
  54. exit();
  55. mysql_close();


Message édité par osi le 23-01-2006 à 21:05:34
n°1290500
afbilou
pouet your life
Posté le 23-01-2006 à 21:10:26  profilanswer
 

Probleme incomprehensible :o

n°1290504
osi
Posté le 23-01-2006 à 21:15:31  profilanswer
 

ouais je sais ... :s mais à mon avis, c'est tout aussi dure de l'expliquer que de le comprendre lol :s

n°1290527
omega2
Posté le 23-01-2006 à 22:17:45  profilanswer
 

Code :
  1. echo "$userfile_name"."$p";


=

Code :
  1. echo $userfile_name;
  2. echo $p;

Voilà l'erreur.
 
solution 1 : la plus proche du probléme

Code :
  1. echo ${$userfile_name.$i}

(register_global=on)
solution 2 : la meilleure

Code :
  1. echo $_POST[$userfile_name.$i]


ou

Code :
  1. echo $_GET[$userfile_name.$i]

en fonction de l'origine.
 
Dans la solution 1, les {} permettent de dire que le nom de la variable sera le résultat de l'expression qu'est à l'intérieur. Le solution2 dit simplement où on cherche la valeur. Je te laisse lire la documentation de php pour en savoir plus.


Message édité par omega2 le 23-01-2006 à 22:22:59
n°1290536
osi
Posté le 23-01-2006 à 22:28:51  profilanswer
 

ca ne marche pas  
 
<?
for ($p=1; $p <= $num; $p++)
{
echo ${$userfile_name.$p} ;
}
?>

n°1290539
osi
Posté le 23-01-2006 à 22:33:24  profilanswer
 

mais si je mets  
 
echo $userfile1_name ;
ou
echo $userfile2_name ;
etc... ca marche

n°1290540
osi
Posté le 23-01-2006 à 22:33:57  profilanswer
 

il faut mettre $p jsute apres le userfile et avant le _name jcrois ...

n°1290541
omega2
Posté le 23-01-2006 à 22:35:02  profilanswer
 

Si ca ne marche pas, alors c'est que "$userfile_name" ne contient pas la bonne valeur.
Je suis parti de ton code en me disant que tes variables contenaient les bonnes valeurs, donc à toi d'adapter s'il y a besoin.

n°1290696
osi
Posté le 24-01-2006 à 10:20:53  profilanswer
 

Ben si par exemple je descide d'afficher 2 "input type file", je les rempmlis et sur la 2eme page (la page verif), j'ai ca : echo "$userfile1_name".'<br>';
echo "$userfile2_name";
 
car la premier "input type file" a le nom userfile1
et la 2eme userfile2
 
le problème est de mettre ce chiffre a l'intérieur d'une variable
 
par ex : echo "$userfile$i_name"
sauf que la syntexe est movaise
 
Je sais que normalement le petit $i se met à la fin des variables mais dans mon cas, $i dois se mettre au milieu d'une variable...
 
Me suis-je fais bien comprendre ?
 
A bientot

mood
Publicité
Posté le 24-01-2006 à 10:20:53  profilanswer
 

n°1290739
omega2
Posté le 24-01-2006 à 11:02:01  profilanswer
 

Arrête de mettre des " autour des noms de variables, ca ne sert à rien à part rajouter des bugs partout. Et si je t'ai montré deux syntaxes dont une qui permet d'indiquer dynamiquement des noms de variables, c'est pour que ca serve. Si tu relis mes explications et que tu sais ce que fait un "." en php, tu devrais être capable d'y arriver sans mal. Si tu ne comprends pas mes explications, demande et je réexpliquerais et si tu ne sais pas ce que fait un point en php, commence par (re)lire des tutoriels sur php.
 
Si je ne te donne pas directement la réponse c'est pour que t'aprenne à t'en sortir, ca te sera vraiment bénéfique si tu veux continuer à développer en php.

n°1291176
osi
Posté le 24-01-2006 à 17:09:02  profilanswer
 

Mais avant tout, il y quelque chose qui coince :  
 
Si je met :  
 

Code :
  1. <?
  2. $p = "5";
  3. $test = "voici";
  4. echo "$test"."$p".'<br>'; // ceci affichera : voici5
  5. $i = '1';
  6. echo "$userfile1".'<br>'; // ceci affichera : (par ex : /tmp/phpzNtBNN)
  7. echo "$userfile"."$i".'<br>'; // ceci devrait logiquement afficher la même chose que la ligne d'au dessu et ca affiche : 1
  8. ?>


 
Là, il y a quelque chose qui m'échape ...

n°1291199
Groomy
Oisif
Posté le 24-01-2006 à 17:30:10  profilanswer
 

le premier c'est $userfile1 et sur la deuxième ligne le nom de la variable est $userfile (sans le '1') donc ça risque pas de marcher (si j'ai bien compris le problème).
 
edit : je passais là par hasard j'ai pas trop lu l'histoire des posts précedents..


Message édité par Groomy le 24-01-2006 à 17:32:33

---------------
Le matin, j'émerge de mes rêves, le plus heureux des anges. Je me couche le soir, un vrai salaud. Qu'ai-je donc fait entre-temps ? J'ai fréquenté les hommes et fouillé dans leur merde.

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

  prob en php

 

Sujets relatifs
prob formulaire sous dreamweaverProb de variables php dans requête mysql
prob de validationprob iframe :/
prob getcharProb de XCOPY /O /X , annuler la demande : R ou F
prob exceptions phpProb avec les objets javascript
Prob de elasticitéProb de préloader
Plus de sujets relatifs à : prob en php


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)