debug

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
santille
Forum Newbie
Posts: 17
Joined: Thu Aug 05, 2004 1:31 pm

debug

Post 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 !
User avatar
s.dot
Tranquility In Moderation
Posts: 5001
Joined: Sun Feb 06, 2005 7:18 pm
Location: Indiana

Post by s.dot »

what problems are you having?
what is the desired effect?
what effect are you getting?
Set Search Time - A google chrome extension. When you search only results from the past year (or set time period) are displayed. Helps tremendously when using new technologies to avoid outdated results.
santille
Forum Newbie
Posts: 17
Joined: Thu Aug 05, 2004 1:31 pm

follow debug

Post 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
User avatar
onion2k
Jedi Mod
Posts: 5263
Joined: Tue Dec 21, 2004 5:03 pm
Location: usrlab.com

Re: follow debug

Post 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.
santille
Forum Newbie
Posts: 17
Joined: Thu Aug 05, 2004 1:31 pm

debug

Post 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
santille
Forum Newbie
Posts: 17
Joined: Thu Aug 05, 2004 1:31 pm

Post 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
Post Reply