Mon désign ne s'affiche pas dans mes pages $_GET

calinette
Invité n'ayant pas de compte PHPfrance

10 avr. 2006, 11:09

Bonjour,

J'ai conçu un désign sur un fichier qui contient un $_GET mais voilà, quand on clique sur les pages, mon désign ne s'y met pas (il figure juste sur la premiere page, sur celle qu'on se trouve mais si on clique sur la page 1, il ne s'affiche plus).

Voilà mon code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 STRICT//EN"
"http://www.w3.org/TR/xhtml1/DTD xhtml1-Strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
	<title> Livre d'or_améliration </title>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
	<style type="text/css">
	h2
	{
	color: blue;
	font-family: Arial, serif;
	text-align: center;
	}
	
	.formulaire
	{
	text-align: center;
	font-family: Arial, Verdana, serif;
	font-size: 14px;
	font-style : italic;
	color: #d4b408;
	font-weight: bold;
	}
	
	.formulairePage
	{
	text-align: center;
	font-family: Arial, Verdana, serif;
	font-size: 14px;
	font-style : italic;
	color: #000000;
	font-weight: bold;
	}
	
	hr
	{
	size= 6;
	text-align: center;
	width: 50%;
	color: #d4b408;
	}
	
	h3
	{
	color: blue;
	text-align: center;
	font-family: Arial, Verdana, serif;
	font-size: 18px;
	}
	
	.affichagePseudo
	{
	margin-left: 60px;
	}
	
	</style>
	</head>
	
	<body bgcolor="#cfeafd">
	<form method="post" action="livreor_amelioration.php">
	<h2> Mon site vous plaît ? Laissez-moi un message ! </h2>
	
	<p class="formulaire"> Pseudo : <input type="text" name="pseudo" /> </p>
	<p class="formulaire"> Message : <br />
	<textarea name="message" cols="50" rows="10"> </textarea> </p>
	<p class="formulaire"> Donnez une note sur 20 au site :
	<select name="note">
		<option> 1 </option>
		<option> 2 </option>
		<option> 3 </option>
		<option> 4 </option>
		<option> 5 </option>
		<option> 6 </option>
		<option> 7 </option>
		<option> 8 </option>
		<option> 9 </option>
		<option> 10 </option>
		<option> 11 </option>
		<option> 12 </option>
		<option> 13 </option>
		<option> 14 </option>
		<option> 15 </option>
		<option> 16 </option>
		<option> 17 </option>
		<option> 18 </option>
		<option> 19 </option>
		<option> 20 </option>
	</select>
	</p>
		
	<p class="formulaire" class="corps"> <input type="submit" value="Envoyer" /> </p>
	<p class="formulairePage"> Page :
		
	<?php
	// on définie le nombre de mess par page
	$nbre_mess_par_page = 20;
	
	//on se connecte à la bdd
	mysql_connect ("localhost" , "root" , "");
	mysql_select_db ("test");
	
	// on compte le nombre de messages dans la bdd
	$total_message = mysql_query ("SELECT COUNT(*) AS nbre_message FROM livreor");
	$donnees = mysql_fetch_array ($total_message);
	$total_mess = $donnees['nbre_message'];
	
	// on calcule de nbre de pages à créer
	$nbre_de_page = ceil($total_mess / $nbre_mess_par_page);
	
	//on fait une boucle pour afficher les pages et leur lien
	$i = 1;
	while ($i <= $nbre_de_page)
	{
	echo' <a href="livreor.php?page=' . $i .' ">' . $i . '</a>';
	$i++;
	}
	mysql_close() or die (mysql_error());
	?>
	
	</p>
	</form>
	
	<hr>
	<font color="blue" face="Arial"> <b> <center> Informations diverses concernant le LIVRE D'OR </center> </b> </font>
	<p align="center"> Nombre total de message postés : 
	
		<?php
		mysql_connect("localhost" , "root" , "");
		mysql_select_db ("test");
	
		// nombre total de messages postés dans la bdd
		$retour = mysql_query ("SELECT COUNT(*) AS nbre_entrees FROM livreor") or die (mysql_error());
		$message_total = mysql_fetch_array($retour);
	
		// on affiche le résultat :
		echo ' <font color="#d4b408"> <b> ' . $message_total['nbre_entrees']. ' </b> </font> <br /> ';
	
		mysql_close() or die (mysql_eror());
		?>
	
	</p>
	
	<hr>
	<h2> Vos messages </h2>
	
	
	<p> <br /> </p>
	
	<?php
	// on récupère les variables du formulaire et on met htmlentities et ENT_QOTES
	$pseudo = htmlentities ($_POST['pseudo'], ENT_QUOTES);
	$message = htmlentities ($_POST['message'], ENT_QUOTES);
	$note = htmlentities ($_POST['note'], ENT_QUOTES);
	
	// on se connecte à MySQL et on choisi sa bdd
	mysql_connect ("localhost" , "root" , "") or die (mysql_error());
	mysql_select_db ("test") or die (mysql_error());
	
	if (isset ($pseudo) AND isset ($message) AND isset ($note)) // on teste si la variable existe
	{
		if ($pseudo != NULL OR $message != NULL OR $note != NULL)  // on teste si les variables contiennent quelque chose
		{
		//Si oui, on enregistre dans la bdd
		mysql_query ("INSERT INTO livreor VALUES('' , '$pseudo', '$message' , '$note')");
		}
	}
	
	//on vérifie si la variable $_GET existe
	if (isset ($_GET['page']))
	{
	$page = $_GET['page'];  // on récupère le n° de la page indiquée dans l'adresse (livreor.php?page= )
	}
	else // sinon, si la variable n'existe pas, c'est que c'est la 1ere fois qu'on charge la page
	{
	$page = 1; // on se met donc sur la 1ere page (par défaut)
	}
	
	// on calcule le n° du 1er message qu'on prend pour le LIMIT de MySQL
	$premier_mess_afficher = ($page - 1) * $nbre_mess_par_page;
	$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT '. $premier_mess_afficher. ' , '.$nbre_mess_par_page) or die (mysql_error());
		
	// on va lister dans un tableau les données pour les afficher
	while($donnees = mysql_fetch_array($reponse))
	{
	echo '<p class="affichagePseudo"> <font color="red" face="arial">' . $donnees['pseudo'] . ' </font> <i> a écrit : </i>  <font color="#06af0f" face="arial"> ' . $donnees['message'] . '</font> <br />
	      <i> note donnée au site : </i> <font color="#06af0f" face="arial">' . $donnees['note'] . ' </font> </p>' ;
	}
			
	// on se déconnecte de MySQL
	mysql_close() or die (mysql_error());
	?>
	
	</body>
</html> 
J'ignore si c'est un problème de PHP ou de CSS, mais à mon avis c'est du PHP. Je précise que je suis une débutante en PHP et que j'ai fait cet exo qui fait parti d'un tuto dont la correction n'a pas été donnée.

Merci à ceux ou celles qui pourront m'aider.
Calinette

Avatar du membre
ViPHP
ViPHP | 3008 Messages

10 avr. 2006, 11:54

Bonjour,

J'ai conçu un désign sur un fichier qui contient un $_GET mais voilà, quand on clique sur les pages, mon désign ne s'y met pas (il figure juste sur la premiere page, sur celle qu'on se trouve mais si on clique sur la page 1, il ne s'affiche plus).
Je ne comprend pas grand chose... :roll: Un fichier qui contient un $_GET ? Quand on clique sur les pages ? Expliques un peu mieux parce que là...

As-tu une adresse où on pourrait voir le problème ? ça nous aiderait.

Eléphanteau du PHP | 13 Messages

10 avr. 2006, 12:30

Re bonjour,

Voilà, après avoir beaucoup cherché et réfléchie j'ai réussi à trouver mon erreur. C'était une erreur toute bête.

J'avais fait une copie de mon fichier initial avant de l'améliorer. J'avais bien changé le nom du fichier pour l'action du formulaire mais j'avais oublié de le changer dans la boucle qui permet l'affichage des pages et des liens.

Donc voici la partie du code après correction :
//on fait une boucle pour afficher les pages et leur lien
	$i = 1;
	while ($i <= $nbre_de_page)
	{
	echo' <a href="livreor_amelioration.php?page=' . $i .' ">' . $i . '</a>';
	$i++;
	}
	mysql_close() or die (mysql_error());
	?>
Voilà, je suis contente d'avoir trouvé la solution au problème :D

Au revoir
calinette