begin process at 2010 02 10 10:42:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > BOUCLE POUR CALENDRIER

BOUCLE POUR CALENDRIER


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Niveau :Débutant Date de création :02/02/2005 Date de mise à jour :08/02/2005 22:54:26 Vu :4 097

Auteur : tuzz

Ecrire un message privé
Commentaire sur cette source (35)
Ajouter un commentaire et/ou une note

 Description

Voila j'avais cherché ici un script pour simple pour afficher un calendrier , j'en avais pas trouvé , je me suis donc décidé a développer mon code qui est assez court
[EDIT]
J'ai pris en compte les remarques de eXon
Merci à toi :)

Source

  • <?php
  • //Config
  • $mois = 2; //Mois en chiffre
  • $annee = 2005; //Annee en chiffre ( forme YYYY )
  • //Init en html
  • echo '<table>
  • <tr>
  • <td>L</td>
  • <td>M</td>
  • <td>M</td>
  • <td>J</td>
  • <td>V</td>
  • <td>S</td>
  • <td>D</td>
  • </tr>
  • <tr>';//Affichage des jours dans le tableau
  • $j = 0; //Initialisation des variables
  • $i = 1;
  • while($j<= date("t",mktime(0,0,0,$mois,1,$annee)) ) //boucle
  • {
  • echo '<td>';
  • if($j!=0) echo $j;
  • if($i==date("w",mktime(0,0,0,$mois,$j,$annee))) $j++;
  • echo '</td>';
  • if($i==0) echo '</tr><tr>';
  • $i++;
  • if($i==7) $i=0;
  • }
  • echo '</table>';
  • ?>
<?php
//Config
$mois = 2; //Mois en chiffre
$annee = 2005; //Annee en chiffre ( forme YYYY )
//Init en html
echo '<table>
            <tr>
             <td>L</td>
             <td>M</td>
             <td>M</td>
             <td>J</td>
             <td>V</td>
             <td>S</td>
             <td>D</td>
         </tr>
         <tr>';//Affichage des jours dans le tableau
$j = 0; //Initialisation des variables
$i = 1;
while($j<= date("t",mktime(0,0,0,$mois,1,$annee)) ) //boucle
{
echo '<td>';
if($j!=0) echo $j;
if($i==date("w",mktime(0,0,0,$mois,$j,$annee))) $j++;
echo '</td>';
if($i==0) echo '</tr><tr>';
$i++;
if($i==7) $i=0;
}
echo '</table>';
?>



 Historique

02 février 2005 14:20:21 :
02 février 2005 14:21:18 :
04 février 2005 18:35:34 :
07 février 2005 18:33:09 :
voila j'ai essayé de tenir compte des commentaires mis en dessous , merci beaucoup a vous tous ;)
07 février 2005 18:36:15 :
07 février 2005 18:39:35 :
08 février 2005 22:46:49 :
Merci beaucoup à malalam et à itris pour m'avoir signalé un gros bug :)
08 février 2005 22:54:26 :

 Sources de la même categorie

Source avec Zip Source avec une capture CALENDRIER + AGENDA TRÈS SIMPLE (GERER LES JOURS FÉRIÉS ET L... par mondherclubiste
Source avec Zip Source avec une capture CALENDRIER DES RÉSERVATIONS EN PHP par mathieubond
Source avec Zip GÉNÉRATEUR DE DATE DANS TOUTES LES LANGUES DU MONDE EN (PHP)... par abdelaziz_info
CALCULER LA PHASE DE LA LUNE - MOON PHASE par CristianCCDB
Source avec Zip Source avec une capture UN CALENDRIER SOUS LA FORME D'UN TABLEAU par d54

Commentaires et avis

Commentaire de eXon le 02/02/2005 14:13:49

remplace if($j==$t) $break=1 ; et while($break!=1) par simplement: while($j!=$t). Utilisation des shorts tag (<?) à évité. Utilise plutot <?php.

Commentaire de coucou747 le 02/02/2005 17:24:38

t'as des " qui sont là alors que les ' seraient plus rapides, et des concaténations avec des " c'est débile...

Commentaire de Anthomicro le 02/02/2005 20:20:04

Salut,

d'ailleurs quand une variable est égale à un chiffre ne mets pas de quotes.

$variable=3;

par exemple, et pas $variable='3'; ou encore pire $variable="3";

a +

Commentaire de samueldr le 04/02/2005 01:13:13

}
echo "</table>";
php?>
¯¯¯¯

Je crois qu'il faut mettre ?> à la fin, pas php?>
Si je me trompes, dites-le moi.

Commentaire de Anthomicro le 04/02/2005 16:52:46

Non tu ne te trompes pas ;-)

Commentaire de tuzz le 04/02/2005 18:26:08

excusez pour le php a la fin
mais j'utilise d'habitude les shortcuts ( raccourcis )
donc j'ai pas l'habitude de mettre les php , comme on m'a dit que c'était mieux de pas les utiliser ...
( faudrait qu'on m'explique pourquoi d'ailleurs )

Commentaire de Anthomicro le 04/02/2005 18:31:21

C'est une question de portabilité, <?php fonctionnera sur tous les serveurs, tandis que <? ne fonctionnera pas sur les serveurs où la directive short_open_tags est à Off

bref c'est ça :

<?php

?>

et pas :

<?php

php?>

a +

Commentaire de tuzz le 04/02/2005 18:36:45

autre chose tant que j'y suis pourquoi employé plus des ' que des " ?

Commentaire de Anthomicro le 04/02/2005 18:56:20

C'est plus propre (généralement) et plus rapide (tout le temps)

Commentaire de RDave le 06/02/2005 00:26:15

euh... c'est pas ça la différence ! Lisez l'exemple suivant :

$simple_quote='salut';
$double_quote='salut';

echo '$simple_quote'; // avec des '
echo '<br>';
echo "$double_quote"; avec des "

------------------
affichera :

$simple_quote
salut

Vous voyez que php interprète les variables qui sont entre " ce qui n'est pas le cas entre '.

Commentaire de samueldr le 06/02/2005 03:37:45

ermmmm... après avoir lu plein d'articles sur des sites à propos du PHP, je peux dire que ça aide à la vitesse d'éxécution de mettre des ' parce qu'il 'parse' le code différement.

J'en ai déduis que c'est qu'il n'a pas à vérifier si chaque sections de la ligne est une variable.

et... c'est pas hors-sujet ?!?

Commentaire de malalam le 06/02/2005 09:02:42 administrateur CS

RDave ->

oui mais si tu veux "echoer" une variable, tu vas de toutes facons faire :

echo $mavariable;

Donc effectivement, c'est plutot une question de proprete du code (rapidite...c'est tellement minime, et nos codes ne travaillent sans doute jamais sur d'assez gros volumes pour que ce soit significatif).
Exemple tout con pour la proprete :

echo "<table style=\"border : 1pt solid black\">"; -> moche, non ?

echo "<table style='border : 1pt solid black'>"; -> mauvais, en xhtml les attributs doivent etre entre double quotes.

echo '<table style="border : 1pt solid black">'; -> c'est mieux la, non ?


samueldr ->

voui :-) et je ne vois pas ou on pourrait discuter de ca de toutes facons, sur ce site, alors pourquoi pas ici!

Commentaire de coucou747 le 06/02/2005 10:41:51

"et nos codes ne travaillent sans doute jamais sur d'assez gros volumes pour que ce soit significatif"=> tout dépends de ce que tu paelles significatif...


Si t'as 25000 visiteurs par jour, alors ça compte, peu importe la longueur de ton fichier...

Commentaire de Anthomicro le 06/02/2005 12:15:26

Je confirme, d'ailleurs mieux vaut optimiser tout ce que tu peux, même si le gain est minime, ça compense en partie les lenteurs d'accès à MySQL par exemple...

Utiliser le moins de variables possibles, faire des connexions à MySQL les plus courtes possibles, utiliser echo avec des simples quotes au lieu de print avec des doubles, etc...

Commentaire de RDave le 06/02/2005 12:52:12

malalam

ouais c'est bien vrai tes exemple, d'ailleurs y me semble que mozilla non plus n'aime pas les attributs sans ".

Mais je dis quand meme que, et peut etre que ca aidera ce cher samuel, question simplicité ya des différences llorsque tu utilise des variables :

echo "<table style=\"border : $border pt solid black\">"; --> ici tu balance ta variable facilement au millieu du reste ($border)

echo '<table style="border : '.$border.' pt solid black">'; -> et là tu dois insérer ta var en dehors de la string entre simple quote (sinon elle ne serait pas évaluée, selon mon exemple là-haut), donc tu dois t'amuser avec des . de concatenation et des ' pour fermer et réouvrire ta string. En ce sens, c'est esthetiquement pas plus joli et pas plus simple que la solution avec "

mais en fin de compte je conseil effectivement cette dernière solution, je trouve que c'est moins le bordel et plus facile comprendre, surtout lorsque ta ligne de kode est hyper longue avec plein de var et d'attributs html =)

Commentaire de malalam le 07/02/2005 12:44:50 administrateur CS

coucou, Antho -> je ne suis pas certain que ca fasse une enorme difference a moins de travailler sur de bien plus gros volumes que ca. Il y a quelques articles a ce sujet d'ailleurs, ou plutot quelques avis d'experts.
Mais evidemment qu'il vaut toujours mieux optimiser et travailler proprement.
Je dis juste que la primeur doit etre de travailler proprement. Si on travaille proprement, le code sera optimise, pour la simple et bonne raison que c'est aux developpeurs de PHP de faire en sorte que leurs fonctions et la facon de les appeler soit optimisees. Bref...PHP doit s'optimiser tout seul.

Rdave -> rien a dire, lol, suis d'accord.

Commentaire de Anthomicro le 07/02/2005 18:06:37

PHP ne s'optimise pas tout seul vu qu'il est très permissif (de toute façon ça ne change pas grand chose, on peut coder d'une manière qui s'exécutera lentement avec un langage peu permissif). Bref non il faut optimiser tout, même si tu ne l'exécutes qu'une fois, le serveur est soulagé, et même si les gains se comptent en millièmes de secondes, c'est toujours ça de gagné.

a +

Commentaire de coucou747 le 07/02/2005 18:55:40

d'ailleurs y me semble que mozilla non plus n'aime pas les attributs sans ".


=> parlerais tu de js ?? si tu parles toujours de php, alors sache que Mozilla n'interprète pas le php...

Commentaire de tuzz le 07/02/2005 19:01:10

comme beaucoup d'autres Browser d'ailleurs ^^

Commentaire de samueldr le 08/02/2005 01:40:25

>d'ailleurs y me semble que mozilla non plus n'aime pas les
>attributs sans ".
>
>=> parlerais tu de js ?? si tu parles toujours de php, alors
>sache que Mozilla n'interprète pas le php...

non, les attributs html ex : < a href = 'http://www.adresse.com' > je crois que c'est ca son problème ;)

Commentaire de malalam le 08/02/2005 09:33:25 administrateur CS

-> coucou

plait-il ? ca m'etait destine ca ? Je parlais de php, pas de js, et comme le souligne tuzz, il y a effectivement beaucoup de browsers qui n'interpretent pas php...lol.
Et effectivement, je crois que de plus en plus de browser (IE mis a part, evidemment...) ralent pour les simples quotes. Et ce devrait etre tout le temps le cas si on pretend ecrire en xhtml.

Commentaire de RDave le 08/02/2005 11:30:07

non je parlais de firefox, je croyais que les attributs HTML sans " ne passaient pas, pourtant je viens d'essayer, ca marche... je comprends plus là...

ex
<table width=200 border=1>

ou
<table width="200" border="1">

--> les deux fonctionnent avec IE et firefox

Commentaire de itris le 08/02/2005 13:45:25

Que de blabla pour un bout de code !!!

Mais quelqu'un aura-t-il le même blême que moi c.-à-d. que le script m'affiche le mois - le dernier jour du mois...

Par exemple pour 02/2005 le mois affiché vas jusqu'au 27 ??? Etonnant non ?

?

Commentaire de malalam le 08/02/2005 14:20:31 administrateur CS

Ah ben oui tien.

Il n'allait pas au bout dans sa boucle sur $j, on n'avait jamais $j==$t.

Correction :

<?php
//Config
$mois = 2; //Mois en chiffre
$annee = 2005; //Annee en chiffre ( forme YYYY )
//Init en html
echo '<table>          
            <tr>
             <td>L</td>
             <td>M</td>
             <td>M</td>
             <td>J</td>
             <td>V</td>
             <td>S</td>
             <td>D</td>
         </tr>
         <tr>';//Affichage des jours dans le tableau
//boucle
$t = date("t",mktime(0,0,0,$mois,1,$annee)); // Nombre de jours dans le mois
$j = 0;  //Initialisation des variables
$i = 1;
while($j<=$t)
{
echo '<td>';
if($j!=0) echo $j;
if($i==date("w",mktime(0,0,0,$mois,$j,$annee))) $j++;
echo '</td>';
if($i==0) echo '</tr><tr>';
$i++;
if($i==7) $i=0;
}
echo '</table>';
?>

Commentaire de coucou747 le 08/02/2005 18:41:31

pour les ' firefox n'est pas si nul que ça... (j'irais même jusqu'a dire que c'est le meilleur...)...


Et Mozilla "interprète" selon les versions certaines parties de code php...

Commentaire de BruNews le 08/02/2005 19:08:28 administrateur CS

http://news.netcraft.com/archives/2005/02/07/nonmicrosoft_browsers_have_spoofing_flaw.html

Commentaire de samueldr le 09/02/2005 06:35:34

errmmm... j'y pense, ça fait depuis que je l'ai essayé (assez longtemps en fait) que je voulais demander quelquechose... lorsqu'on est comme moi, québecois, nos semaines commencent le dimanche. ( D L M M J V S ) pour mettre les noms des jours, je n'ai aucun probleme ;) mais, pour mettre les jours décalés d'un, là je planche... je ne me suis pas replongé dans le code apres avoir vu ça, mais je planchait.

si quelqu'un peut m'aider, ça me ferait plaisir ;)

ou encore, faire le script adaptable pour diverses situations.

Merci :)

Commentaire de tuzz le 09/02/2005 10:21:05

Il faut changer les valeurs de i $<?php
//Config
$mois = 2; //Mois en chiffre
$annee = 2005; //Annee en chiffre ( forme YYYY )
//Init en html
echo '<table>
            <tr>
             <td>D</td>
             <td>L</td>
             <td>M</td>
             <td>M</td>
             <td>J</td>
             <td>V</td>
             <td>S</td>
         </tr>
         <tr>';//Affichage des jours dans le tableau
$j = 0; //Initialisation des variables
$i = 1;
while($j<= date("t",mktime(0,0,0,$mois,1,$annee)) ) //boucle
{
echo '<td>';
if($j!=0) echo $j;
if($i==date("w",mktime(0,0,0,$mois,$j,$annee))) $j++;
echo '</td>';
if($i==7) echo '</tr><tr>';
$i++;
if($i==0) $i=0;
}
echo '</table>';
?>

Je ne suis pas chez moi , donc je ne peux pas terster mais a priori ça devrait fonctionner ;)

Commentaire de tuzz le 09/02/2005 10:22:34

zut il faut aussi cette ligne :
if($i==0)  $i=0;
par  : if($i==0) $i=7;

Commentaire de samueldr le 10/02/2005 06:47:10

Héhé, tuzz, ton code pour 'moi' ne fonctionnait pas, il me mettait une boucle infinie...
Mais, j'ai travaillé, je me suis mis les mains dans le code et j'ai fait un semblant de code... c'est TRÈS moche, j'aurais besoin d'aide pour corriger le code pour qu'il soit mieux (en gros, il y a des -1 et des +1) mais, le code fonctionne très bien.
à noter : le code a été retravaillé pour montrer la journé PRÉSENTE en gras ;P

<?php
//Config
$mois = date('n'); //Mois en chiffre
$annee = date('Y'); //Annee en chiffre ( forme YYYY )
//Init en html
echo '<table>
            <tr>
             <td>D</td>
             <td>L</td>
             <td>M</td>
             <td>M</td>
             <td>J</td>
             <td>V</td>
             <td>S</td>
         </tr>
         <tr>';//Affichage des jours dans le tableau
$j = 0; //Initialisation des variables
$i = 1;
while($j<= (date('t',mktime(0,0,0,$mois,1,$annee))+1) ) //boucle
{
echo '<td>';
if($j!=0 && $j-1!=0) {
if ($j-1==date('j')) echo '<b>'.($j-1).'<b>';
else echo $j-1;
}
if($i==date('w',mktime(0,0,0,$mois,$j,$annee))) $j++;
echo '</td>';
if($i==0) echo '</tr><tr>';
$i++;
if($i==7) $i=0;
}
echo '</table>';
?>

houlala !

Commentaire de Anthomicro le 12/02/2005 13:14:32

Salut,

les cellules d'en tête dans un tableau se différencient des cellules du corps du tableau.

En l'occurence tu peux remplacer ce petit bout de code :

            <tr>
             <td>L</td>
             <td>M</td>
             <td>M</td>
             <td>J</td>
             <td>V</td>
             <td>S</td>
             <td>D</td>
         </tr>

par ça :

<tr>
             <th>L</th>
             <th>M</th>
             <th>M</th>
             <th>J</th>
             <th>V</th>
             <th>S</th>
             <th>D</th>
</tr>

Commentaire de coucou747 le 12/02/2005 13:27:00

Pour ceci :
"http://news.netcraft.com/...have_spoofing_flaw.html"

C'est uniquement les URLS visibles, mais c'est inutile de les coder car en général, les identifications se font par post...

de toute façon, ça se balade en clair dans le réseau que l'on soit sous IE ou Firefox...

C'est pas ce que j'apelle une faille, c'est juste une barre d'adresse modifié coté USER, c'est pas une solution de sécuritée

Pour avoir de la sécuritée, faut être en HTTPS ou alors faire un peu de md5 en js avant l'envoi du mot de passe...

c'est faisable ça, mais je ne sais pas comment faire du md5 en js... Domage, ça permetrais à tout le monde d'être en parfaite sécuritée...

Commentaire de coucou747 le 12/02/2005 13:29:08

8 mises à jours en 6 jours, et on trouve encore un :

"t"

qui devrait être remplacé par un 't'...

Commentaire de Anthomicro le 12/02/2005 17:55:51

et un "w" qui devrait être remplacé par un 'w' ^^

Commentaire de coucou747 le 12/02/2005 18:54:47

exact...

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,480 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales