IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Affichage de mon livre d'or


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 70
    Points : 31
    Points
    31
    Par défaut Affichage de mon livre d'or
    Bonjour,

    J'ai un problème avec mon livre d'or.
    Quand je le teste et que j'y introduit des messages avec des mots très longs (par ex. des mots de 30 caractères), il affiche le message sans couper les mots, ce qui fait que mon site est complètement décalé vers la gauche.
    J'ai copié mon code ci-dessous.
    Pourriez-vous voir ce qui ne va pas et m'aider car je suis dans le pétrain ?
    Merci à vous.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("sitereve");
     
    // --------------- 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 = 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 livreor VALUES('', '" . $pseudo . "', '" . $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 = 8; // 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 = intval($_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 '<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
    		<tr>
    		<td><strong>' . $donnees['pseudo'] . '</strong>  a écrit :</td>
    		</tr>
    		<tr>
    		<td>'.nl2br($donnees['message']).'</td>
    		</tr>
            </table><br /><br />';
    }
     
    mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
     
    ?>

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 908
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 908
    Points : 14 819
    Points
    14 819
    Par défaut
    Tu peux essayer de faire une césure à ton mot grâce à wordwrap().

    Ce n'est peut-être pas la meilleure solution, mais je pense qu'elle peut fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = str_replace( '\n', ' ', wordwrap( $message, 15, '\n', true ) );

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    Bonjour,
    Merci pour votre réponse, mais je ne sais pas où je dois l'insérer.

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 908
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 908
    Points : 14 819
    Points
    14 819
    Par défaut
    Je pense que juste après cette ligne ça ira bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = nl2br($message);

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    Super, cela fonctionne !!!
    Un grand merci pour votre aide.


  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    Je sais que j'abuse, mais je n'y arrive pas toute seule.
    Y a-t-il moyen de changer la couleur de la numérotation des pages des messages du livre d'or ? Les numéros apparaissent en rose et je préfèrerait qu'ils apparaissent en gris par exemple.

  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 908
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 908
    Points : 14 819
    Points
    14 819
    Par défaut
    Là c'est du ressort du CSS.

    Cf la FAQ :
    http://xhtml.developpez.com/faq/?pag...IEN_coloration

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    Merci beaucoup.
    J'ai enfin terminé mon livre d'or, et mon site également.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 70
    Points : 31
    Points
    31
    Par défaut problème affichage avec mon livre d'or
    Bonjour,

    Je viens de mettre mon site en ligne.
    Tant qu'il était en local, le livre d'or fonctionnait.
    Maintenant qu'il est en ligne, un problème se pose : je sais poster un mesage et il s'affiche à l'écran dans la rubrique livre d'or.
    Seulement, quand je clique sur une autre page de mon site, dans le menu, et que je reviens ensuite sur mon livre d'or, le message que j'avais introduit n'y apparait plus. Je suis obligé d'appuyer sur la touche F5 pour que le message apparaisse.
    Pouvez-vous m'aider à résoudre ce problème ?

    Voici le code de ma page livre d'or :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
    -->
    </style></head>
     
    <body>
    <table width="780" border="0" align="center" cellpadding="0" cellspacing="0">
      <!--DWLayoutTable-->
      <tr>
        <td colspan="2"><script type="text/javascript">
    // <![CDATA[
    displayFlash("header.swf", 800, 350, "Contenu alternatif");
    // ]]>
    </script></td>
      </tr>
      <tr>
        <td width="200" rowspan="2" valign="top"><script type="text/javascript">
    // <![CDATA[
    displayFlash("btn.swf", 200, 500, "Contenu alternatif");
    // ]]>
        </script></td>
    	<td width="580" height="38" valign="top"><img src="spacer.jpg" width="38" height="38" /></td>
      </tr>
      <tr>
     
        <td width="546" align="center" valign="top">
        <form method="post" action="livreor.php">
    	    <p class="Style4">Des suggestions, des remarques, des questions ... <br>Laissez-moi un message.</p><br>
            <p><span class="Style1">Pseudo :       <input name="pseudo" /><br/><br>
               <span class="Style1">Message :<br /><br></span>
                <textarea name="message" rows="8" cols="35"></textarea><br/><br>
                <input type="submit" value="Envoyer" />
            </p>    
     
        </form>
     
     
         <p class="pages">
     
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("sitereve");
     
    // --------------- 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 = 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 />
        $message = str_replace( '\n', ' ', wordwrap( $message, 15, '\n', true ) );
        // On peut enfin enregistrer :o)
        mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $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 = 5; // 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 = intval($_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 '<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
    		<tr>
    		<td><strong>' . $donnees['pseudo'] . '</strong>  a écrit :</td>
    		</tr>
    		<tr>
    		<td>'.nl2br($donnees['message']).'</td>
    		</tr>
            </table><br /><br />';
    }
     
    mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
     
    ?>
    Merci à vous pour votre aide.

Discussions similaires

  1. Probleme d'affichage de mon message
    Par zorba49 dans le forum ASP
    Réponses: 2
    Dernier message: 14/03/2006, 12h10
  2. [MySQL] Fractionner en plusieurs pages l'affichage d'un livre d'or
    Par sscouby dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/03/2006, 17h10
  3. [CSS] Probleme avec l'affichage de mon site :
    Par vampyrx dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 29/08/2005, 00h23
  4. Probleme affichage de mon site
    Par Braq dans le forum Webdesign & Ergonomie
    Réponses: 15
    Dernier message: 10/08/2005, 15h08
  5. Affichage de mon site en fonction de l'écran
    Par mobeida dans le forum Webdesign & Ergonomie
    Réponses: 1
    Dernier message: 07/08/2005, 19h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo