bizert77
-
28 juin 2009 à 14:06
adns
Messages postés1094Date d'inscriptionvendredi 23 février 2007StatutMembreDernière intervention27 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>
// --------------- 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>
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.