Bonjour,
Je suis débutant et j'aimerais installer mon livre d'Or.
Les messages de ce dernier sont affichés sur une page et lorsqu'on veut rentrer un commentaire il faut cliquer sur un lien qui renvoie vers une page où l'on rentre les données.
Par contre lorsque je veux valider les données (même lorsqu'il n'y a rien dans les champs) la page d'affichage des messages est renvoyée... Comment peut-on faire pour afficher sur la page d'entrée des données qu'aucune entrée est réalisée et qu'il faut resaisir les champs. Ce n'est qu'une fois les champs rempli que la page d'affichage des messages doit être affichée en appuyant sur le bouton envoyer. voici mon code :
La page d'affichage du livre d'or
La page d'entrée des données:
Merci pour vos réponses
Modifié par baup67 (17 Feb 2009 - 11:17)
Je suis débutant et j'aimerais installer mon livre d'Or.
Les messages de ce dernier sont affichés sur une page et lorsqu'on veut rentrer un commentaire il faut cliquer sur un lien qui renvoie vers une page où l'on rentre les données.
Par contre lorsque je veux valider les données (même lorsqu'il n'y a rien dans les champs) la page d'affichage des messages est renvoyée... Comment peut-on faire pour afficher sur la page d'entrée des données qu'aucune entrée est réalisée et qu'il faut resaisir les champs. Ce n'est qu'une fois les champs rempli que la page d'affichage des messages doit être affichée en appuyant sur le bouton envoyer. voici mon code :
La page d'affichage du livre d'or
<?php
mysql_connect("localhost", "root","");
mysql_select_db("gallerie");
// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------
if (isset($_POST['nom']) and isset($_POST['prenom']) and isset($_POST['contenu']))
{
$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
// On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$contenu = mysql_real_escape_string(htmlspecialchars($_POST['contenu'])); // De même pour le message
$contenu = nl2br($contenu); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
// Test pour vérifier si les variables sont vides ou non avant l'écriture
if ($nom=="" and $prenom=="" or $contenu=="")
{$test=1;}
else {$test=0;}
if ($test==0)
{
// On peut enfin enregistrer
mysql_query("INSERT INTO livre_or VALUES('', '" . $nom . "', '".$prenom."','" . $contenu . "')");
}
}
// --------------- 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 = 5;
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livre_or');
$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="livre_or.php?page=' . $i . '">' . $i . '</a> ';
}
?>
<?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 (livre_or.php?page=$i)
}
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 livre_or ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['nom'] . " ".$donnees['prenom'].'</strong> a écrit :<br />' . $donnees ['contenu'] . '</p>';
}
mysql_close(); // fermer la connexion à MySQL
?>
La page d'entrée des données:
<!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>La Galerie Photos de Pascal</title>
<link href="Styles/style_index.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="page">
<form method="post" method="livre_or.php">
<p>
Message :<br />
<textarea name="contenu" rows="6" cols="70"></textarea><br />
Nom : <input name="nom" />Prénom :<input name="prenom" /><br />
<input type="submit" value="Envoyer"/><br/>
</p>
</form>
</div>
Merci pour vos réponses
Modifié par baup67 (17 Feb 2009 - 11:17)