Calendrier ne marche pa en LOCAL mais marche en ligne

Signaler
Messages postés
7
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006
-
Messages postés
208
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2008
-
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

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

impossible de te dire quoi que ce soit sans code.
Messages postés
7
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006

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>
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Trop long, argh!

Tu dois avoir une erreur, il nous faut cette erreur, qu'elle soit javascript ou php.
Messages postés
208
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2008

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
Messages postés
7
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006

merci pour ton aide tardigrade je vais tester ça tout de suite
++
Messages postés
7
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006

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
++
Messages postés
208
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2008

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
Messages postés
7
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
11 avril 2006

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

++
Messages postés
208
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2008

non c'est sur le serveur qu'il faut voir si le error_reporting est à 2047 et le display_errors à On