Appel de fonction

Appel de fonction - PHP - Programmation

Marsh Posté le 28-02-2009 à 15:01:55    

Slt, pour un tp de cours, je dois réaliser un générateur de galerie photos et à un moment, l'utilisateur doit entrer le nom du cheminde d'un répertoire et après il faut appuyer sur un bouton "check" pour vérifier l'existence de ce répertoire, s'il existe bien, les champs se remplissent sinon il y aura un message d'erreur..
 
Je pense qu'il faut utiliser des if mais j'ai un trou sur comment faire pour qu'une fois que l'on appuie sur "check", ça verifie l'existence du répertoire...
 
Vous pouvez m'éclaircir svp?
 
Voici un lien de mon TP: http://guyonst.free.fr/ap/ap-fevrier.pdf

Reply

Marsh Posté le 28-02-2009 à 15:01:55   

Reply

Marsh Posté le 28-02-2009 à 15:18:47    

Quel est ton niveau en PHP ? Ou bloques-tu ? Peux-tu déjà nous montrer un peu de code ?
Difficile de t'aider si on ne sait pas où tu en es.

 

Moi je verrais bien un bouton qui lance une requête via Ajax vers un fichier PHP qui teste l'existence du répertoire ;).

 

EDIT : le code HTML donné en exemple dans le TP ...  [:prozac]
Je te conseille d'utiliser pathinfo pour l'extension ;)


Message édité par Profil supprimé le 28-02-2009 à 15:22:45
Reply

Marsh Posté le 28-02-2009 à 15:23:33    

Je suis en 1ère année d'un BTS informatique, je bloque ( enfin j'ai trou de mémoire ) sur comment faire pour appeler la fonction qui va vérifier l'existence du répertoire..  :/
 
Voilà une partie du code que j'ai fais même si c'est pas énorme...
 

Code :
  1. <html>
  2. <head>
  3. <title>R&eacute;pertoire</title>
  4. <link rel="stylesheet" type="text/css" href="style.css">
  5. </head>
  6. <body>
  7. <form action="traitement.php" method="POST">
  8. <TABLE BORDER="2">
  9. <br/>
  10. <br/>
  11.  
  12.         <TR>
  13.     <TH colspan=100%> R&eacute;pertoire </TH>
  14.     </TR>
  15.         <TR>
  16.     <TH>Nom du r&eacute;pertoire: </TH>
  17.     <TD>
  18.     <INPUT type=text name="repertoire" class="marge">
  19.     </TD>
  20.     <TD><input type="button" name="lien1" value="Check" onclick="self.location.href='nouvelleFacture.php'" class="position"></TD>
  21.     </TR>
  22.         <TR>
  23.  <TH colspan=100%>Param&egrave;tres</TH>
  24.  </TR>
  25.  <TR>
  26.     <TH> Nom du fichier: </TH>
  27.     <TD> <INPUT type=text name="fichier" class="marge"> </TD>
  28.     </TR>
  29.  
  30.  
  31.     <TR>
  32.     <TH> Emplacement du fichier: </TH>
  33.     <TD> <INPUT type=text name="emplacement" class="marge"> </TD>
  34.     </TR>
  35.  
  36.  
  37.     <TR>
  38.     <TH> Nombre d'images par ligne: </TH>
  39.  <TD> <INPUT type=text name="image" class="marge"> </TD>
  40.     </TR>
  41.  <TR>
  42.     <TH> Largeur de l'image: </TH>
  43.  <TD> <INPUT type=text name="largeur" class="marge"> </TD>
  44.     </TR>
  45.    
  46.     <TR>
  47.     <TH> Hauteur de l'image: </TH>
  48.  <TD> <INPUT type=text name="hauteur" class="marge"> </TD>
  49.     </TR>
  50. </table>
  51. <table>
  52.     <TR>
  53.     <TD COLSPAN=2>
  54.     <INPUT type="submit" value="G&eacute;n&eacute;rer">
  55.     </TD>
  56.         </TR>
  57. </table>
  58. </FORM>
  59. </body>
  60. </html>


 

Code :
  1. $repertoire=$_POST['repertoire'];
  2. $fichier=$_POST['fichier'];
  3. $emplacement=$_POST['emplacement'];
  4. $image=$_POST['image'];
  5. $largeur=$_POST['largeur'];
  6. $hauteur=$_POST['hauteur'];
  7. if( ){
  8. } else
  9. {
  10. }

Reply

Marsh Posté le 28-02-2009 à 15:31:25    

bon déjà pour commencer : toutes les valeurs des attributs des tags html doivent être entourées de guillemets !
Ensuite, pour la fonction qui permet de tester l'existence d'un fichier, tu la trouves en 2 sec en cherchant un peu... Google, la doc, toussa...
Et en plus la fonction apparait dans le TP...

Reply

Marsh Posté le 28-02-2009 à 15:45:40    

Je préfère mettre des balises php quand j'en ai besoin au lieu de mettre des guillemets.
 
Il faut faire appel à  la fonction is_dir pour vérifier si le fihier existe mais le truc que j'ai oublié justemen, c'est comment l'appeler quand on appuie sur le bouton "check", j'ai pensé à aller sur une autre page qui récupèrera les valeurs de la précédente et véirifie..

Reply

Marsh Posté le 28-02-2009 à 16:53:18    

j'ai un peu avancé dans mon TP et maintenant je fais la vérification du répertoire pour savoir s'il existe sauf que j'ai un parse error et je ne sais pas où il est.. :/
 
Je mets le code utilisé:
 

Code :
  1. <html>
  2. <head>
  3. <title>R&eacute;pertoire</title>
  4. <link rel="stylesheet" type="text/css" href="style.css">
  5. </head>
  6. <body>
  7. <?php
  8. $repertoire=$_POST['repertoire'];
  9. $fichier=$_POST['fichier'];
  10. $emplacement=$_POST['emplacement'];
  11. $image=$_POST['image'];
  12. $largeur=$_POST['largeur'];
  13. $hauteur=$_POST['hauteur'];
  14. function getExtension($nomFic){
  15. $trunc = split('[.]', $nomFic);
  16. if(sizeof($trunc)>1){
  17.  return $trunc[sizeof($trunc)-1];
  18. }else {
  19.  return strtolower(substr($nomFic,-3));
  20. }
  21. }
  22. function afficheFichierImage($nomImage){
  23. $image = "<img src='".$nomImage."'>";
  24. echo $image;}
  25. function afficheContenuDossier($nomRep){
  26. $curseur = opendir($nomRep);
  27. if (is_dir($repertoire) != TRUE) {
  28. echo "Pas un répertoire";
  29. }
  30. else{
  31. ?>
  32. <TABLE BORDER="2">
  33.         <TR>
  34.     <TH colspan=100%> R&eacute;pertoire </TH>
  35.     </TR>
  36.         <TR>
  37.     <TH>Nom du r&eacute;pertoire: </TH>
  38.     <TD>
  39.     <INPUT type=text name="repertoire" class="marge">
  40.     </TD>
  41.     <TD><input type="button" name="lien1" value="Check" onclick="self.location.href='traitement.php'" class="position"></TD>
  42.     </TR>
  43.         <TR>
  44.  <TH colspan=100%>Param&egrave;tres</TH>
  45.  </TR>
  46.  <TR>
  47.     <TH> Nom du fichier: </TH>
  48.     <TD> <INPUT type=text name="fichier" class="marge"> </TD>
  49.     </TR>
  50.  
  51.  
  52.     <TR>
  53.     <TH> Emplacement du fichier: </TH>
  54.     <TD> <INPUT type=text name="emplacement" class="marge"> </TD>
  55.     </TR>
  56.  
  57.  
  58.     <TR>
  59.     <TH> Nombre d'images par ligne: </TH>
  60.  <TD> <INPUT type=text name="image" class="marge"> </TD>
  61.     </TR>
  62.  <TR>
  63.     <TH> Largeur de l'image: </TH>
  64.  <TD> <INPUT type=text name="largeur" class="marge"> </TD>
  65.     </TR>
  66.    
  67.     <TR>
  68.     <TH> Hauteur de l'image: </TH>
  69.  <TD> <INPUT type=text name="hauteur" class="marge"> </TD>
  70.     </TR>
  71. </table>
  72. <table>
  73.     <TR>
  74.     <TD COLSPAN=2>
  75.     <INPUT type="submit" value="G&eacute;n&eacute;rer">
  76.     </TD>
  77.         </TR>
  78. </table>
  79. <?php
  80.  }
  81. ?>
  82. </body>
  83. </html>


 
Mes balises php se ferment bien pourtant et j'ai copié/coller mon tableau de la page précédent.. :??:

Reply

Marsh Posté le 28-02-2009 à 17:23:15    

absot77 a écrit :

Je préfère mettre des balises php quand j'en ai besoin au lieu de mettre des guillemets.
 
Il faut faire appel à  la fonction is_dir pour vérifier si le fihier existe mais le truc que j'ai oublié justemen, c'est comment l'appeler quand on appuie sur le bouton "check", j'ai pensé à aller sur une autre page qui récupèrera les valeurs de la précédente et véirifie..


je parle de mettre des guillemets dans les attributs, rien à voir avec PHP :jap:

Code :
  1. <tag attribut="valeur"></tag>


au lieu de

Code :
  1. <tag attribut=valeur></tag>


 

absot77 a écrit :

j'ai un peu avancé dans mon TP et maintenant je fais la vérification du répertoire pour savoir s'il existe sauf que j'ai un parse error et je ne sais pas où il est.. :/
 
Je mets le code utilisé:
 

Code :
  1. ...


 
Mes balises php se ferment bien pourtant et j'ai copié/coller mon tableau de la page précédent.. :??:


surement à la ligne donnée dans le message d'erreur. D'ailleurs peux tu le poster ici ? ce sera plus facile de t'aider.

Reply

Marsh Posté le 28-02-2009 à 17:23:49    

Et pour le bouton check, renseigne toi sur Ajax ;)

Reply

Marsh Posté le 28-02-2009 à 17:37:01    

Voici mon message d'erreur: Parse error: parse error in C:\Program Files\EasyPHP 3.0\www\APIG\AP_Fevrier\traitement.php on line 102
 
Et la ligne 102 est la dernière donc je pense qu'il doit manquer une parenthèse, une virgule ou un truc du genre..

Reply

Marsh Posté le 28-02-2009 à 17:59:40    

c'est le message en entier ?

Reply

Marsh Posté le 28-02-2009 à 17:59:40   

Reply

Marsh Posté le 28-02-2009 à 18:00:13    


 
Oui :/

Reply

Marsh Posté le 28-02-2009 à 18:00:59    

En fait c'est normal tu ne fermes jamais le crochet de la fonction afficheContenuDossier

Reply

Marsh Posté le 28-02-2009 à 18:02:43    

La voilà mon erreur stupide...  :o
 
Me doutais bien que c'était un truc à la c*n..  :d
 
Maintenant faut que je fasse appel à mon imagination..  :/
 
Je reviendrais si j'ai besoin d'aide et merci :)

Reply

Marsh Posté le 28-02-2009 à 18:07:17    

ah aussi ta fonction pour obtenir la fonction est lourde... comme je te l'ai déjà dit utilise pathinfo

Reply

Marsh Posté le 28-02-2009 à 19:50:20    

Petite question, je comprends pas ce qu'il doit y avoir dans "nom du fichier", parce que dans le répertoire, logiquement il y a des images et plusieurs.. :??:
 

Reply

Marsh Posté le 28-02-2009 à 22:24:55    

Jai un problème avec un if, normalement quand l'utilisateur remplie un champ pour indiquer le chemin d'un répertoire qui existe, alors ça devrait afficher un tableau quelques renseignements mais j'ai remplacer l'intruction par un "VRAI" sinon il doit afficher "Pas un répertoire" mais dans chaque cas, il affiche "Pas un répertoire", où est le problème?  
 
Je poste mon code:  
 

Code :
  1. if (is_dir($repertoire) != TRUE) {
  2. echo "Pas un répertoire";
  3. }
  4. else
  5. { echo "Vrai";}


 
-------------------------------------------------------------------  
 
Sachant que $repertoire est la récupération d'un chemin d'une autre page qui est file://localhost/C:/Program%20Files/EasyPHP%203.0/www/APIG/AP_Fevrier/images


Message édité par absot77 le 28-02-2009 à 22:28:01
Reply

Marsh Posté le 01-03-2009 à 09:22:41    

affiche $repertoire pour voir.

Reply

Marsh Posté le 01-03-2009 à 13:23:56    

J'ai réussi à tout corriger.
 
Je me pose une question, la réponse doit être simple mais bon..
 
L'utilisateur choisi dans un formulaire le nombre d'images par ligne qu'il veut et dans le code, il y a deux conditions mais je ne sais pas comment formuler parce que je veux dire que tant qu'il y a des images et que tant que $i est inférieur aux nombres d'images par ligne que l'utilisateur à choisi, alors il continue..

Reply

Marsh Posté le 04-03-2009 à 09:56:58    

un lien en file://, c'est louche. Pour les chemins, utilise plutôt $_SERVER["DOCUMENT_ROOT"] si tu veux un chemin en http:// (utile pour des liens absolus) ou dirname(__FILE__) pour les chemins absolu pour des fonctions comme file_exists().


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed