mymydu42
Messages postés39Date d'inscriptionmercredi 4 juin 2008StatutMembreDernière intervention18 juin 2008
-
12 juin 2008 à 09:16
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
13 juin 2008 à 19:22
Je vous explique, je dois faire une application pour faire un planning sans base de données, c'est simple il y'a un dossier pour chaque jour de la semaine et un dossier bibliotheque avec tous les fichiers que l'on veut diffuser a un certain moment de la semaine. Pour ajouter un fichier dans la bibliotheque il faut cliquer sur un bouton ajouter et une popup avec un formulaire s'ouvre et on rentre le nom, la duree, le type de fichier et les mots clés. Maintenant après avoir fait ça il faut qu'on puisse cliquer dans un des jours de la semaine ( qui sera présenté sous forme de tableau) et qu'un formulaire s'ouvre afin qu'on puisse soit modifier les données soit supprimer le fichier. Ci dessous une petite explication de ce script :
"Script supprimer
Une fois que l'utilisateur clique sur supprimer
Si le fichier est présent dans un des jours de la semaine
Alors Afficher «Etes vous sûr de vouloir supprimer ce fichier?
Attention ce fichier est présent dans votre planning !»
Sinon Afficher «Etes vous sûr de vouloir supprimer ce fichier?»
Fin si
Si oui
Alors supprimer le fichier de la bibliothèque
Rafraîchir la bibliothèque (en supprimant le fichier)
Fermer la pop up
Sinon revenir sur la pop up de saisie du fichier sans suppression
Fin si"
Si quelqu'un peut m'aider car je ne sais pas comment m'y prendre.
Merci
JoJo738
Messages postés1267Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention29 juin 20102 13 juin 2008 à 11:03
Hello,
En fait le problème vient du fait que le script tente de supprimer le fichier $path.$a.$fichier_suppr qui est en fait (pour mardi par exemple) :
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 13 juin 2008 à 11:50
salut
tu rends les choses complexes... c'est il faut que ton php genere un javascript qui genere un formulaire qui pointe vers un php qui supprime tes fichiers...
mymydu42
Messages postés39Date d'inscriptionmercredi 4 juin 2008StatutMembreDernière intervention18 juin 2008 13 juin 2008 à 12:15
Si quand je lance le script
ça me met un truc du genre :
<li>C:/Program Files/EasyPHP 2.0b1/www/waitingroom//bibliotheque/nouveau.pps SUPPRIME</li><li>C:/Program Files/EasyPHP 2.0b1/www/waitingroom//lundi/nouveau.pps SUPPRIME</li><li>C:/Program Files/EasyPHP 2.0b1/www/waitingroom//mardi/nouveau.pps SUPPRIME</li><li>C:/Program Files/EasyPHP 2.0b1/www/waitingroom//mercredi/nouveau.pps SUPPRIME</li><li>C:/Program Files/EasyPHP 2.0b1/www/waitingroom//jeudi/nouveau.pps SUPPRIME</li><li>C:/Program Files/EasyPHP 2.0b1/www/waitingroom//vendredi/nouveau.pps SUPPRIME</li><li>C:/Program Files/EasyPHP 2.0b1/www/waitingroom//samedi/nouveau.pps SUPPRIME</li><li>C:/Program Files/EasyPHP 2.0b1/www/waitingroom//dimanche/nouveau.pps SUPPRIME</li>
et quand je clique sur supprimer ça me met :
<li>Le fichier C:/Program Files/EasyPHP 2.0b1/www/waitingroom//bibliotheque/nouveau.pps n'existe pas</li><li>Le fichier C:/Program Files/EasyPHP 2.0b1/www/waitingroom//lundi/nouveau.pps n'existe pas</li><li>Le fichier C:/Program Files/EasyPHP 2.0b1/www/waitingroom//mardi/nouveau.pps n'existe pas</li><li>Le fichier C:/Program Files/EasyPHP 2.0b1/www/waitingroom//mercredi/nouveau.pps n'existe pas</li><li>Le fichier C:/Program Files/EasyPHP 2.0b1/www/waitingroom//jeudi/nouveau.pps n'existe pas</li><li>Le fichier C:/Program Files/EasyPHP 2.0b1/www/waitingroom//vendredi/nouveau.pps n'existe pas</li><li>Le fichier C:/Program Files/EasyPHP 2.0b1/www/waitingroom//samedi/nouveau.pps n'existe pas</li><li>Le fichier C:/Program Files/EasyPHP 2.0b1/www/waitingroom//dimanche/nouveau.pps n'existe pas</li>
Je suppose que ça met ça car les fichiers viennent d'être effacer au lancement du script.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 13 juin 2008 à 14:53
tout en haut, met :
echo 'vous allez supprimer le fichier ..... du';
$i=0;
ensuite remplace :
echo '<li>vous allez supprimer ', $f,'</li>';
par
if (($i++)!=0) echo ', ';
echo $a;
JoJo738
Messages postés1267Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention29 juin 20102 13 juin 2008 à 17:41
Slut;
la syntaxe if(($i++) != 0) echo ','; dit que tant que $i est différent de 0, on affiche une virgule. Donc, pour les fichiers n°1, 2, 3, 4 ... (et pas le n°0). Le fait de faire $i++ c'est comme faire $i += 1 mais cela après le test
Par contre, si tu fais ++$i, c'est la même chose, sauf que $i est incrémenté avant le test.
Sinon, j'ai fais une version un peu plus compliqué :
if( count($msg['is_del']) <> 0 )
{
echo 'Le fichier ', $fichier_suppr, ' à été supprimé dans les repertoires suivants : ', implode(', ', $msg['is_del']);
}
if( count($msg['error_del']) <> 0 )
{
echo 'Erreur ! : Impossible de supprimer le fichier ', $fichier_suppr, ' dans les repertoires suivants : ', implode(', ', $msg['error_del']);
}
if( count($msg['not_exists']) <> 0 )
{
echo 'Information ! : Le fichier ', $fichier_suppr, ' n\'existe pas dans les repertoires suivants : ', implode(', ', $msg['not_exists']);
}
?>
Ici, j'utilise un tableau pour stocker les informations, et le implode(', ' array()); l'affiche en mettant automatiquement une virgule.
<hr />Si ma reponse te convient, merci de l'accepter !
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 12 juin 2008 à 10:00
salut
tout d'abord, la premiere question que j'ai a te poser c'est :
- pourquoi refuses tu d'utiliser une base de donnee ?
ensuite, pour supprimer un fichier : unlink
ensuite, pour supprimer un dossier : rmdir
pour creer un dossier : mkdir
pour creer un fichier : touch
pour savoir si un fichier existe : file_exists, ou tout simplement is_file
pour savoir si un dossier existe : is_dir
sinon, je ne vois pas trop quoi t'expliquer, a part te dire que ce sont tes forms et liens qui doivent gerer les enchainements que tu mis entre "si", "fin si" et tes actions doivent-etre faits en php sur les pages cibles (action=...) de ces formulaires
mais j'imagine que ca tu le savais deja...
si t'avais une question un peu plus precise on pourrait vraiment t'aider... ou si t'avais un probleme dans un code... mais la...
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 12 juin 2008 à 10:23
c'est triste...
ca rend les choses beaucoup plus lentes, complexes, et instables...
je ne sais pas si c'est portable ou meme fiable, mais un conseil : lock tes fichiers quand tu fais une operation dessus.
le but : eviter que deux operations sur un meme fichier se fassent en meme temps... ca pourrait avoir des consequences desastreuses (j'ai deja eu ce genre de problemes...)
mymydu42
Messages postés39Date d'inscriptionmercredi 4 juin 2008StatutMembreDernière intervention18 juin 2008 12 juin 2008 à 10:53
Tu peux me montrer un exemple de code avec cette fonction unlink() car
je vois pas trop comment faire pour supprimer un fichier de la
bibiliothèque par exemple et en même temps supprimer ce fichier de tous
les jours de la semaine ou il se trouve.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 12 juin 2008 à 11:12
unlink('fichier') or die('erreur de suppression de fichier ligne '__LINE__);
unlink('lundi/fichier') or die('erreur de suppression de fichier ligne '__LINE__);
unlink('mardi/fichier') or die('erreur de suppression de fichier ligne '__LINE__);
unlink('mercredi/fichier') or die('erreur de suppression de fichier ligne '__LINE__);
...
tu peux faire un array pour simplifier la tache...
a la place du or die, si tu te sens d'attaque, tu peux utiliser les Exceptions...
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 12 juin 2008 à 11:34
le principe : on essaie de faire une chose, et si on echoue, alors on peut recuperer une exception dans un bloc.
try{
... instructions qui peuvent echouer
}catch (Exception $e){
... utilisation de l'exception
}
pour echouer, on leve une exception : throw new Exception('message');
l'exception levee, elle quitte tout les appels de fonctions jusqu'a trouver un catch qui la couvre.
ensuite, Exception, c'est une classe, donc on peut faire des classes enfant :
class MonException extends Exception{
...
}
et ca permet de recuperer dans un catch plusieurs types d'Exceptions :
try{
... instructions qui peuvent echouer
}catch (MonException $e){
...
}catch (Exception $e){
...
}
mymydu42
Messages postés39Date d'inscriptionmercredi 4 juin 2008StatutMembreDernière intervention18 juin 2008 12 juin 2008 à 13:46
Voila un code es ce que ça va comme ça?
<?php
$fichier_suppr="classeur.txt"
unlink($fichier_suppr);
if (file_exists(C:/Program Files/EasyPHP 2.0b1/www/waitingroom/bibliotheque/$fichier_suppr))/*Le fichier existe dans le planning*/
{
unlink($fichier_suppr)
}
if (file_exists(C:/Program Files/EasyPHP 2.0b1/www/waitingroom/lundi/$fichier_suppr))/*Le fichier existe dans le planning*/
{
unlink($fichier_suppr)
}
if (file_exists(C:/Program Files/EasyPHP 2.0b1/www/waitingroom/mardi/$fichier_suppr))/*Le fichier existe dans le planning*/
{
unlink($fichier_suppr)
}
if (file_exists(C:/Program Files/EasyPHP 2.0b1/www/waitingroom/mercredi/$fichier_suppr))/*Le fichier existe dans le planning*/
{
unlink($fichier_suppr)
}
if (file_exists(C:/Program Files/EasyPHP 2.0b1/www/waitingroom/jeudi/$fichier_suppr))/*Le fichier existe dans le planning*/
{
unlink($fichier_suppr)
}
if (file_exists(C:/Program Files/EasyPHP 2.0b1/www/waitingroom/vendredi/$fichier_suppr))/*Le fichier existe dans le planning*/
{
unlink($fichier_suppr)
}
if (file_exists(C:/Program Files/EasyPHP 2.0b1/www/waitingroom/samedi/$fichier_suppr))/*Le fichier existe dans le planning*/
{
unlink($fichier_suppr)
}
if (file_exists(C:/Program Files/EasyPHP 2.0b1/www/waitingroom/dimanche/$fichier_suppr))/*Le fichier existe dans le planning*/
{
unlink($fichier_suppr)
}
?>
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 12 juin 2008 à 14:16
non, tu as oublie des quotes, et on peut faire beaucoup plus court :
$path='C:/Program Files/EasyPHP 2.0b1/www/waitingroom/';
$ar=array('./', 'lundi', 'mardi', // met ici les autres jours de la semaine
);
foreach ($ar as $a){
$f=$path.$a.$fichier_suppr;
if (file_exists($f)) unlink($f);
}