Calendrier ne marche pa en LOCAL mais marche en ligne

cs_lilab Messages postés 7 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 11 avril 2006 - 28 mars 2006 à 11:23
tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008 - 11 avril 2006 à 13:37
bonjour tou le monde voici mon probleme

J'ai un formulaire en php qui me permet d'enregistrer des données sur des personnes ou des evenement; jai un champ qui permet de selectionner par le biais d'un calendrier une date (jj mois aaaa). ainsi je fais appel à un fichier calendrier.php qui se trouve a la racine de a la racine de mon repertoire web

Lorsque je teste mon application en ligne ; je n'ai pa de probleme pour selectionner la date que je veux enregistrer ça marche nikel par contre en local le calendrier reste bloké qur la date du jour impossible de selectionner un autre jour

dc voila jutilise easy-php version 1.8 et je me connecte en localhost

si vous avez une idée concernant l'erreur merci de m'en informer

++

9 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 mars 2006 à 12:32
Hello,

impossible de te dire quoi que ce soit sans code.
0
cs_lilab Messages postés 7 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
28 mars 2006 à 14:29
ok desolé c vrai que sans code c pas évident
En fait il s'agit d'une application intranet dont l'objectif est de gérer grâce à une base de données mysql differentes données concernant des personnes, des evenements etc ....

le soucis c que le calendrier n'est pas fonctionnelle en local , dailleurs j'ai d'autres bugs qui apparaissent en local mais on ne les voit pas sur serveur
merci de jeter un oeil à mon code pour le pb du calendrier

J'ai un fichier fonctions.php contenant entre autre une fonction renvoyant la date :

// -------------------------------------------------------------------------------------------------
// Fonction renvoyant la date au format complet (samedi 07 janvier 2006 par exemple)
// -------------------------------------------------------------------------------------------------
function date_courante($id_jour,$num_jour,$id_mois,$annee){
if ($id_jour != "") {
//Choix du jour en fonction de l'id du jour et concaténation
if($id_jour==0){
$date="Dimanche";
}elseif($id_jour==1){
$date="Lundi";
}elseif($id_jour==2){
$date="Mardi";
}elseif($id_jour==3){
$date="Mercredi";
}elseif($id_jour==4){
$date="Jeudi";
}elseif($id_jour==5){
$date="Vendredi";
}elseif($id_jour==6){
$date="Samedi";
}
$date.=" ".$num_jour;
}
else {
$date=" ".$num_jour;
}
//Choix du mois en fonction de l'id du mois et concaténation
if($id_mois==1){
$date.=" Janvier";
}elseif($id_mois==2){
$date.=" Février";
}elseif($id_mois==3){
$date.=" Mars";
}elseif($id_mois==4){
$date.=" Avril";
}elseif($id_mois==5){
$date.=" Mai";
}elseif($id_mois==6){
$date.=" Juin";
}elseif($id_mois==7){
$date.=" Juillet";
}elseif($id_mois==8){
$date.=" Août";
}elseif($id_mois==9){
$date.=" Septembre";
}elseif($id_mois==10){
$date.=" Octobre";
}elseif($id_mois==11){
$date.=" Novembre";
}elseif($id_mois==12){
$date.=" Décembre";
}
$date.=" ".$annee;
//Renvoi de la date
return $date;
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
un fichier /////////calendrier.php:///////////

<?
include("../inc/fonctions.php");
//Config.
$daybgcolor="#aaaaaa" ; // Couleur des jours de la semaine
$dombgcolor="#eeeeee" ; // Couleur du jour sélectionné
$error01 = "Erreur : date invalide";
// Mois
$month = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
// Première lettre des jours de la semaine
$day = array('D','L','M','M','J','V','S');
?>


<style>
#general
{
font-family: Arial;
font-size: 10pt;
}

a:link,a:active,a:visited
{
text-decoration:none;
color:#000000;
}

a:hover
{
text-decoration:underline;
color:#000000;
}
</style>


<script language='JavaScript'>
window.onload = initWindow;

//Initialise la taille et la position de la fenêtre Calendrier
function initWindow ()
{
var largeur=screen.availWidth;
var hauteur=screen.availHeight;

var demiL=((largeur-470)/2);
var demiH=((hauteur-320)/2);

window.resizeTo(200,270) ;
window.moveTo(demiL,demiH);

}

//Fonction de mise à jour du calendrier en fonction du mois ou de l'année sélectionné
function modifier (jour)
{
window.location.href="calendrier.php?mois="
+document.forms["calendrier"].elements['month'].options[document.forms["calendrier"].elements['month'].selectedIndex].value
+"&jour=" + jour +"&annee="
+document.forms["calendrier"].elements['year'].options[document.forms["calendrier"].elements['year'].selectedIndex].value;
returnDate(jour);
}

function returnDate (jour)
{
//alert(document.forms["calendrier"].elements['year'].options[document.forms["calendrier"].elements['year'].selectedIndex].value);
//alert(document.forms["calendrier"].elements['month'].options[document.forms["calendrier"].elements['month'].selectedIndex].value);
//alert(document.forms["calendrier"].elements['month'].options[document.forms["calendrier"].elements['month'].selectedIndex].value);
/*
window.opener.document.forms["evenement"].elements["strDate"].value= date;
//window.opener.document.forms["evenement"].elements["numDate"].value= <? echo $annee.'-'.$mois.'-'.$jour; ?>;
window.close();
*/
}

<?
if (!isset($jour))
$jour = date("j") ;

if (!isset($mois))
$mois = date("m") ;

if (!isset($annee))
$annee = date("Y") ;

// nombre de jours par mois
$nbjmonth[0] = 31 ;
$nbjmonth[1] = ($annee%4==0?($annee%100==0?($annee%400?29:28):29):28) ;
$nbjmonth[2] = 31 ;
$nbjmonth[3] = 30 ;
$nbjmonth[4] = 31 ;
$nbjmonth[5] = 30 ;
$nbjmonth[6] = 31;
$nbjmonth[7] = 31 ;
$nbjmonth[8] = 30 ;
$nbjmonth[9] = 31 ;
$nbjmonth[10] = 30 ;
$nbjmonth[11] = 31 ;

if(!checkdate($mois,$jour,$annee))
{
echo "alert('$error01')\n" ;
$jour = date("j") ;
$mois = date("m") ;
$annee = date("Y") ;
}

// Calcul du jour julien et du numéro du jour
$HR = 0;
$GGG = 1;
if( $annee < 1582 ) $GGG = 0; if( $annee <1582 && $mois < 10 ) $GGG 0; if( $annee <1582 && $mois 10 && 1 < 5 ) $GGG = 0;
$JD = -1 * floor(7 * (floor(($mois + 9) / 12) + $annee) / 4);
$S = 1;
if (($mois - 9)<0) $S=-1;
$A = abs($mois - 9);
$J1 = floor($mois + $S * floor($A / 7));
$J1 = -1 * floor((floor($J1 / 100) + 1) * 3 / 4);
$JD = $JD + floor(275 * $mois / 9) + 1 + ($GGG * $J1);
$JD = $JD + 1721027 + 2 * $GGG + 367 * $annee - 0.5;

$jj = (($JD+.5)%7) ;
?>
</script>


<form name='calendrier'>
<!-- Affichage de la sélection du mois et de l'année -->
<select name="month" onChange="modifier(<? echo $jour; ?>); ">
<?
for ($i=0;$i<12;$i++)
{
echo "<option value='".($i+1)."'".($mois==($i+1)?" selected":"").">".$month[$i]."</option>\n" ;
}
?>
</select>,
<select name="year" onChange="modifier(<? echo $jour; ?>); ">
<?
$y = date("Y") ;
for ($i=$y;$i<$y+20;$i++)
{
echo "<option value='$i'".($annee==($i)?" selected":"").">$i</option>\n" ;
}
?>
</select>,

----
&nbsp;,
----

<table width='100%' cellspacing='0' cellspading='0' border='0'>
----

<?
// Affichage des jours
for($i=0;$i<7;$i++)
{
echo ", \".$day[$i].\"
</td>\" ;
}
?>

----

<?
// Première ligne des jours
$j = $jj ;
$dom = 1 ;
for ($i=0;$i<7;$i++) {
if ($j<=$i) {
echo \"[calendrier.php?mois= ;
window.close();
*/
}

<?
if (!isset($jour))
$jour = date("j") ;

if (!isset($mois))
$mois = date("m") ;

if (!isset($annee))
$annee = date("Y") ;

// nombre de jours par mois
$nbjmonth[0] = 31 ;
$nbjmonth[1] = ($annee%4==0?($annee%100==0?($annee%400?29:28):29):28) ;
$nbjmonth[2] = 31 ;
$nbjmonth[3] = 30 ;
$nbjmonth[4] = 31 ;
$nbjmonth[5] = 30 ;
$nbjmonth[6] = 31;
$nbjmonth[7] = 31 ;
$nbjmonth[8] = 30 ;
$nbjmonth[9] = 31 ;
$nbjmonth[10] = 30 ;
$nbjmonth[11] = 31 ;

if(!checkdate($mois,$jour,$annee))
{
echo "alert('$error01')\n" ;
$jour = date("j") ;
$mois = date("m") ;
$annee = date("Y") ;
}

// Calcul du jour julien et du numéro du jour
$HR = 0;
$GGG = 1;
if( $annee < 1582 ) $GGG = 0; if( $annee <1582 && $mois < 10 ) $GGG 0; if( $annee <1582 && $mois 10 && 1 < 5 ) $GGG = 0;
$JD = -1 * floor(7 * (floor(($mois + 9) / 12) + $annee) / 4);
$S = 1;
if (($mois - 9)<0) $S=-1;
$A = abs($mois - 9);
$J1 = floor($mois + $S * floor($A / 7));
$J1 = -1 * floor((floor($J1 / 100) + 1) * 3 / 4);
$JD = $JD + floor(275 * $mois / 9) + 1 + ($GGG * $J1);
$JD = $JD + 1721027 + 2 * $GGG + 367 * $annee - 0.5;

$jj = (($JD+.5)%7) ;
?>
</script>


<form name='calendrier'>
<!-- Affichage de la sélection du mois et de l'année -->
<select name="month" onChange="modifier(<? echo $jour; ?>); ">
<?
for ($i=0;$i<12;$i++)
{
echo "<option value='".($i+1)."'".($mois==($i+1)?" selected":"").">".$month[$i]."</option>\n" ;
}
?>
</select>,
<select name="year" onChange="modifier(<? echo $jour; ?>); ">
<?
$y = date("Y") ;
for ($i=$y;$i<$y+20;$i++)
{
echo "<option value='$i'".($annee==($i)?" selected":"").">$i</option>\n" ;
}
?>
</select>,

----
&nbsp;,
----

<table width='100%' cellspacing='0' cellspading='0' border='0'>
----

<?
// Affichage des jours
for($i=0;$i<7;$i++)
{
echo ", \".$day[$i].\"
</td>\" ;
}
?>

----

<?
// Première ligne des jours
$j = $jj ;
$dom = 1 ;
for ($i=0;$i<7;$i++) {
if ($j<=$i) {
echo \"]".$dom++.", \n\" ;
}
else {
echo \"&nbsp;, \n\" ;
}
}
?>

<?
// Le reste
for ($i=0;$i<5;$i++) {
echo \"----
\n\" ;
for ($j=0;$j<7;$j++) {
$j_inac = ($j==0 || $j==6) ;

if($dom < $nbjmonth[($mois-1)]) {
echo \"".$dom++."
, \n\" ;
}
else if (checkdate($mois,$dom,$annee)) {
echo \"".$dom++.", \n\" ;
}
else {
echo \"&nbsp;, \n\" ;
}
}
echo \"\n\" ;
}
$date = date_courante('',$jour,$mois,$annee);
?>

</td>
</tr>
<tr>
<td colspan='10' align='center'>
";
window.opener.document.forms["evenement"].elements["numDate"].value="<? echo $annee.'-'.$mois.'-'.$jour; ?>";
window.close()' value='Valider'>

</td>
</tr>
</table>
</form>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 mars 2006 à 15:43
Trop long, argh!

Tu dois avoir une erreur, il nous faut cette erreur, qu'elle soit javascript ou php.
0
tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008
30 mars 2006 à 14:13
en deux fonctions:
setlocale(LC_TIME, "fr");'Format de date en francais
echo strftime("%A %d %B %Y",mktime());'ecrit pour aujourd'hui: jeudi 30 mars 2006

Change le error_reporting sur ton serveur mets le &#224; 2047

Tardigrade
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lilab Messages postés 7 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
31 mars 2006 à 11:34
merci pour ton aide tardigrade je vais tester ça tout de suite
++
0
cs_lilab Messages postés 7 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
6 avril 2006 à 11:03
salut
javais laisser mon pb de claendrier de coté en faveur dautres bugs (qui apparaissent en localhost mais invisible en ligne) du cou g pa eu le temps de tester ....
concernant le bout de code proposé par tardigrade je ne vois ou et comment lintegrer


si quelqu'un pouvait me donner un pti cou de pouce, le javascript c pas mon fort .....

merci davance
++
0
tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008
7 avril 2006 à 11:39
Je ne peux pas faire le programme à ta place mais ton code devrait etre refondu pour integrer les deux lignes. En effet bcp de parties de ton code ne sert à rien puisque tout se resume en deux lignes. Je te conseille de lire la documentation php des fonctions setlocale, date, checkdate, strftime:
http://www.php.net/manual/fr/ref.datetime.php

Pour ce qui est des erreurs que tu vois en local mais pas sur le serveur distant, cela provient d'une différence de configuration des php fait une page contenant juste <?php php_info();?> et repporte toi sur les variable tel que error_reporting, display_errors, log_errors, ...

Si à distance la variable de error_reporting n'est pas à 2047 alors dans ton code en premiere ligne ecris ini_set('error_reporting',E_ALL);

Tardigrade
0
cs_lilab Messages postés 7 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
11 avril 2006 à 11:33
bonjour,
dsl de ne repondre que maintenant j'ai un accès limité internet ..........
Juste pour info il n'a jamais été question de faire le code à ma place je n'attendais pas autre chose qu'un petit coup de pouce ;comme je l'ai préciser c'est le javascript qui me pose queleques petits problèmes mais bon il faut perseverer...

concernant la variable error_reporting celle ci est bien a 2047 ds les parametres de config d'easy php
mais le problème subsiste ,jai egalement verifier les parametres display_errors, log_errors....

merci d'avoir pris le temps de traiter mon message
bon dev

++
0
tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008
11 avril 2006 à 13:37
non c'est sur le serveur qu'il faut voir si le error_reporting est à 2047 et le display_errors à On
0
Rejoignez-nous