Page 1 of 1

debug

Posted: Wed Mar 22, 2006 4:17 am
by santille
Hi,
Could someone help me debugging this code :

Code: Select all

1.	<? 
2.	                // fonction principale 
3.	function AfficheCalendrier ($Aff=1,$Mois="",$Annee=0,$evenement="",$Page="",$Aff1=0) { 
4.	                // definitions complementaires 
5.	$NomDuMois=array("erreur","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre"); 
6.	$Week=array( 
7.	   array("d","l","m","M","j","v","s"), // début d'affichage =dimanche 
8.	   array("l","m","M","j","v","s","d") // début d'affichage =lundi 
9.	   ); 
10.	               // controle pour les valeurs par default 
11.	if ($Aff != 0) { $Aff = 1;} // toute autre valeurs que 0 retourne 1 
12.	if ( $Mois >0 or $Mois >13 ) {}else{$Mois=date("n" );}// mois courrant par défaut 
13.	if (!isset($Annee)and $Annee >0 ){$Annee=date("Y");} // annee courrante par défaut 
14.	if (!isset($Page)) {$Page=$_SERVER['PHP_SELF'];} // script d'appel par default 
15.	               // ajustement des variables du script 
16.	$NoJour = -date("w",mktime(0,0,0,$Mois,1,$Annee)); // détermine le décalage du 1er dans la semaine 
17.	if ($Aff == 0 ) {$NoJour +=1;}else{$NoJour +=2 ; } // pour l'ajuster suivant l'affichage 
18.	if ($NoJour >1 && $Aff ==1) { $NoJour -=7;} // on s'assure du début de l'affichage a la 1ere ligne du tableau 
19.	$JourMax =date("t",mktime(0,0,0,$Mois,1,$Annee)); // nombre de jours dans le mois 
20.	$Liens = 0; // compteur du tableau des liens 
21.	$cejour = date("j n Y"); // la date actuelle 
22.	if (!is_array($evenement)) { // fonctionnement erratique si ce n'est pas un tableau 
23.	   $evenement= (array) $evenement ; 
24.	} 
25.	@sort($evenement); // le tableau est classe dans l'ordre 
26.	$evenement=@array_unique($evenement) ; // eliminer les doublons 
27.	$evenement= @array_slice($evenement,0); // suprimer les vides 
28.	  
29.	               // affichage du debut de calendrier 
30.	print " 
31.	<A class=\"MoisAnnee\"NAME=\"$NomDuMois[$Mois]_$Annee\">&nbsp;$NomDuMois[$Mois] $Annee&nbsp;</A> 
32.	<TABLE class=\"Mois\"> 
33.	<TR class=\"S\">\n"; 
34.	for ( $w=0;$w<7;$w++){ 
35.	  print " <TD class=\"e".$w."\">".strtoupper($Week[$Aff][$w])."</TD> \n"; 
36.	} 
37.	print " </TR>\n"; 
38.	// création du calendrier 
39.	  
40.	for ($semaine=1;$semaine <=6;$semaine++) { // 6 semaines par mois 
41.	  print " <TR class=\"S$semaine\">\n"; 
42.	  for ($journee=1;$journee <=7;$journee++) { // 7 jours par semaine 
43.	    if ("$NoJour $Mois $Annee"==$cejour) { // est ce le jour actuel ? 
44.	    print " <TD class=\"J\">"; // oui on utilise la surbrillance 
45.	    }else{ 
46.	              print " <TD class=\"J".date("w",mktime(0,0,0,$Mois,$NoJour,$Annee))."\">"; 
47.	    } 
48.	    if ($NoJour >0 && $NoJour <= $JourMax ){ // si le jour est valide a afficher 
49.	      if (isset($evenement[$Liens]) && $NoJour >0 && $NoJour == $evenement[$Liens]){ // si evenement 
50.	        $elements=explode(",",$evenement[$Liens]); // separe les infos 
51.	        if ($elements[1]=="") { // si url vide 
52.	            $elements[1]= $Page; // url par default 
53.	        } 
54.	        $pos = strpos($elements[1],"?"); // verifier si l'url contiend des parametres 
55.	        if ($pos === false) { 
56.	            $elements[1].="?"; // si non on ajoute le ? 
57.	        }else{ 
58.	            $elements[1].="&"; // si oui on complete par & 
59.	        } 
60.	                             // le lien est pret pour l'affichage 
61.	        print "<A HREF=\"$elements[1]NoJour=$NoJour&Mois=$Mois&Annee=$Annee \"title=\"$elements[2]\">$elements[0]</A>"; 
62.	        $Liens++; // incrementer le tableau des liens 
63.	        }else{ // sinon juste la date 
64.	        print "$NoJour"; 
65.	      } 
66.	    }else{ 
67.	       if ($Aff1>0) { // si remplir la table 
68.	                print "<EM class=\"JComp\"\">"; // afficher une date complémentaire au mois en cours 
69.	print date("j",mktime(0,0,0,$Mois,$NoJour,$Annee)); // afficher les joursdu mois prec / suivant 
70.	print "</EM>"; 
71.	}else{ 
72.	print"&nbsp;"; // afficher un espace si jour non valide 
73.	} 
74.	} 
75.	$NoJour ++; // incremente le jour 
76.	print "</TD>\n"; // on passe au jour suivant 
77.	} 
78.	if ($NoJour > $JourMax){ $semaine ++; } // on échappe la dernière ligne si vide 
79.	print " </TR>\n"; // semaine suivante 
80.	} 
81.	print "</TABLE>\n"; // le mois est affiché 
82.	} 
83.	/****************************************************************/ 
?>
Thanx for your help !

Posted: Wed Mar 22, 2006 4:33 am
by s.dot
what problems are you having?
what is the desired effect?
what effect are you getting?

follow debug

Posted: Wed Mar 22, 2006 6:44 am
by santille
This script supposed to show a calendar.
When I run the script, it gives me the following error :
"Parse error on line 11..."

Thanx.

seb

Re: follow debug

Posted: Wed Mar 22, 2006 6:55 am
by onion2k
santille wrote:This script supposed to show a calendar.
When I run the script, it gives me the following error :
"Parse error on line 11..."
The whole error message would be more useful.

debug

Posted: Wed Mar 22, 2006 7:16 am
by santille
I ran this script with Easyphp.
Full message error :

"Parse error: parse error in c:\program files\easyphp1-8\www\calendar\index.php on line 11"

Thanx

Posted: Wed Mar 22, 2006 7:20 am
by santille
I create an index.php and put the script into.
Here is the full index code :

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>Untitled</title>
</head>

<body>
1.	<? 
2.	                // fonction principale 
3.	function AfficheCalendrier ($Aff=1,$Mois="",$Annee=0,$evenement="",$Page="",$Aff1=0) { 
4.	                // definitions complementaires 
5.	$NomDuMois=array("erreur","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre"); 
6.	$Week=array( 
7.	   array("d","l","m","M","j","v","s"), // début d'affichage =dimanche 
8.	   array("l","m","M","j","v","s","d") // début d'affichage =lundi 
9.	   ); 
10.	               // controle pour les valeurs par default 
11.	if ($Aff != 0) { $Aff = 1;} // toute autre valeurs que 0 retourne 1 
12.	if ( $Mois >0 or $Mois >13 ) {}else{$Mois=date("n" );}// mois courrant par défaut 
13.	if (!isset($Annee)and $Annee >0 ){$Annee=date("Y");} // annee courrante par défaut 
14.	if (!isset($Page)) {$Page=$_SERVER['PHP_SELF'];} // script d'appel par default 
15.	               // ajustement des variables du script 
16.	$NoJour = -date("w",mktime(0,0,0,$Mois,1,$Annee)); // détermine le décalage du 1er dans la semaine 
17.	if ($Aff == 0 ) {$NoJour +=1;}else{$NoJour +=2 ; } // pour l'ajuster suivant l'affichage 
18.	if ($NoJour >1 && $Aff ==1) { $NoJour -=7;} // on s'assure du début de l'affichage a la 1ere ligne du tableau 
19.	$JourMax =date("t",mktime(0,0,0,$Mois,1,$Annee)); // nombre de jours dans le mois 
20.	$Liens = 0; // compteur du tableau des liens 
21.	$cejour = date("j n Y"); // la date actuelle 
22.	if (!is_array($evenement)) { // fonctionnement erratique si ce n'est pas un tableau 
23.	   $evenement= (array) $evenement ; 
24.	} 
25.	@sort($evenement); // le tableau est classe dans l'ordre 
26.	$evenement=@array_unique($evenement) ; // eliminer les doublons 
27.	$evenement= @array_slice($evenement,0); // suprimer les vides 
28.	  
29.	               // affichage du debut de calendrier 
30.	print " 
31.	<A class=\"MoisAnnee\"NAME=\"$NomDuMois[$Mois]_$Annee\">&nbsp;$NomDuMois[$Mois] $Annee&nbsp;</A> 
32.	<TABLE class=\"Mois\"> 
33.	<TR class=\"S\">\n"; 
34.	for ( $w=0;$w<7;$w++){ 
35.	  print " <TD class=\"e".$w."\">".strtoupper($Week[$Aff][$w])."</TD> \n"; 
36.	} 
37.	print " </TR>\n"; 
38.	// création du calendrier 
39.	  
40.	for ($semaine=1;$semaine <=6;$semaine++) { // 6 semaines par mois 
41.	  print " <TR class=\"S$semaine\">\n"; 
42.	  for ($journee=1;$journee <=7;$journee++) { // 7 jours par semaine 
43.	    if ("$NoJour $Mois $Annee"==$cejour) { // est ce le jour actuel ? 
44.	    print " <TD class=\"J\">"; // oui on utilise la surbrillance 
45.	    }else{ 
46.	              print " <TD class=\"J".date("w",mktime(0,0,0,$Mois,$NoJour,$Annee))."\">"; 
47.	    } 
48.	    if ($NoJour >0 && $NoJour <= $JourMax ){ // si le jour est valide a afficher 
49.	      if (isset($evenement[$Liens]) && $NoJour >0 && $NoJour == $evenement[$Liens]){ // si evenement 
50.	        $elements=explode(",",$evenement[$Liens]); // separe les infos 
51.	        if ($elements[1]=="") { // si url vide 
52.	            $elements[1]= $Page; // url par default 
53.	        } 
54.	        $pos = strpos($elements[1],"?"); // verifier si l'url contiend des parametres 
55.	        if ($pos === false) { 
56.	            $elements[1].="?"; // si non on ajoute le ? 
57.	        }else{ 
58.	            $elements[1].="&"; // si oui on complete par & 
59.	        } 
60.	                             // le lien est pret pour l'affichage 
61.	        print "<A HREF=\"$elements[1]NoJour=$NoJour&Mois=$Mois&Annee=$Annee \"title=\"$elements[2]\">$elements[0]</A>"; 
62.	        $Liens++; // incrementer le tableau des liens 
63.	        }else{ // sinon juste la date 
64.	        print "$NoJour"; 
65.	      } 
66.	    }else{ 
67.	       if ($Aff1>0) { // si remplir la table 
68.	                print "<EM class=\"JComp\"\">"; // afficher une date complémentaire au mois en cours 
69.	print date("j",mktime(0,0,0,$Mois,$NoJour,$Annee)); // afficher les joursdu mois prec / suivant 
70.	print "</EM>"; 
71.	}else{ 
72.	print"&nbsp;"; // afficher un espace si jour non valide 
73.	} 
74.	} 
75.	$NoJour ++; // incremente le jour 
76.	print "</TD>\n"; // on passe au jour suivant 
77.	} 
78.	if ($NoJour > $JourMax){ $semaine ++; } // on échappe la dernière ligne si vide 
79.	print " </TR>\n"; // semaine suivante 
80.	} 
81.	print "</TABLE>\n"; // le mois est affiché 
82.	} 
83.	/****************************************************************/ 
?>





</body>
</html>
Thanx