IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Affichage des fichiers uploadés de cette année uniquement


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    BTS SIO
    Inscrit en
    Janvier 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Janvier 2015
    Messages : 53
    Points : 14
    Points
    14
    Par défaut Affichage des fichiers uploadés de cette année uniquement
    Bonjour a tous,

    voila j'ai une petite question je voudrai afficher les documents actuel et futur qui sont présent dans un dossier d'upload
    j'ai ce code la et il me renvois tout les fichiers même ceux de 2014 alors que je n'en veux pas comment corriger cela ??

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <?php
     
    $dir_nom = ("uploads/test/"); // dossier listé (pour lister le répertoir courant : $dir_nom = '.'  --> ('point')
    $dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant
    $fichier= array(); // on déclare le tableau contenant le nom des fichiers
     
     
    while($element = readdir($dir)) {
    	if($element != '.' && $element != '..') {
    		if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
    		else {$dossier[] = $element;}
    	}
    }
     
    closedir($dir);
     
    function mois($mois)
    {
     
        switch($mois)
        {
            case 01 : $mois = "Janvier";
            break;
            case 02 : $mois = "Février";
            break;
            case 03 : $mois = "Mars";
            break;
            case 04 : $mois = "Avril";
            break;
            case 05 : $mois = "Mai";
            break;
            case 06 : $mois = "Juin";
            break;
            case 07 : $mois = "Juillet";
            break;
            case 08 : $mois = "Aout";
            break;
            case 09 : $mois = "Septembre";
            break;
            case 10 : $mois = "Octobre";
            break;
            case 11 : $mois = "Novembre";
            break;
            case 12 : $mois = "Décembre";
            break;
        }
     
        return $mois;
     
    }
     
    function nomfichier($nomfichier)
    {
     
        switch($nomfichier)
        {
            case "age.pdf" :  $nomfichier = "Menus personnes âgées";
            break;
            case "scolaire.pdf" : $nomfichier = "Menus scolaire";
            break;
            case "self.pdf" : $nomfichier = "Menu semaine";
           break;
        }
     
        return $nomfichier;
     
    }
     
    if(!empty($fichier)){
    	sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
    	echo "Liste des fichiers accessibles dans $dir_nom' : \n\n<br /><br />";
                                foreach($fichier as $lien){
                                //$date  = substr($lien,0, 4);
                                //list($year, $month, $text, $extension) = split('[.-]', $lien);
                                $fichier = explode("-", $lien);
     
     
    $month = Date('m');
    $annee = Date('Y');
     
    if ($annee<=($fichier[0])) {
        if ($month<=($fichier[1]))
     
     
    if(isset($fichier[3])) {
    ($semaine = Date('d'));
     
       if ($semaine-$fichier[2]>5){
     
     
            echo "<a href=\"$dir_nom/$lien \">".nomfichier($fichier[3])." du ".$fichier[2]." ".mois($fichier[1])." ".$fichier[0]."</a><br />";
    }       }
    }
    else
    echo "<a href=\"$dir_nom/$lien \">".nomfichier($fichier[2])." ".mois($fichier[1])." ".$fichier[0]."</a><br />";
                                    }
    		}
    ?>

  2. #2
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Bonjour,

    Je n'ai pas regardé en détails mais cette portion de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($fichier as $lien){
                                //$date  = substr($lien,0, 4);
                                //list($year, $month, $text, $extension) = split('[.-]', $lien);
                                $fichier = explode("-", $lien);
    Tu parcours ton tableau $fichier, puis juste après tu initialises une variable $fichier. Il va y avoir un conflit entre les deux variables qui ne sont pas censés être les mêmes, crée toi une variable avec un nom différent pour éviter les problèmes lors du parcours de ton tableau

  3. #3
    Membre à l'essai
    Femme Profil pro
    BTS SIO
    Inscrit en
    Janvier 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Janvier 2015
    Messages : 53
    Points : 14
    Points
    14
    Par défaut
    Bonjour Rpass

    merci de prendre du temps pour me répondre

    si je comprend bien a la place de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier = explode("-", $lien);
    je doit mettre par exemple $resultat ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    voila c'est ça puis tu te sers de cette variable pour effectuer ton traitement et afficher le lien de ton fichier

  5. #5
    Membre à l'essai
    Femme Profil pro
    BTS SIO
    Inscrit en
    Janvier 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Janvier 2015
    Messages : 53
    Points : 14
    Points
    14
    Par défaut
    ok ok c fait maintenant le soucis ca va etre pour que seul les fichiers actuel et futur s'affiche parce que la j'ai tout les fichier datant de 2014 qui réaparaisse :'(

  6. #6
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    d'accord je vois qu'effectivement ici tu fais un test sur l'année :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $month = Date('m');
    $annee = Date('Y');
     
    if ($annee<=($fichier[0]))
    du coup si l'année est superieure a l'année actuelle tu entres dans la boucle ok
    Mais ensuite tu as un else
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    else
    echo "<a href=\"$dir_nom/$lien \">".nomfichier($fichier[2])." ".mois($fichier[1])." ".$fichier[0]."</a><br />";
                                    }
    		}
    du coup même si l'année est inférieure tu affiches le lien ^^
    je dirais que ça vient de la , aussi si je peux me permettre je te conseiller d'utilise DateTime (http://php.net/manual/fr/class.datetime.php)
    pour manipuler les dates.

  7. #7
    Membre à l'essai
    Femme Profil pro
    BTS SIO
    Inscrit en
    Janvier 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Janvier 2015
    Messages : 53
    Points : 14
    Points
    14
    Par défaut
    en fait j'ai un else a cause du fait que j'ai soit 4 paramètre soit 3 paramètre a afficher.
    Par contre je voit pas pourquoi le datetime désolé mais je ne trouvais pas cette solution adapté a mon algorithme de départ
    si??? ça l'est??

  8. #8
    Modérateur
    Avatar de BakSh0
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 276
    Points : 1 271
    Points
    1 271
    Par défaut
    Regarde deux seconde ton code, en effet si la date n'est pas supérieure ou égale à celle actuelle tu fait ton traitement, mais quand tu passe dans ton else l'année n'est plus supérieure ou égale à l'année actuelle donc il ne faut pas l'afficher

    donc tu ne dois pas faire d'affichage dans ton else

  9. #9
    Membre à l'essai
    Femme Profil pro
    BTS SIO
    Inscrit en
    Janvier 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Janvier 2015
    Messages : 53
    Points : 14
    Points
    14
    Par défaut
    en faite si je dois l'afficher comme cela la personne sera sure que ce sera les menu de la bonne année mais cela servira surtout pour les changement d'année...

  10. #10
    Modérateur
    Avatar de BakSh0
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 276
    Points : 1 271
    Points
    1 271
    Par défaut
    il me renvois tout les fichiers même ceux de 2014 alors que je n'en veux pas
    en faite si je dois l'afficher
    Il faudrait savoir ce que tu veux. Pour ce problème, enlève l'affichage dans ton else

  11. #11
    Membre à l'essai
    Femme Profil pro
    BTS SIO
    Inscrit en
    Janvier 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Janvier 2015
    Messages : 53
    Points : 14
    Points
    14
    Par défaut
    et bien que seul les année actuelle et future s'affiche et que les mois actuel et future safiche mais je dois bien specififie la date en entier dans mon echo

  12. #12
    Modérateur
    Avatar de BakSh0
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 276
    Points : 1 271
    Points
    1 271
    Par défaut
    Donc au risque de me répéter pour la 3ème fois efface ton else
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Lignes à supprimer :
    else
    echo "<a href=\"$dir_nom/$lien \">".nomfichier($fichier[2])." ".mois($fichier[1])." ".$fichier[0]."</a><br />";

  13. #13
    Membre à l'essai
    Femme Profil pro
    BTS SIO
    Inscrit en
    Janvier 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Janvier 2015
    Messages : 53
    Points : 14
    Points
    14
    Par défaut
    mais alors quand j'aurais uniquement 3 paramètre je pourrais pas les afficher si??

  14. #14
    Modérateur
    Avatar de BakSh0
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 276
    Points : 1 271
    Points
    1 271
    Par défaut
    Mais le else en question n'a rien à voir avec tes paramètres mais avec ta condition : 'si l'année est inférieure ou égale à l'année actuelle', si oui on affiche sinon alors 'On ne fait pas d'affichage' (else)

  15. #15
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    en fait je pense que tu t'es trompé dans l'emplacement de ton else. Il doit être placer sur ton test sur le nom du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($fichier[3])) {
    or la il est placé sur le test de l'année d'ou ton problème

  16. #16
    Membre à l'essai
    Femme Profil pro
    BTS SIO
    Inscrit en
    Janvier 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Janvier 2015
    Messages : 53
    Points : 14
    Points
    14
    Par défaut
    j'ai suppr le else ba la j'ai plus rien du tout

  17. #17
    Modérateur
    Avatar de BakSh0
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 276
    Points : 1 271
    Points
    1 271
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if ($annee<=($fichier[0])) {
    	if ($month<=($fichier[1])) {
    		if(isset($fichier[3])) {
    			$semaine = Date('d');
    			if ($semaine-$fichier[2]>5){
    				echo "<a href=\"$dir_nom/$lien \">".nomfichier($fichier[3])." du ".$fichier[2]." ".mois($fichier[1])." ".$fichier[0]."</a><br />";
    			}       
    		}
    		else
    			echo "<a href=\"$dir_nom/$lien \">".nomfichier($fichier[2])." ".mois($fichier[1])." ".$fichier[0]."</a><br />";
    	}
    }

  18. #18
    Membre à l'essai
    Femme Profil pro
    BTS SIO
    Inscrit en
    Janvier 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Janvier 2015
    Messages : 53
    Points : 14
    Points
    14
    Par défaut
    attendez on s’excite pas voila mon algo de départ

    si année<= anne fichier
    si mois <= mois fichier
    alors afficher les liens vers fichiers avec 3 parametre (menu du mois de - mois- annee )

    si date <= date fichier
    alors afficher les lien vers fichier avec 4 parametre (menu de la semaine du - date - mois - annee)



    voila pourquoi j'avais fait fait un else parce que j'ai les menu semaine et les menu par mois



    et voila pourquoi jai besoin des années

  19. #19
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    D'après ce que je comprends de ton code, la date est inscrite dans le nom du fichier ?

  20. #20
    Membre à l'essai
    Femme Profil pro
    BTS SIO
    Inscrit en
    Janvier 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Janvier 2015
    Messages : 53
    Points : 14
    Points
    14
    Par défaut
    oui effectivement j'ai oublier de signaler que mon fichier est ecrit comme cela

    anne - mois - menu scolaire ou agé
    et
    anne - mois - jour - semaine

    désolé j'ai completement oublier de le signaler

    jai ressayer l'histoire du else BakSh0
    ca fonctionne mais la ou j'ai 4 parametre cela ne s'affiche pas

    comment devrai-je faire??

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème affichage des fichiers cachés
    Par OphyTe dans le forum Windows XP
    Réponses: 4
    Dernier message: 28/02/2008, 10h07
  2. affichage des fichiers
    Par g0up1l dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 25/04/2007, 13h47
  3. [Upload] Suppression auto des fichiers uploadés
    Par silver.spike dans le forum Langage
    Réponses: 5
    Dernier message: 09/03/2007, 11h27
  4. [CKEditor] taille maximale des fichiers uploadés
    Par Invité dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 03/12/2006, 11h38
  5. importer des fichiers mp3 avec sql server uniquement
    Par cool dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/04/2006, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo