Problème livre d'or

Fermé
bizert77 - 28 juin 2009 à 14:06
adns Messages postés 1094 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 27 mars 2012 - 29 juin 2009 à 10:00
Bonjour,

J'ai créé une page témoignage (sur l'exemple d'un livre d'or), il fonctionne correctement quand je laisse des messages... On peut afficher 10 messages par pages, et normalement php crée des pages au fur et à mesure qu'il en a besoin... Il crée bien ma page 2 mais quand je click dessus, j'ai un message d'erreur (surement un soucis de lien) mais je n'arrive pas à résoudre mon problème.

Voici le message d'erreur:

Warning: include(pages/temoignage.php?page=2.php) [function.include]: failed to open stream: No error in D:\wamp\www\ije-refonte-tpl\index.php on line 39

Warning: include() [function.include]: Failed opening 'pages/temoignage.php?page=2.php' for inclusion (include_path='.;C:\php5\pear') in D:\wamp\www\ije-refonte-tpl\index.php on line 39

Et voici les lignes en questions du message d'erreur:

<div id="contenu">

<?php
if (empty($_GET["contenu"])) include ('pages/accueil.php');
else include('pages/'. $_GET['contenu'].'.php'); ==>ligne 39!
?>
</div>

Voici le code de ma page témoignage

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<style type="text/css">
form, .pages
{
text-align:center;
}
</style>
</head>

<body>

<form method="post" action="index.php?contenu=temoignage">
<h4>Merci de laisser votre témoignage </h4><br />
<p>
Prenom : <input name="prenom" /><br /><br />
Message :<br />
<textarea name="message" rows="8" cols="35"></textarea><br />
<input type="submit" name="envoyer" value="Envoyer" />
</p>
</form>

<div>
<p class="pages">
</p>

</div>

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("ije");


// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------

if (isset($_POST['prenom']) AND isset($_POST['message']))
{
$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); // De même pour le message
$message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />

// On peut enfin enregistrer :o)
mysql_query("INSERT INTO temoignage VALUES('', '" . $prenom . "', '" . $message . "')");
}

// --------------- Etape 2 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------

// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 10; // nombre de messages par page
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM temoignage');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="index.php?contenu=temoignage.php?page=' . $i . '">' . $i . '</a> ';
}
?>

</p>

<?php

// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------

if (isset($_GET['page']))
{
$page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$reponse = mysql_query('SELECT * FROM temoignage ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

while ($donnees = mysql_fetch_array($reponse))
{
echo '<p style="padding-left:15px; padding-right:20px; text-align:justify; padding-top:10px"><strong>' . $donnees['prenom'] . '</strong> a écrit :<br />' . $donnees['message'] . '<br><br><hr></p>';
}

mysql_close(); // On n'oublie pas de fermer la connexion à MySQL
?>

</body>
</html>

Ma base de donnée: ije
Ma table: temoignage

l'arborescence de mon site (toutes mes pages sont en php):

un dossier qui s'appelle ije-refonte-tpl(le nom de mon site)

on y trouve mon index.php

des sous-dossier: pages - css - img

dans mon index.php j'utilise le php include:

<div id="contenu">

<?php
if (empty($_GET["contenu"])) include ('pages/accueil.php');
else include('pages/'. $_GET['contenu'].'.php');
?>
</div>

Merci de votre aide

Bonne journée
A voir également:

1 réponse

adns Messages postés 1094 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 27 mars 2012 153
29 juin 2009 à 10:00
bonjour

essaie de remplacer cette ligne
else include('pages/'. $_GET['contenu'].'.php');
par celle la
else include('pages/'. $_GET['contenu']);


Adns
0