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 :

Mettre un retour à la ligne dans un message passé en paramètre dans une url


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut Mettre un retour à la ligne dans un message passé en paramètre dans une url
    bonsoir

    je voudrai transmettre un retour à la ligne dans mon message. le \n ne fonctionne pas <br/> ne fonctionne pas non plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $message='Une erreur de: "non correspondance" s\'est produite. \nSi l\'erreur persiste prévenez l\'administrateur';
    header('Location:messages.php?ID='.$id_adherent.'&message='.$message.'&adresse='.$adresse.'&duree='.$duree);
    partie de code la page de réception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $message=nl2br(htmlspecialchars)($_GET['message']);
    ...
    <a style="color:red"><?php echo $message ?>  </a>
    (que je mette un paragraphe <p> ou un <area> c'est la même chose

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    \n puis nl2br() devraient suffire.
    Attention d'appliquer htmlspecialchars() AVANT nl2br(), sinon ton <br> sera échappé.
    Perso je passerais le message en variable de session plutôt qu'en GET.

  3. #3
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    bonjour,

    • '\n' ne fonctionne pas.
    • il faut utiliser "\n" avec double quote.

    de plus, quand on passe par l'URL, il est recommandé, voire obligatoire, d'utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $message='Une erreur de: "non correspondance" s\'est produite. ' . "\n" . 'Si l\'erreur persiste prévenez l\'administrateur';
    header('Location:messages.php?ID='.$id_adherent.'&message='.rawurlencode($message).'&adresse='.rawurlencode($adresse).'&duree='.$duree);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $message = nl2br(htmlspecialchars(rawurldecode($_GET['message'])));
    echo $message;

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Bien vu pour le délimiteur "

    J'en profite pour préciser que nl2br() peut être évitée grâce au CSS white-space: pre-line https://developer.mozilla.org/fr/doc...SS/white-space

    et que la syntaxe HEREDOC simplifie la manipulation de chaînes multilignes et/ou contenant des " ou des '

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $message = <<<BUFFER
        Une erreur de: "non correspondance" s'est produite
        Si l'erreur persiste prévenez l'administrateur
        BUFFER;

  5. #5
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    @Seb.

    Attention avec la syntaxe HEREDOC :

    Avertissement

    Il est très important de noter que la ligne contenant l'identifiant de fin ne doit contenir aucun autre caractère, mis à part un point-virgule ( ; ).
    Cela signifie en particulier que l'identifiant ne doit pas être indenté, et qu'il ne doit y avoir aucun espace ou tabulation avant ou après le point-virgule.
    Donc ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $message = <<<BUFFER
        Une erreur de: "non correspondance" s'est produite
        Si l'erreur persiste prévenez l'administrateur
    BUFFER;

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    La syntaxe donnée est valide à partir de PHP 7.3 (auparavant il fallait, en effet, que le tag de fermeture soit en début de ligne => à l'époque le HEREDOC était donc rédhibitoire pour moi )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $message = <<<BUFFER
        Une erreur de: "non correspondance" s'est produite
        Si l'erreur persiste prévenez l'administrateur
        BUFFER;
    est donc valide.

    De plus l'indentation est déterminée grâce à la position de "BUFFER;", ce qui permet à PHP de supprimer automatiquement les espaces initiales et nous donne ainsi une chaîne propre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/03/2016, 13h22
  2. [CSS] Empecher le retour à la ligne dans une cellule
    Par pekka77 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 26/02/2009, 16h50
  3. Réponses: 7
    Dernier message: 16/09/2008, 19h09
  4. Retour à la ligne dans une zone de text
    Par hnb2003 dans le forum Access
    Réponses: 2
    Dernier message: 13/04/2006, 11h56
  5. Pb retour de ligne dans une balise DT
    Par lord_paco dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/12/2005, 17h11

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