Gros N@z Posté 22 Novembre 2005 Posté 22 Novembre 2005 Bonjour, voila je suis en train de réaliser un site web. Il faut maintenant que je crée une fonction de recherche, je vous explique ceci : - l'utilisateur rentre un nomdefichier.extension dans la fonction rechercher. Et ensuite la réponse est soit positive (posibilité de télécharger le fichier) soit négative. A noter que l'extension sera toujours la même. Je me disais donc grossièrement : il faut que les noms de fichiers (via une boucle tant que ou autre) contenus dans un dossier soient recopiés dans une table constituant ainsi un genre de cache. Lorque que l'utilisateur cherche un fichier, il y a une recherche dans cette table et voila. Ensuite, il faudrait une mise a jour de cette table une fois par jour environ. Voila un peu le fonctionnement. Maintenant, je souhaiterais un peu d'aide et que l'on me mette sur la voie (peut etre que ce que j'ai dit n'est pas possible) Je suis en train d'apprendre le php mais je connais pas mal le C et je trouve que ça ressemble pas mal Merci pour votre aide
Dan Posté 22 Novembre 2005 Posté 22 Novembre 2005 Salut, Il y a bien plus simple si tu veux que l'utilisateur entre le nom de fichier Tu utilises simplement la fonction file_exists(). <?php$repertoire="/repertoire/absolu/ou/se/trouvent/tes/fichiers/";$filename = 'le_nom_du_fichier';if (file_exists($repertoire.$filename)) { print "Le fichier $filename existe";} else { print "Le fichier $filename n'existe pas";}?> Maintenant tu pourras par exemple vérifier que le fichier ne commence pas par ../ ou supprimer tous les caractères du nom de fichier jusqu'au dernier / pour éviter que quelqu'un n'entre un nom du style "../../../../etc/passwd" Dan
Gros N@z Posté 22 Novembre 2005 Auteur Posté 22 Novembre 2005 ok je comprends et j'ai testé. Par exemple voici mon code : <?php $repertoire="./img/"; $filename = 'toto.jpg'; if (file_exists($repertoire.$filename)) { print "Le fichier $filename existe"; } else { print "Le fichier $filename n'existe pas"; } ?> là ça trouve le fichier (j'ai créer un fichier toto.jpg dans mon répertoire img sous répertoire du principal). Maintenant j'aimerais déjà avoir l'etension de prédéfinie. j'ai essayé ceci : <?php $repertoire="./img/"; $extension = '.jpg"; $filename = 'toto'.$extension; if (file_exists($repertoire.$filename)) { print "Le fichier $filename existe"; } else { print "Le fichier $filename n'existe pas"; } ?> Le problème c est que ça ne fonctionne pas Alors bon comme ça fait 1 jour que j'aprends le php, il doit bien y avoir une erreur
Kimberlyclarko Posté 22 Novembre 2005 Posté 22 Novembre 2005 peut-être un problème de guillemets ? $extension = '.jpg";
Gros N@z Posté 22 Novembre 2005 Auteur Posté 22 Novembre 2005 La suite lol : <FORM> Rechercher un fichier .jpg : <INPUT TYPE=text NAME=nom> <INPUT TYPE=submit VALUE="Rechercher"> </FORM> <P> <?php $repertoire="./img/"; $extension = '.jpg'; $filename = 'nom'.$extension; if (file_exists($repertoire.$filename)) { print "Le fichier $filename existe"; } else { print "Le fichier $filename n'existe pas"; } ?> j'ai essayé d'intégrer ça avec de l'html mais je n'y arrive pas. Déjà le tout est a intégrer dans un fichier .php ou .html ?
Dan Posté 22 Novembre 2005 Posté 22 Novembre 2005 Salut, Comme tu as du code php dans cette page, il faut donc un fichier .php. Et pour le répertoire, tu devrais utiliser un répertoire absolu, du style /home/login/www/repertoire/ Dan
Gros N@z Posté 23 Novembre 2005 Auteur Posté 23 Novembre 2005 j'ai toujours le problème quand je veux récupérer la variable var... j'ai essayé pas mal de choses mais je n'y arrive toujours pas. Meme problème pour le répertoire absolu. j'utilise easy php donc j'ai mi www/nature/img/ mais ça ne marche pas <FORM> Rechercher un fichier .jpg : <INPUT TYPE=text NAME=var> <INPUT TYPE=submit VALUE="Rechercher"> </FORM> <P> <?php $repertoire="./img/"; $extension = '.jpg'; $filename ="$var".$extension; if (file_exists($repertoire.$filename)) { print "Le fichier $filename existe"; } else { print "Le fichier $filename n'existe pas"; } ?>
Bridou Posté 24 Novembre 2005 Posté 24 Novembre 2005 (modifié) Il faut pas faire une action sur le formulaire ? Car comme ca tu ne peux pas récuperer var dans le code php. Je verrai plutôt un truc du style : <form method="POST">Rechercher un fichier .jpg : <INPUT TYPE=text NAME=var> <INPUT TYPE=submit VALUE="Rechercher"> </FORM> <?php $var = $_POST["var"]; // pour que tu n'es pas a rechangé ton code ci-dessous if(isset($var)) // Sera vrai si le formulaire a été validé et donc que var a été rempli. { $repertoire="./img/"; $extension = '.jpg'; $filename ="$var".$extension; if (file_exists($repertoire.$filename)) { print "Le fichier $filename existe"; } else { print "Le fichier $filename n'existe pas"; } } ?> En gras ce que j'ai rajouté à ton code. J'ai testé et cela fonctionne mais il y'a surement mieux, je ne suis pas un expert Bonne chance, Bridou. Modifié 26 Novembre 2005 par Dan
Gros N@z Posté 25 Novembre 2005 Auteur Posté 25 Novembre 2005 merci beaucoup je vais testé ça après manger
Gros N@z Posté 26 Novembre 2005 Auteur Posté 26 Novembre 2005 effectivement ça marche mais pourquoi met il ça : Notice: Undefined index: var in c:\easyphp1-8\www\nature\test4.php on line 8 Je ne vois pas trop d'ou viens l erreur <form method="POST">Rechercher un fichier .jpg :<INPUT TYPE=text NAME=var><INPUT TYPE=submit VALUE="Rechercher"></FORM><?php $var = $_POST["var"]; if(isset($var)) { $repertoire="./img/"; $extension = '.jpg'; $filename ="$var".$extension; if (file_exists($repertoire.$filename)) { print "Le fichier $filename existe"; } else { print "Le fichier $filename n'existe pas"; } }?>
Boo2M0rs0 Posté 26 Novembre 2005 Posté 26 Novembre 2005 Bonjour, Celà vient de la ligne: $var = $_POST["var"]; $_POST["var"] indique la valeur du formulaire ( ce code là : "<INPUT TYPE=text NAME=var>" ). Seulement, lorsque tu affiche la page pour la première fois le formulaire n'est pas envoyé donc $_POST["var"] n'existe pas. Essaye donc de modifier: $var = $_POST["var"];if(isset($var)){ par: if(isset($_POST["var"])){ $var = $_POST["var"]; On n'essayera de lire $_POST["var"] que lorsqu'on est sûr qu'il existe
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant