IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

code correct ? à améliorer ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut code correct ? à améliorer ?
    voici mon code pour mon site.

    étant débutant en PHP je souhaiterait que vous me conseiller et me dire ce qui ne va pas dans mon code ou ce qu'il y a à améliorer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
     
    <?php
    include_once('footer.class.php');
    class Corps
    {
     
            private $footer;
     
    	public function __construct()
    	{
    		$this->footer = new Footer();
    	}
     
    	//cette fonction affiche le corps
    	public function afficherCorps()
    	{
    		try
    		{
    			$PDO_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    			$connectionBDD = NEW PDO('mysql:host=localhost;dbname=mabase','root','',$PDO_options);
     
    			//si l'attribut dans URL n'existe pas la page d'accueil est construite
    			if(!isset($_GET['idPage']))
    			{
    				$this->accueil($connectionBDD);
    			}
    			else
    			{	
    				//corps de la page
    				echo '<div id="corps">';
    					echo '<p>';
    						$this->rappelMenu($connectionBDD);
    						$this->construireCorps($connectionBDD);
    					echo '</p>';
    					$this->footer->afficherFooter();
    				echo '</div>';
    			}
     
    		}
    		catch(Exception $e)
    		{
    			echo "Erreur :".$e->getMessage();
    		}
    	}
     
    	//construit un titre qui se trouve dans un texte du corps de la page
    	public function detailTitre($donne)
    	{
    		//si c'est le titre d'un texte
    		if($donne['typeTexte'] == "DT")
    		{
    			echo '<h4>'.$donne['textePrecedent'].'</h4>';	
    		}		
    	}
     
    	//construit le texte du coprs de la page
    	public function detailTexte($donne)
    	{
    		//si c'est du texte simple
    		if($donne['typeTexte'] == "DX")
    		{
    			echo "<p>".$donne['textePrecedent']."</p>";
    		}
    	}
     
    	//construit une URL
    	public function detailURL($donne,$connectionBDD)
    	{
    		//si c'est une URL
    		if($donne['typeTexte'] == "DU")
    		{	
    			//si c'est un document on construit de tel sorte qu'on telecharge le document pour le regarder
    			if(substr($donne['pointeVers'],0,3)=="DOC")
    			{
    				$sql = "SELECT * FROM insertion_job WHERE idPage='".$donne['pointeVers']."'";
    				$requete = $connectionBDD->query($sql); 
    				$ref = $requete->fetch();
    				echo "<center><a href='word/".$ref['textePrecedent']."' target='_blank'>".$donne['textePrecedent']."</a></center>";
    				echo "<center><a href='pdf/".$ref['texteSuivant']."' target='_blank'>(version pdf)</a></center><br/>";
    				$requete->closeCursor();
    			}
    			//sinon on construit le lien qui pointe vers la page associée
    			else
    			{
    				$id = $donne['pointeVers'];
     
    				echo "<center><a href='index.php?idPage=$id'>".$donne['textePrecedent']."</a></center><br/>";	
    			}
    		}
    	}
     
    	//construit une liste numéroté
    	public function detailNumerote($donne,$i)
    	{
    		//si le texte est numéroté
    		if($donne['typeTexte'] == "DN")
    		{
    			$i = $i + 1;
    			echo '<p class="tabulation">'.$i.'. '.$donne['textePrecedent'].'</p>';
    		}
    		return $i;
    	}
     
    	//construit une URL avec du texte qui se trouve avant le lien
    	public function detailTexteUrl($donne)
    	{
    		//si texte avant url
    		if($donne['typeTexte'] == "AU")
    		{
    			$id = $donne['pointeVers'];
    			echo "<p>".$donne['textePrecedent']."<a href='index.php?idPage=$id'>".$donne['url']."</a></p>";
    		}
    	}
     
    	//construit une URL avec du texte avant et apres le lien
    	public function detailTexteUrlTexte($donne)
    	{
    		//si texte avant et apres url
    		if($donne['typeTexte'] == "AP")
    		{
    			$id = $donne['pointeVers'];
     
    			if($_GET['idPage']=="P01021")
    			{
    				echo "<span class='tabulation'>".$donne['textePrecedent']." "."<a href='index.php?idPage=$id' class='gras'>".$donne['url']." </a>".$donne['texteSuivant']."</span><br/>";
    			}
    			else
    			{
    				echo $donne['textePrecedent']."<a href='index.php?idPage=$id'>".$donne['url']."</a>".$donne['texteSuivant']."<br/>";
    			}
    		}
    	}
     
    	//si le tout le paragraphe d'un texte doit etre en italique
    	public function detailItalique($donne)
    	{
    		//si texte italique
    		if($donne['typeTexte'] == "DI")
    		{
    			echo "<span class='italique'>".$donne['textePrecedent']."</span>";
    		}
    	}
    	//construit le corps de la page
    	public function construireCorps($connectionBDD)
    	{
     
    		$i = 0;
    		$sql = 'SELECT * FROM insertion_job WHERE idPage=\''.$_GET['idPage'].'\'AND sequence > 0 AND flag=1 ORDER BY sequence';
    		$requete_1 = $connectionBDD->query($sql);
    		while($donne = $requete_1->fetch())
    		{
     
    			$this->detailTitre($donne);
     
    			$this->detailTexte($donne);
     
    			$this->detailURL($donne,$connectionBDD);
     
    			$i = $this->detailNumerote($donne,$i);
     
    			$this->detailTexteUrl($donne);
     
    			$this->detailTexteUrlTexte($donne);
     
    			$this->detailItalique($donne);
    		}
    		$requete_1->closeCursor();
    	}
     
    	//cette fonction est appelée lorsqu'il faut afficher un rappel du menu et/ou sous-menu d'une rubrique
    	//facilite la navigation pas besoin de revenir a une page précédente pour aller sur le lien suivant
    	//vu que le menu est rappelé en haut gauche.
    	public function rappelMenu($connectionBDD)
    	{
    		//si on se trouve sur les pages qui ont cet ID on reconstruit le menu
    		if($_GET['idPage']=="P01011" OR $_GET['idPage']=="P01021" OR $_GET['idPage']=="P01031" OR $_GET['idPage']=="P01041" OR $_GET['idPage']=="P01051" OR $_GET['idPage']=="P01061" OR $_GET['idPage']=="P01071" OR $_GET['idPage']=="P01121" OR $_GET['idPage']=="P01221" OR $_GET['idPage']=="P01321" OR $_GET['idPage']=="P01421" OR $_GET['idPage']=="P01521"OR $_GET['idPage']=="DOC000" )
    		{
    			$j = 0;
    			$sql = 'SELECT * FROM insertion_job WHERE idPage=\'P01001\' AND typeTexte=\'DU\' ORDER BY sequence';
    			$requete_1 = $connectionBDD->query($sql);
    			echo '<div class="rappelMenu">';
    				echo '<span class="gras">Le CV</span><br/>';
    				while($donnee_1 = $requete_1->fetch())
    				{
    					$j = $j + 1;
    					//si on pointe vers un document, on affiche 2 liens : format word et format PDF
    					if(substr($donnee_1['pointeVers'],0,3)=="DOC")
    					{
    						$sql_2 = "SELECT * FROM insertion_job WHERE idPage='".$donnee_1['pointeVers']."'";
    						$requete_2 = $connectionBDD->query($sql_2); 
    						$ref = $requete_2->fetch();
    						echo "<a href='word/".$ref['textePrecedent']."' target='_blank'>".$donnee_1['textePrecedent']."</a>";
    						echo "<a href='pdf/".$ref['texteSuivant']."' target='_blank'>(version pdf)</a><br/>";
    					}
    					//sinon on pointe vers la page et les textes concernés
    					else
    					{
    						$id = $donnee_1['pointeVers'];
    						echo "<a href='index.php?idPage=$id'>".$donnee_1['textePrecedent']."</a><br/>";
    					}
    					//si on se retrouve dans une page qui possède cet ID on construit un sous-menu
    					if( ($_GET['idPage']=="P01121" AND $j == 2) OR ($_GET['idPage']=="P01221" AND $j == 2)  OR ($_GET['idPage']=="P01321" AND $j == 2) OR ($_GET['idPage']=="P01421" AND $j == 2)OR ($_GET['idPage']=="P01521" AND $j == 2))
    					{
    						$sql_2 = 'SELECT * FROM insertion_job WHERE idPage=\'P01021\' AND typeTexte=\'AP\' ORDER BY sequence';
    						// on fait une requete qui recupère les enregistrements qui rappel le menu	
    						$requete_2 = $connectionBDD->query($sql_2);
     
    						while($donne_2 = $requete_2->fetch())
    						{
    							$id = $donne_2['pointeVers'];
    							echo "<dd><a href='index.php?idPage=$id'>".$donne_2['url']."</a>".$donne_2['texteSuivant']."</dd>";
    						}
     
    						$requete_2->closeCursor();
     
    					}
    				}
    				$requete_1->closeCursor();
    			echo '</div>';
    			echo '<br/>';
    		}
    	}
     
     
    	//appel de la fonction lorsqu'on est à l'accueil.
    	//cette fonction créer l'accueil.
    	public function accueil($connectionBDD)
    	{
    		$sql = 'SELECT * FROM insertion_job WHERE idPage=\'P00000\'';
    		$requete = $connectionBDD->query($sql);
     
    		echo '<div id="corps">';
     
    			echo '<p>';
     
    				while($donne = $requete->fetch())
    				{
    					if($donne['typeTexte'] == "DT")
    					{
    						echo '<h4>'.$donne['textePrecedent'].'</h4>';
    					}
    					if($donne['typeTexte'] == "DX")
    					{
    						echo '<p>'.$donne['textePrecedent'].'</p>';
    					}
    				}
    				$requete->closeCursor();
     
    			echo '</p>';
     
    		echo '</div>';
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php
     
    class Footer
    {
    	private $footer;
     
    	public function __construct()
    	{
    		$this->footer = '<span class="gras">Copyright</span>';
    	}
    	//affichage du footer
    	public function afficherFooter()
    	{
    		echo '<div id="footer"><p>';
    		echo $this->getFooter();
    		echo ' </p></div>';
    	}
    	//retourne le footer
    	public function getFooter()
    	{
    		return $this->footer;
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    <?php
     
    class Head
    {
    	private $logo;
    	private $titre;
     
    	public function __construct()
    	{
    		try
    		{
    			$PDO_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    			$connectionBDD = NEW PDO('mysql:host=localhost;dbname=mabase','root','',$PDO_options);
     
    			$sql = 'SELECT * FROM insertion_job WHERE typeTexte=\'TP\' AND flag=1';
    			//on va rechercher tout ce que concerne le titre principal
    			$requete = $connectionBDD->query($sql);
    			$this->titre = $requete->fetch();
     
    			$sql = 'SELECT * FROM insertion_job WHERE typeTexte=\'LO\' AND flag=1';
    			//on va rechercher tout ce qui concerne le logo
    			$requete = $connectionBDD->query($sql);
    			$this->logo = $requete->fetch();
    		}
    		catch(Exception $e)
    		{
    			echo "Erreur :".$e->getMessage();
    		}
    	}
    	//affiche logo du site
    	public function afficherLogo()
    	{
    		echo '<div id="logo">';
    			echo '<img src='.$this->logo['textePrecedent'].'alt="logo du site"/>';
    		echo '</div>';
    	}
    	//affiche le titre général du site
    	public function afficherTitre()
    	{	
    		echo '<div id="titre_site">';
    			echo '<h3>'.$this->titre['textePrecedent'].'</h3>';
    		echo '</div>';
    	}
    	//affiche l'en-tête de la page internet
    	public function afficherHead()
    	{
    		$this->afficherLogo();
    		$this->afficherTitre();
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
     
    	<head>
     
    		<!-- indique ou se trouve le plug-in JQuery -->
    		<script type="text/javascript" src="js/jquery.js" ></script>
    		<!--debut du script JQuery-->
    		<script type="text/javascript">
    		//<!--	
    			$(document).ready(function()
    			{	
    				//couleur de fond du site
    				$('body').css('background','rgb(106,95,91)');
    				//type de police du site
    				$('body').css('font-family','Bell MT,Comic sans MS,Times New Roman, Times, serif');
    				//fond du corps
    				$("#corps").css('background','rgb(134,197,242)');
    				//couleur pour les titre h3
    				$("h3").css('color','rgb(134,197,242)');
     
    				<?php
    					include_once('site.class.php');
    					$site = new Site();
    					/*recupère le nombre de menu
    					permet d'appliquer le style dynamiquement par passage de valeur du PHP à javascript*/
    					echo "var compteur =".$site->getMenu()->getNbMenu(). ";";
    				?>
    				var i;
    				for(i=0;i<=compteur;i++)
    				{	
    					//couleur de fond appliquer à chaque menu
    					$("#sous_menu_"+i).css('background','rgb(134,197,242)');
    					//taille de la police des titre des menus
    					$("#menu_"+i).css('font-size','14px');
    					//espacement entre les differents menu de 10pixel
    					$("#sous_menu_"+i).css('padding-bottom', '10px');
    					//espace de 3 pixel par rapport au bord gauche
    					$("#sous_menu_"+i).css('padding-left', '3px');
    					//taille de la police pour les intitulé du menu
    					$("#sous_menu_"+i).css('font-size','12px');
    				}
     
    				//quand on passe au dessu de l'image (idPage =P01121)
    				$("#exemple_3").mouseover(function() 
    				{
    					// on cache le cadre qui est a gauche
    					$('.encadrer_5').hide();
    					$('#footer').hide();
    				});
    				$("#exemple_3").mouseout(function() //quand on sort de la zone
    				{
    					$('.encadrer_5').show();//on réaffiche le cadre
    					$('#footer').show();
    				});
     
    				//quand on passe au dessu de l'image (idPage =P01321)(idPage =P01221)(idPage =P01421)(idPage =P01521)
    				$(".ex").hide();
     
    				$(".lien").mouseover(function() 
    				{
    					// on cache le cadre qui est a gauche
    					$('.ex').show();
    					$('#footer').hide();
    				});
    				$(".lien").mouseout(function() //quand on sort de la zone
    				{
    					$('.ex').hide();//on réaffiche le cadre
    					$('#footer').show();
    				});
     
    				// quand on passe au dessus de l'élément le curseur devient une main pour afficher
    				$(".lien").hover( function () 
    				{
    					$(this).css('cursor','pointer');
    				},function () 
    				{
    					$(this).css('cursor','auto');
    				});
     
     
    				//animation sur le titre du site en 1.5 seconde
    				$("#titre_site").animate(
    					{ 
    						//width: "70%",
    						//opacity: 0.4,	
    						//marginLeft: "0.6in",
    						fontSize: "1em"
    						//borderWidth: "10px"
    					}, 
    					1500);
     
    				/*cette manière de faire simplifie le fait qu il ne faut pas 
    				ecrire le code avec les instruction de PHP*/
    				<?php
     
    				if(!isset($_GET['idPage']))
    				{
    				?>
    					// cache les éléments du DOM
    					$("#head").hide();
    					$("#menu").hide();
    					$("#corps").hide();
    					$("#footer").hide();
    					$("#acceuil").hide();
     
    					//fait apparaitre les éléments du DOM
    					$("#head").fadeTo('slow','1');
    					$("#menu").fadeTo('slow','1');
    					$("#corps").fadeTo('slow','1');
    					$("#footer").fadeTo('slow','1');
    					$("#acceuil").fadeTo('slow','1');
     
     
    				<?php
    				}
    				?>
     
    			});
    		//-->
    		</script>
     
    		<!--<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>-->
    		<meta http-equiv="pragma" content="no-cache"> 
    		<link rel="stylesheet" type="text/css" href="css/design.css"/>
    		<title>site</title>
     
    	</head>
     
    	<body>
     
    		<?php
    			$site->afficherSite();
    		?>
     
    	</body>
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
     
    <?php
    class Menu
    {
    	private $menu;
    	private $nbMenu;
     
    	public function __construct()
    	{
     
    		try
    		{
    			$PDO_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    			$connectionBDD = NEW PDO('mysql:host=localhost;dbname=mabase','root','',$PDO_options);
     
    			$sql = 'SELECT COUNT(*) FROM insertion_job WHERE typeTexte=\'MP\' AND flag=1';
    			//nombre de menu
    			$requete_1 = $connectionBDD->query($sql);
    			$donne = $requete_1->fetch();
    			$this->nbMenu = $donne[0];
     
    			$i;
    			$this->menu = array();
    			//creation d'une matrice pour les menu et sous-menu autant de ligne qu'il n y a de menu
    			for($i=0;$i<$this->nbMenu;$i++)
    			{
    				$this->menu[$i] = array();
    			}			
    		}
    		catch(Exception $e)
    		{
    			die('Erreur :'.$e->getMessage());
    		}
     
    	}
     
    	//méthode pour créer le menu
    	public function creerMenu()
    	{
     
    		try
    		{
    			$PDO_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    			$connectionBDD = NEW PDO('mysql:host=localhost;dbname=mabase','root','',$PDO_options);
     
    			$text_1 = $this->lireMenu($connectionBDD);
    			$this->lireSousMenu($text_1,$connectionBDD);
     
     
    		}
    		catch(Exception $e)
    		{
    			die('Erreur :'.$e->getMessage());
    		}
     
    	}
    	//méthode pour afficher le menu
    	public function afficherMenu()
    	{
     
    		$i=1;
    		echo "<div id='menu' align='left'>";
     
    		echo '<div id="acceuil">';
    			echo '<a href="index.php">Accueil</a>';
    		echo '</div>';
     
    		echo "<ul class='non_puce'>";
     
    		foreach($this->menu as $ligne)
    		{
    			echo "<div id='sous_menu_$i' class='style'>";
    			echo "<ul class='non_puce'>";
    			foreach($ligne as $colone)
    			{
    				echo $colone;
     
    			}
    			echo "</ul>";
    			echo "</div>";
    			$i = $i+1;
    		}
    		echo "</ul>";
    		echo "</div>";
    	}
     
    	//recupère les titre principaux du menu
    	public function lireMenu($connectionBDD)
    	{
    		$i = 0;
     
    		$sql = 'SELECT * FROM insertion_job WHERE typeTexte=\'MP\' AND flag=1';
    		//recupère les éléments du menu principale
    		$requete_1 = $connectionBDD->query($sql);
     
    		//remplit par les titre principal du menu
    		while($donne_1 = $requete_1->fetch())
    		{
     
    			$this->menu[$i][0] = "<li id='menu_$i' class='gras'>".$donne_1['textePrecedent']."</li>";
    			$text_1[$i] = substr($donne_1['idPage'],0,3);
     
    			$i = $i +1;
    		}
    		/*renvoi le tableau afin de permettre la comparaison
    		  lors de l'appel de méthode pour construire les sous composant du menu*/
    		return $text_1;
    	}
     
    	//recupere les sous-titres du menu
    	public function lireSousMenu($text_1,$connectionBDD)
    	{
    		$j=1;
     
    		for($i=0;$i<$this->nbMenu;$i++)
    		{
    			$sql = 'SELECT * FROM insertion_job WHERE typeTexte=\'SM\' AND flag=1';
    			$requete = $connectionBDD->query($sql);
    			while($donne = $requete->fetch())
    			{
    				$text_2 = substr($donne['idPage'],0,3);
    				//si les 3 première occurence de l idPage du menu et du sous menu sont identique on creer le sous menu qui va avec le titre
    				if($text_2 == $text_1[$i])
    				{
    					$id = $donne['pointeVers'];
    					$this->menu[$i][$j] = "<li><a href='index.php?idPage=$id'>".$donne['textePrecedent']."</a></li>";
     
    					$j = $j + 1;					
    				}
    				else
    				{
    					$j=1;
    				}
     
    			}
    			$requete->closeCursor();
    		}
     
    	}
    	//retourne le nombre de menu
    	public function getNbMenu()
    	{
    		return $this->nbMenu;
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    <?php
    include_once('head.class.php');
    include_once('menu.class.php');
    include_once('corps.class.php');
     
     
     
    class Site
    {
    	private $head;//en-tête du site
    	private $corps;//corps du site
    	private $menu;//menu du site
     
    	public function __construct()
    	{
    		$this->head = new Head();
    		$this->menu = new Menu();
    		$this->corps = new Corps();
    	}
     
    	public function afficherSite()
    	{
    		$this->head->afficherHead();
     
    		$this->menu->creerMenu();
     
    		//affichage du menu
    		$this->menu->afficherMenu();
     
    		$this->corps->afficherCorps();	
     
    	}
    	//retourne le menu afin d'accéder à ses fonction via la classe site
    	public function getMenu()
    	{
    		return $this->menu;
    	}
    }

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    tu devrais plutot mettre la $connectionBDD en propreté de classe ou alors faire un Registry.

  3. #3
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut
    pourrait-tu m'en dire plus ?
    Tu veux dire que je crée une classe "Connexion" ?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par dharkan Voir le message
    pourrait-tu m'en dire plus ?
    Tu veux dire que je crée une classe "Connexion" ?
    oui la connexion n'a pas grand chose a faire dans les paramètres de méthode, donc oui faire un classe Connexion serait un bon début

  5. #5
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut
    alors j'ai créer la classe connexion de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <?
     
    class Connexion
    {
    	private $connexion;
     
    	public function __construct()
    	{
    		try
    		{
    			$PDO_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    			$this->connectionBDD = NEW PDO('mysql:host=localhost;dbname=cpas-tournai-be3','root','',$PDO_options);
    		}
    		catch(Exception $e)
    		{
    			echo "Erreur :".$e->getMessage()
    		}
    	}
     
    	public function getConnexion()
    	{
    		return $this->connexion;
    	}
    }
    dans la classe Corps j'ai tout remodifier de cet manière la ou j ai besoin de la connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete = $this->connexion->getConnexion()->query($sql);
    a la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete = $connectionBDD->query($sql);
    quand je veux afficher la page, celle-ci reste vide et lorsque je vais voir le code source de la page je trouve cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <b>Fatal error</b>:  Class 'Connexion' not found in <b>C:\wamp\www\site_test\corps.class.php</b> on line <b>14</b><br />
    pourtant j inclue bien le fichier connexion.class.php

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    t'as mis <? a la place de <?php non ?

Discussions similaires

  1. recherche code pour améliorer mon site
    Par ALTINEA dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/08/2007, 19h05
  2. [MySQL] Script blocant l'accès à intervalle d'une heure, code correct ou pas ?
    Par Overstone dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/08/2007, 10h03
  3. programme code cesar amélioré.
    Par m-laure dans le forum C
    Réponses: 4
    Dernier message: 01/04/2007, 16h45
  4. UPDATE (code correct ?)
    Par philuciole dans le forum Langage SQL
    Réponses: 6
    Dernier message: 28/08/2006, 16h54
  5. utilisation de tableaux : code correct ?
    Par kuzloka dans le forum C++
    Réponses: 5
    Dernier message: 25/12/2005, 21h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo