| Frederic | mardi 05 septembre 2000 - 16h15 Bonjour, Voici un script qui pourrait faire peur, il doit permettre de supprimer un fichier texte présent sur un serveur (dans le repertoire cgi-bin ou il est executé). #!/usr/local/bin/perl require ("cgi-lib.pl"); &ReadParse(*form); $file = $form{'file';} unlink ('$file') || die ("Erreur de suppression \n"); Ce mini script est accessible depuis un autre script (lui meme protégé par mot de passe), il semble s'executer correctement à la seule imperfection près qu'il ne supprime pas le fichier........ A vot' bon coeur..... j'accepte aussi une solution qui consisterait à ouvrir le fichier texte (.txt)et à en supprimer toutes les lignes. |
| Frédéric (Frédéric) | mercredi 06 septembre 2000 - 09h07 Bonjour, Ma premiere question est êtes vous certain que le script est exécuté ? Essayez éventuellement de faire unlink($file) (sans les ''). |
| Frédéric | mercredi 06 septembre 2000 - 17h40 Mais oui il s'execute.....le petit canaillou. J'ai corrigé avec #!/usr/bin/perl require ("cgi-lib.pl"); print "Content-type: text/html^#92;n^#92;n"; $file = "quiz_last.txt"; unlink ($file); print "Le fichier est supprimé!!!!!^#92;n"; ......cette fois ça à l'air de fonctionner. mais c'eszt une peu pénible comme technique Au fait super ton forum..... |
| Frédéric (Frédéric) | mercredi 06 septembre 2000 - 18h31 Pourquoi pénible ? par ce qu'il faut coder le nom du fichier a supprimer dans le programme ? Si ca fonctionne quans le nom du fichier est codé dedans et pas quand il est donné en paramètre, c'est peut etre par ce qu'il n'est pas correctement passé en parametre .. |
| frederic | mercredi 06 septembre 2000 - 22h50 heu faut'il croire que mon formulaire n'est pas correct??? (bon comme j'ai supprimé l'original je dirais que tu as raison) Pénible parce-que cette technique m'oblige a coder le nom du fichier en dur...evidement ça limite les risques.... ... es ce qu'il existe une fonction perl qui permette de faire l'equivalent d'un copy sous dos? |
| Frédéric (Frédéric) | jeudi 07 septembre 2000 - 22h43 Il y a 3 possiblités : 1)le faire a la main en ouvrant le fichier source en input et en créant un nouveau fichier dans lequel vous recopiez le contenu du fichier source 2) utiliser un appel systeme pour le faire : system("copy $source $destination"); #sous dos system("cp $source $destination"); #sous unix ou $source et $destination contiennent le nom des fichiers source et destination 3) utiliser le module File::Copy : use File::Copy; copy($source,$destination) or die "J'ai loupé la copie : $!"; pour déplacer / renommer il faut faire : move($anciennom,$nouveaunom) or die "J'ai loupé le déplacement / changement de nom : $!"; voila voila |