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

Langage PHP Discussion :

Retour à la ligne non respecté


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Retour à la ligne non respecté
    Bonjour j'ai un problème avec mon script quand un commentaire est envoyé, le commentaire ne respecte pas les retour a la ligne, resultat le commentaire dépasse du design du site.

    Voici mon code :

    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
    <span class="border"></span>
     
    <?php
     
    echo
     
    '<form method="post" action="upload.php?id=' .$_GET['id']. '">' ?>
     
    <p align="left">Laisser un commentaire</p>
            <p align="left">
    		<br />
    	Nom (obligatoire) : <input type="text" name="pseudo" value="<?php echo htmlentities(trim($_SESSION['login2'])); ?>" /><br/><br/>
        Commentaire :<br />
                <TEXTAREA type="text" rows="5" cols="61" name="message"></TEXTAREA><br />
                <input type="submit" value="Envoyer" />
            </p>
        </form>
     
     
     <div id="pagination">
    <?php
     
    // --------------- Etape 1 -----------------
    // Si un message est envoyé, on l'enregistre
    // -----------------------------------------
     
    if (isset($_POST['message']) AND isset($_POST['pseudo']))
    {
    	$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); 
        $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('', '". $_GET['id'] ."', '" . $pseudo. "', '" . $message . "', '" . time() . "')");
     
    }
     
    // --------------- 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; // 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 WHERE id2="' . $_GET['id'] . '" ');
    $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="upload.php?id='.$_GET['id'].'&page=' . $i . '">' . $i . '</a> ';
    }
    ?>
    <br/><br/>
    </div>
     
    <span class="border"></span>
    <p align="left"><?php echo $totalDesMessages?> commentaires</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 WHERE id2="' . $_GET['id'] . '" ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage );
     
    while ($donnees = mysql_fetch_array($reponse))
    {
            echo ' <p align="left">
    		
    '.nl2br($donnees['pseudo']).' le '.date('d/m/Y', $donnees['timestamp']);?> à <?php echo date('H\:i\:s\ ', $donnees['timestamp']).': 
     <br />' . nl2br($donnees['message']) . '</p>
    <br/>
    ';
     
    }
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut déjà choisir si tu utilises nl2br() avant l'insertion ou avant l'affichage, mais ca ne sert a rien de le faire aux deux.
    Il est plutôt recommandé de faire l'insertion tel quel et d'appliquer nl2br puis htmlspecialchars a l'affichage.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Sa ne change rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    while ($donnees = mysql_fetch_array($reponse))
    {
            echo ' <p align="right">Par
    		
    <em>'.nl2br(htmlspecialchars($donnees['pseudo'])).'</em>, le '.date('d/m/Y', $donnees['timestamp']);?> à <?php echo date('H\:i\:s\ ', $donnees['timestamp']).'</p>
    <span class="border2"></span>
    
     <br /><p align="left">' . nl2br(htmlspecialchars($donnees['message'])) . '</p>
    <br/>
    ';
     
    }
    ?>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi tu le fais sur le pseudo ?

    Est-ce que tu vois les <br/> dans la source html ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Peut importe pour le pseudo c'est surtout le message le plus important, et oui je vois tous les <br/> dans mon code source :s:s

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et a l'endroit du <br/> le texte ne vas pas a la ligne ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    C'est pas un problème de <br/> le message est insérer dans un <TEXTAREA>
    les <br/> fonctionne tous très bien

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    quel est ton problème alors ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2010
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Je me permets de répondre à la suite, non pas que j'aie une réponse, mais comme j'ai un problème similaire...

    Moi je souhaite remplir une textarea avec une variable texte dans laquelle j'ai remplacé les retours chariot par des %20, mais quand je cherche à les remplacer, des <br /> apparaissent dans la textarea, au lieu de mettre le texte à la ligne.

    Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resumePartie = str_replace('%20', "\r\n", html_entity_decode($_GET['re']));
    j'ai tenté de remplacer par des \n, des <br>, etc... mais pareil... la balise s'affiche dans la textarea...

    Quelqu'un sait me dire pourquoi ?

  10. #10
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonjour à tous,

    Pour afficher les retours à la lignes dans un textarea, il ne faut pas mettre de <br /> sinon ils seront affichés.

    Par contre, dans d'autres éléments, oui.

    J'ai fait ce petit test qui fonctionne très bien :
    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
    <?php
    $message = '';
    if (isset($_GET['message'])) {
    	$message = htmlentities($_GET['message']);
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>Test</title>
    	</head>
    	<body>
    		<form action="index.php" method="get">
    			<div>
    				<textarea name="message"><?php echo $message; ?></textarea>
    			</div>
    			<div><?php echo nl2br($message); ?></div>
    			<div>
    				<input type="submit" value="Envoyer" />
    			</div>
    		</form>
    	</body>
    </html>
    Bon développement
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

Discussions similaires

  1. Retour à la ligne non désiré
    Par creuk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/11/2014, 15h22
  2. Retour à la ligne non désiré avec fwrite()
    Par erehcab dans le forum Langage
    Réponses: 1
    Dernier message: 09/09/2011, 12h51
  3. [MySQL] Retours à la ligne non désirés
    Par novisoft dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/12/2010, 12h20
  4. Commande printf retour à la ligne non voulu
    Par Rithy666 dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 05/11/2010, 16h28
  5. [CKEditor] Retour à la ligne non automatique
    Par El Incognito dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 19/05/2009, 15h55

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