Livre d'or Problème en php/mySQL

Résolu/Fermé
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 - 5 janv. 2009 à 20:17
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 - 21 août 2009 à 11:09
Bonjour, j'ai recement eu un probleme avec le livre d'or.

Voici le code source :

<?php
include ("includes/header.php");
include ("includes/menu.php");
include_once ("includes/bdd.php");
?>
<div id="corps">
<form method="post" action="livreor.php">
        <p>Mon site vous plaît ? Laissez-moi un message !</p>
        <p>
		<?php if(isset($_SESSION['id']))
		{ ?>
		   Pseudo : <strong><?php echo $_SESSION['pseudo'] ;?></strong><br />
		   	<input type="hidden" name="pseudo" value="<?php echo $_SESSION['pseudo'] ?>"/>
		<?php }
		else
		{ ?>
            Pseudo : <input name="pseudo" /><br />
			<?php } ?>
  
            Message :<br />
            <textarea name="message" rows="8" cols="35"></textarea><br />
            <input type="submit" value="Envoyer" />
        </p>
    </form>
 
    <p class="pages">
 
<?php
mysql_connect("****", "****", "****");
mysql_select_db("riridi");
 
// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------
 
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
    $message = nl2br(mysql_real_escape_string(htmlspecialchars($_POST['message']))); // De même pour le message ; Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />

     $ip = $_SERVER['REMOTE_ADDR'];
    // On peut enfin enregistrer :o)
    mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "',  '" . $ip . "')");
}
 
// --------------- 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 = 20; // Essayez de changer ce nombre pour voir :o)
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$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="livreor.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 livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
 
while ($donnees = mysql_fetch_array($reponse))
{
        echo '<div="message_or"><p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p></div>';
}
 
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>
<div id="clear:both">
<?php include("includes/pied.php")?>



...Voilà...

A voir également:

33 réponses

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
10 janv. 2009 à 20:50
Tu peux remettre ton code actualisé ?
0
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 6
11 janv. 2009 à 10:03
c'est bon ca marche le id n'été pas en a-i (auto increment)

parcontre c'estnormal que les messages ne sont as affiché dans le corps ??
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
11 janv. 2009 à 21:18
Tu peux mettre ton nouveau code ?
Sans ça je pourrai pas t'aider.

J'ai fait un test, en fait il met que le dernier message dans le cadre et les autres en dessous.
0
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 6
13 janv. 2009 à 12:47
ok

le php :



<?php
include ("includes/header.php");
include ("includes/menu.php");
include_once ("includes/bdd.php");
?>
<div id="corps">
<form method="post" action="livreor.php">
        <p>Mon site vous plaît ? Laissez-moi un message !</p>
        <p>
		<?php if(isset($_SESSION['id']))
		{ ?>
		   Pseudo : <strong><?php echo $_SESSION['pseudo'] ;?></strong><br />
		   	<input type="hidden" name="pseudo" value="<?php echo $_SESSION['pseudo'] ;?>"/>
		<?php }
		else
		{ ?>
            Pseudo : <input name="pseudo" /><br />
			<?php } ?>
  
            Message :<br />
            <textarea name="message" rows="8" cols="35"></textarea><br />
            <input type="submit" value="Envoyer" />
        </p>
    </form>
 
    <p class="pages">
 
<?php
mysql_connect("***", "***i", "***");
mysql_select_db("***i");
 
// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------
 
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
    $message = nl2br(mysql_real_escape_string(htmlspecialchars($_POST['message']))); // De même pour le message ; Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />

     $ip = $_SERVER['REMOTE_ADDR'];
    // On peut enfin enregistrer :o)
    mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "',  '" . $ip . "')")or die (mysql_error());
}
 
// --------------- 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 = 20; // Essayez de changer ce nombre pour voir :o)
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$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="livreor.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 livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
 
while ($donnees = mysql_fetch_array($reponse))
{
        echo '<div="message_or"><p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p></div>';
}
 
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>
<div id="clear:both">
<?php include("includes/pied.php")?>


CSS :

ul#menu_horizontal { 
width : 600px; 
height : 30px;
margin-left: auto;
margin-right: auto;
padding : 0;
border : 1px dashed white;
list-style-type : none; 
}
 
ul#menu_horizontal li {
padding : 0 0.5em;  
line-height : 30px;
}
 
ul#menu_horizontal li.bouton_gauche {
float : left;
border-right : 1px dashed black; 
}
 
ul#menu_horizontal li.bouton_droite {
float : right;
border-left : 1px dashed wh
}

body
{
   width: 760px;
   margin: auto;
   margin-top: 20px;
   margin-bottom: 20px;    
   background-color: #cce5ff;
}

/* L'en-tête */

#en_tete
{
   width: 760px;
   height: 100px;
   background-repeat: no-repeat;
   margin-bottom: 10px;
}

#corps
{
   margin-left: 140px;
   margin-bottom: 20px;
   padding: 5px;
   
   color: black;
   background-color: #c6e0f7;
   background-image: url("images/motif.png");
   background-repeat: repeat-x;
   
   border: 2px solid black;
}

#corps h1
{
   color: black;
   text-align: center;
   font-family: Arial, "Arial Black", "Times New Roman", Times, serif;
}

#corps h2
{
   height: 30px;

   background-image: url("images/titre.png");
   background-repeat: no-repeat;
   
   padding-left: 30px;
   color: black;
   text-align: left;
}


/* Le pied de page (qui se trouve tout en bas, en général pour les copyrights) */

#pied
{
   padding: 5px;

   text-align: center;

   color: black;
   background-color: #93baed;
   background-image: url("images/motif.png");
   background-repeat: repeat-x;
   
   border: 2px solid black;
}
.news
{

border-bottom : 1px solid #b5c4d3;
background : blue;
margin-bottom : 15px;
margin-left : auto;
margin-right : auto;
width : 78%;
clear : both;

}
#message_or {
padding-right:150px;
padding-left:150px;
text-align:center;
}



VOILA


0
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 6
13 janv. 2009 à 22:15
personne ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 6
15 janv. 2009 à 07:13
UP
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
15 janv. 2009 à 17:09
Désolé j'ai pas eu le temps de voir ça avant.

En fait, visiblement ton <div id="corps"> n'est pas fermé. En fait il faudrai que tu le ferme après l'affichage des messages et donc après le while.

En fait tu peux essayer:
</div>
<div id="clear:both">

à la fin de ton code.
0
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 6
18 janv. 2009 à 16:23
non ca marche pas
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
21 janv. 2009 à 12:15
En fait ce qui serai bien c'est que tu me remettes à chaque fois ton code.
0
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 6
21 janv. 2009 à 16:37
ok

php :

<?php
include ("includes/header.php");
include ("includes/menu.php");
include_once ("includes/bdd.php");
?>
<div id="corps">
<form method="post" action="livreor.php">
        <p>Mon site vous plaît ? Laissez-moi un message !</p>
        <p>
		<?php if(isset($_SESSION['id']))
		{ ?>
		   Pseudo : <strong><?php echo $_SESSION['pseudo'] ;?></strong><br />
		   	<input type="hidden" name="pseudo" value="<?php echo $_SESSION['pseudo'] ;?>"/>
		<?php }
		else
		{ ?>
            Pseudo : <input name="pseudo" /><br />
			<?php } ?>
  
            Message :<br />
            <textarea name="message" rows="8" cols="35"></textarea><br />
            <input type="submit" value="Envoyer" />
        </p>
    </form>
 
    <p class="pages">
 
<?php
mysql_connect("***", "***", "***");
mysql_select_db("***");
 
// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------
 
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
    $message = nl2br(mysql_real_escape_string(htmlspecialchars($_POST['message']))); // De même pour le message ; Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />

     $ip = $_SERVER['REMOTE_ADDR'];
    // On peut enfin enregistrer :o)
    mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "',  '" . $ip . "')")or die (mysql_error());
}
 
// --------------- 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 = 20; // Essayez de changer ce nombre pour voir :o)
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$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="livreor.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 livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
 
while ($donnees = mysql_fetch_array($reponse))
{
        echo '<div="message_or"><p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p></div>';
}
 
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>
</div>
<div id="clear:both">
</div>
<?php include("includes/pied.php")?>




css :

ul#menu_horizontal { 
width : 600px; 
height : 30px;
margin-left: auto;
margin-right: auto;
padding : 0;
border : 1px dashed white;
list-style-type : none; 
}
 
ul#menu_horizontal li {
padding : 0 0.5em;  
line-height : 30px;
}
 
ul#menu_horizontal li.bouton_gauche {
float : left;
border-right : 1px dashed black; 
}
 
ul#menu_horizontal li.bouton_droite {
float : right;
border-left : 1px dashed wh
}

body
{
   width: 760px;
   margin: auto;
   margin-top: 20px;
   margin-bottom: 20px;    
   background-color: #cce5ff;
}

/* L'en-tête */

#en_tete
{
   width: 760px;
   height: 100px;
   background-repeat: no-repeat;
   margin-bottom: 10px;
}

#corps
{
   margin-left: 75;
   margin-bottom: auto;
   padding: 5px;
   
   color: black;
   background-color: #c6e0f7;
   background-image: url("images/motif.png");
   background-repeat: repeat-x;
   
   border: 2px solid black;
}

#corps h1
{
   color: black;
   text-align: center;
   font-family: Arial, "Arial Black", "Times New Roman", Times, serif;
}

#corps h2
{
   height: 30px;

   background-image: url("images/titre.png");
   background-repeat: no-repeat;
   
   padding-left: 30px;
   color: black;
   text-align: left;
}


/* Le pied de page (qui se trouve tout en bas, en général pour les copyrights) */

#pied
{
   padding: 5px;

   text-align: center;

   color: black;
   background-color: #93baed;
   background-image: url("images/motif.png");
   background-repeat: repeat-x;
   
   border: 2px solid black;
}
.news
{

border-bottom : 1px solid #b5c4d3;
background : blue;
margin-bottom : 15px;
margin-left : auto;
margin-right : auto;
width : 78%;
clear : both;

}
#message_or {
padding-right:150px;
padding-left:150px;
text-align:center;
}





VOILA
0
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 6
30 janv. 2009 à 16:17
UpUp
0
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 6
2 févr. 2009 à 22:16
UP p'U
0
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 6
2 févr. 2009 à 22:22
on peut m'aider ?!
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
3 févr. 2009 à 19:01
Faut que vérifie chaque balise DIV et la manière dont elles sont placé et fermé.
Par exemple tu met à la fin:
<div id="clear:both">
</div>

La balise est dont aussitôt fermé. Elle n'a donc pas d'utilité.
Les balises ne doivent pas se chevauché.
Exemple, on ne peux pas écrire:
<p><a href=""></p></a>

Si la balise que tu veux fermé est une situé avant, met plutôt:
</div>
<div id="clear:both">

Y'a aussi un truc que tu fait qui sert pas à grand chose et qui te fait utilisé des balises supplémentaire.
Pour les messages, tu met:
<div="message_or"><p>

DIV et P sont deux balises de type BLOC. C'est a dire que tu peux à priori leurs mettre les même attributs. Dans un tel cas, combiné les deux est inutile. Si tu mettais les attributs du div sur le p, ça te permettrait même d'y voir plus clair avec tes nombreuses div et sur la manière dont elles se ferme.
0
web-actu Messages postés 99 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 21 août 2009 6
21 août 2009 à 11:09
Merci mais en faite ce n'est pas mon code... c'est un "copain" qui ma passer ce code et y'avez plein de bug....

Mais c'est bon résolut !!!
0