Création de la page affichant les articles

Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici.

Nous allons maintenant créer une nouvelle page nommé "page.php" et qui sera enregistré dans le dossier "creer-un-site-dynamique" , qui va nous permettre d'afficher le contenu des articles.

<?php
//On récupère la variable transmit par l'url
$id_transmit=$_GET['id'];
if (!isset($_GET["id"]) OR !is_numeric($_GET['id'])){
//Si la variable n'existe pas ou qu'elle n'est pas de type numérique, on redirige
	header('location:http://'.$_SERVER['HTTP_HOST'].'');
}
else{
	// on se connecte à la base de données
	include('connexion_bd.php');
	mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
	mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');
 
	$page = mysql_query("SELECT * FROM CONTENU WHERE id='".mysql_real_escape_string
(
$id_transmit)."'"); //on voie si il y a quelque chose if(mysql_num_rows($page) == 0) { //Si il n'y a rien, on redirige vers l'index header('location:http://'.$_SERVER['HTTP_HOST'].''); } else { while($affiche = mysql_fetch_array($page)) { $titre=$affiche['titre']; $description=$affiche['description']; $contenu=$affiche['texte']; } //On ferme else } } ?>

Comme je vous l'ai déjà expliqué dans les précédents tutoriels, on récupère l'id transmit par l'url pour effectuer notre requête, permettant ainsi d'extraire le contenu correspondant, de notre base de données.

$id_transmit=$_GET['id'];

Avant d'effectuer notre requête, on vérifie que la variable existe et qu'elle est bien de type numérique. Si l'une ou l'autre est "fausse", on redirige automatiquement le visiteur vers la page d'accueil :

if (!isset($_GET["id"]) OR !is_numeric($_GET['id'])){
//Si la variable n'existe pas ou qu'elle n'est pas de type numérique, on redirige
	header('location:http://'.$_SERVER['HTTP_HOST'].'');
}

isset : permet de déterminer si une variable est définie et si elle est différente de NULL.

Habituellement, on détermine si une variable transmit par l'url est définie en utilisant if(isset($_GET["variable"])) mais comme dans cette exemple on veut savoir l'inverse, donc si elle n'existe pas, on utilise un point d'exclamation (!) devant isset et il en va de même pour tester si la variable est de type numérique.
On effectue ensuite notre requête, mais avant d'afficher quoi que ce soit, on vérifie de nouveau si l'identifiant transmit par l'url correspond bien à un identifiant enregistré en BD :

	if(mysql_num_rows($page) == 0)
	{
		//Si il n'y a rien, on redirige vers l'index
		header('location:http://'.$_SERVER['HTTP_HOST'].'');
	}

Si l'identifiant ne correspond pas, on redirige une fois de plus le visiteur vers la page d'accueil.

Ensuite, il nous reste plus qu'à afficher les données de notre requête dans notre page "page.php":

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/
DTD/xhtml1-strict.dtd"
> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr-fr">   <head>   <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> <title><?php echo $titre;?></title> <meta name="Description" content="<?php echo $description;?>" /> <link href="style.css" rel="stylesheet" type="text/css"/>   </head>   <body>   <div id="moncadre"> <?php include('menu.php');?>   <div class="cadrecentrale"> <h1><?php echo $titre;?></h1>   <?php echo $contenu;?>   </div>   <?php include('footer.php');?>   </div>   </body>   </html>
Voir/déposer un commentaire (8) | Signaler un problème