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

  FORUM HardWare.fr
  Programmation
  PHP

  "function" ne fonctionnant qu'une fois...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

"function" ne fonctionnant qu'une fois...

n°935180
huggy
Posté le 02-01-2005 à 14:56:13  profilanswer
 

Salut !
 
Voilà, j'ai crée une fonction php que voici:
 

Code :
  1. function CreeInput($nmr,$photo)
  2. {
  3.  echo "<label>Photo $nmr:</label>";
  4.  $fichier = test_photo("photos_membres/vignettes/",$photo);
  5.  if ($fichier)
  6.  {
  7.   echo "<img src='photos_membres/vignettes/".$fichier."><br><br>";
  8.   $texte = "Modifier: ";
  9.  }
  10.  else
  11.  {
  12.   $texte = "Ajouter: ";
  13.  }
  14.  echo "<label>&nbsp;</label>";
  15.  echo $texte.'<input name="photo'.$nmr.'" type="file" size="35"><br><br>';
  16. }


 
(test_photo etant une autre fonction, mais n'affichant rien...)
 
Cette fonction est appellée tout simplement comme ça:
 

Code :
  1. CreeInput ("1",$login);


 
ça fonctionne bien lorsque je n'appelle qu'une fois la fonction, mais si je fais par exemple:
 

Code :
  1. creeInput ("1",$login);
  2. creeInput ("2",$login2);


 
Le deuxième "CreeInput" ne s'affiche pas..
 
Vous savez pourquoi ?
 
Merci !

mood
Publicité
Posté le 02-01-2005 à 14:56:13  profilanswer
 

n°935185
esox_ch
Posté le 02-01-2005 à 15:12:40  profilanswer
 

Permierement on met pas d'espace entre le nom de la fonction et la parenthèse
Deuxiemement, une fonction declarée comme CreeInput() ne repondra pas si on l'appelle creeInput()
En suite, une fonction doit retourner qqch (return TRUE,return FALSE,...), et si ca marche toujours pas, regarde dans ta fonction test_photo si qqch ne peut pas clocher


Message édité par esox_ch le 02-01-2005 à 15:13:47
n°935196
sielfried
Posté le 02-01-2005 à 15:35:45  profilanswer
 

Les identificateurs sont sensibles à la casse en PHP donc creeInput <> CreeInput. creeInput devrait te sortir une erreur t'indiquant que la fonction n'existe pas.
 
esox_ch : on peut mettre un espace entre le nom de fonction et la parenthèse, et une fonction n'est pas forcée de retourner une valeur.


Message édité par sielfried le 02-01-2005 à 15:36:16

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°935200
huggy
Posté le 02-01-2005 à 15:41:39  profilanswer
 

Sielfried a écrit :

Les identificateurs sont sensibles à la casse en PHP donc creeInput <> CreeInput. creeInput devrait te sortir une erreur t'indiquant que la fonction n'existe pas.
 
esox_ch : on peut mettre un espace entre le nom de fonction et la parenthèse, et une fonction n'est pas forcée de retourner une valeur.


 
tu me rassures avec toutes ces réponses, je croyais que j'étais retombé à l'age de pierre de la prog :p
 
Je vais regarder la fonction test_photo...


Message édité par huggy le 02-01-2005 à 15:43:46
n°935202
sielfried
Posté le 02-01-2005 à 15:44:10  profilanswer
 

Le deuxième appel ne provoque aucune sortie ? Même pas le premier echo ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°935217
huggy
Posté le 02-01-2005 à 16:18:03  profilanswer
 

c'est bon, j'ai trouvé..
 
il s'agissait bien d'une erreur dans la fonction "test_photo", ou une condition n'était pas appliquée ;)
 
Merci pour votre aide !

n°935218
esox_ch
Posté le 02-01-2005 à 16:20:37  profilanswer
 

Sielfried a écrit :

Les identificateurs sont sensibles à la casse en PHP donc creeInput <> CreeInput. creeInput devrait te sortir une erreur t'indiquant que la fonction n'existe pas.
 
esox_ch : on peut mettre un espace entre le nom de fonction et la parenthèse, et une fonction n'est pas forcée de retourner une valeur.


 
Si on s'en tiens aux règles d'écriture PEAR si, c'est clair que ca marche quand meme mais c'est pas pour autant intelligent.  
 

huggy a écrit :

tu me rassures avec toutes ces réponses, je croyais que j'étais retombé à l'age de pierre de la prog :p
 
Je vais regarder la fonction test_photo...


 
 
En clair un langage qui permet de faire tout et n'importe quoi parcequ'il y a peu de règles et que peu de gens les appliquent (=> html) est plus avancé qu'un langage fortement typé et structuré (=> java) ... On est pas obligés d'avoir tous le meme point de vu ... maintenant ...

Citation :


c'est bon, j'ai trouvé..
 
il s'agissait bien d'une erreur dans la fonction "test_photo", ou une condition n'était pas appliquée ;)
 
Merci pour votre aide !


 
de rien


Message édité par esox_ch le 02-01-2005 à 16:22:25
n°935251
sielfried
Posté le 02-01-2005 à 17:03:23  profilanswer
 

esox_ch a écrit :

Si on s'en tiens aux règles d'écriture PEAR si, c'est clair que ca marche quand meme mais c'est pas pour autant intelligent.  


 
Les fonctions qui ne retournent rien (void), je vois pas ce que ça a de "non intelligent" ? Idem pour l'espace entre le nom de fonction et la parenthèse : dans la plupart des langages que je connais, il peut y avoir n'importe quel espace ou même retour à la ligne entre deux tokens. Un truc du genre :
 

Code :
  1. CreeInput
  2. (
  3. $nmr       ,          $photo
  4. )
  5. ;


 
est parfaitement correct. Dans ce cas précis c'est affreux et illisible, mais beaucoup de programmeurs mettent un espace entre le nom de fonction et la parenthèse (pas qu'en PHP), c'est une écriture courante.  
 

Citation :

En clair un langage qui permet de faire tout et n'importe quoi parcequ'il y a peu de règles et que peu de gens les appliquent (=> html) est plus avancé qu'un langage fortement typé et structuré (=> java) ... On est pas obligés d'avoir tous le meme point de vu ... maintenant ...


 
Le PHP est certes extrêmement/trop flexible mais pour le coup je vois pas le rapport. Java accepte tout aussi bien les fonctions void les espaces entre appel et parenthèse.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°935253
huggy
Posté le 02-01-2005 à 17:04:45  profilanswer
 

Citation :

Si on s'en tiens aux règles d'écriture PEAR si, c'est clair que ca marche quand meme mais c'est pas pour autant intelligent


 
Je tiens simplement à signaler que cette "erreur" n'etait dûe qu'a une erreur de retranscription du code (je n'ai pas utilisé de copié/collé), mis sinon dans mon code, la casse etait respectée ;)

n°935257
esox_ch
Posté le 02-01-2005 à 17:07:34  profilanswer
 

Pour l'espace je sais que Java le permet, et je reste de l'avi des concepteurs de PEAR pour la simple raison qu'il y a deja beaucoup de raisons pour lesquelles un script peut etre illisible, alors vaut mieux pas en rajouter (=> ton exemple). Parcontre pour le return, en java il faut declarer la declaration de la methode qu'elle sera de type void, dans ce cas pas de surprise. Donc ce n'est pas le fait de ne rien retourner qui est pas intelligent, mais le fait de ne pas le declarer au debut pour que "un programmeur qui relit le code"/"le compilateur" soit obliger de chercher le return jusqu'en bas du script pour se rendre compte qu'il ne sera pas envoyé


Message édité par esox_ch le 02-01-2005 à 17:10:07
mood
Publicité
Posté le 02-01-2005 à 17:07:34  profilanswer
 

n°935809
ratibus
Posté le 03-01-2005 à 15:38:36  profilanswer
 

esox_ch a écrit :

Permierement on met pas d'espace entre le nom de la fonction et la parenthèse
Deuxiemement, une fonction declarée comme CreeInput() ne repondra pas si on l'appelle creeInput()
En suite, une fonction doit retourner qqch (return TRUE,return FALSE,...), et si ca marche toujours pas, regarde dans ta fonction test_photo si qqch ne peut pas clocher

En PHP les fonctions ne sont pas sensibles à la casse (ce qui n'empêche pas, bien entendu, de faire attention et d'appeler les fonctions "correctement" ).

n°935978
sielfried
Posté le 03-01-2005 à 18:32:05  profilanswer
 

ratibus a écrit :

En PHP les fonctions ne sont pas sensibles à la casse


 
Ah ben oui mince, en effet. :o


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar

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

  "function" ne fonctionnant qu'une fois...

 

Sujets relatifs
Call to undefined function: mb_strtoupper()??[Résolu] Exploiter 2 fois un résultat d'une requête
Se connecter a plusieurs database a la foisPb avec Oracle: Comment on fait une fois que c'est installé?
[Java] solution EJB fonctionnant comme un trigger[VBS] function et "return"
[GTK] Comment on recupere plusieurs data en une fois ?[PHP/MySQL] utiliser 2 fois de suite le meme resultat MySQL ?
Ma boucle boucle une fois de trop!deux sélections à la fois JScrollPane(list)
Plus de sujets relatifs à : "function" ne fonctionnant qu'une fois...


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