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 :

pb de variable avec un retour chariot présent dans un textarea


Sujet :

Langage PHP

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut pb de variable avec un retour chariot présent dans un textarea
    Bonjour,

    Je vous explique mon problème:

    J'ai créé un formulaire en html dans lequel il y a un zone de texte pour écrire le titre d'un sujet et un textearea pour y mettre le message.

    A l'envoi, les données sont transmises par un $_POST.

    Sur cette page, je fais un contrôle qu'il y a bien présence d'un sujet et d'un message.
    Tout ce passe très bien s'il n'y a pas de "retour chariot" dans le message. Les controles sont bien réalisés.
    Dans le cas contraire, plus rien ne fonctionne et aucun controle n'est réalisé.

    Je ne comprend pas pourquoi. Je vous mets mon script qui gère mes controles ci-dessous.
    Si quelqu'un peut m'expliquer, ce sera avec grand plaisir.

    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
     
    $sujet = $_POST['sujet'];
    $message = $_POST['message'];
     
    if(empty($sujet))
    {
    	echo"Votre message n\'a pas de titre.";
    }
    else
    {
    	if(empty($message))
    	{
    		echo"Votre message est vide.";
    	}
    	else
    	{
     
    	}
    }

  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
    Est-ce normal que le cas "les deux sont remplis" ne contienne rien ?

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Est-ce normal que le cas "les deux sont remplis" ne contienne rien ?
    Pour le moment oui, car je fais juste des tests. Il y a une commande "echo" (qui n'y est pas ici) pour voir le résultat pour le moment.
    Dans le script définitif il y aura une requete sql pour stocker les données.

  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
    Quand tu dis
    plus rien ne fonctionne et aucun controle n'est réalisé
    tu veux dire que tu n'obtiens aucun des 3 echo ?

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Quand tu dis
    tu veux dire que tu n'obtiens aucun des 3 echo ?
    Oui, c'est bien ça.

    J'ai réussi à trouver une parade pour rentrer dans la première condition en faisant un "if(isset($sujet) && strlen($sujet)==0)"
    mais là, j'ai un souci avec mon header('location:boite.php?mess='.$message.''); car ma variable $message contient des retours ligne.

  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
    Saurais-tu produire un code qui permette de reproduire ton problème ?

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut
    Oui, voici le script que je veux faire.

    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
     
    <?php
    $sujet = $_POST['sujet'];
    $message = $_POST['message'];
     
    if(isset($sujet) && strlen($sujet)==0)
    {
           header('location:boite.php?message='.$message.'');
    }
    else
    {
    	if(empty($message))
    	{
    		 header('location:boite.php?sujet='.$sujet.'');
     
    	}
    	else
    	{
    	    mysql_query("INSERT INTO messagerie SET message='$message', sujet='$sujet'");
    	}
    }
    ?>

  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
    Pas ce que tu veux faire, un code qui permette de reproduire le problème que tu rencontres.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pas ce que tu veux faire, un code qui permette de reproduire le problème que tu rencontres.
    Et bien le code que j'ai mis ci-dessus provoque mon pb. il est lié au fait que ma variable $message (qui est un texte) a des retours chariot dedans. Ce qui provoque le message d'erreur suivant: Warning: Header may not contain more than a single header, new line detected. in /mnt/159/sdb/6/7.....

  10. #10
    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
    Tu aurais gagné du temps si tu nous avais donné le code et les erreurs dés le début.

    Utilise rawurlencode() sur les données que tu places dans l'url.
    Au passage quand même, re-transmettre du texte dans l'url c'est un peu crado.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu aurais gagné du temps si tu nous avais donné le code et les erreurs dés le début.

    Utilise rawurlencode() sur les données que tu places dans l'url.
    Au passage quand même, re-transmettre du texte dans l'url c'est un peu crado.
    C'est pour éviter à la personne qui a écrit un message d'avoir à le retapper si elle oublie d'y mettre un titre.
    S'il existe un moyen de le faire plus propre, je suis preneur.

  12. #12
    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
    une session php.

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par sabotage Voir le message
    une session php.
    Oupsssssss. C'est si simple que je n'y ai même pas pensé. Merci encore, je vais modifier mon script.

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Au passage fait attention avec strlen car cette fonction n'est pas compatible utf-8 et cet encodage est utilisé de plus en plus souvent (même pour des sites uniquement en français) ne serait-ce que pour compatibilité avec des lib comme jquery ou des fonctions php comme json_encode etc.

    Donc si besoin, pour l'équivalent de strlen et autres fonctions sur les chaines compatibles utf-8 tu peux regarder ce lien.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/04/2009, 09h36
  2. Retour chariot + récupération dans une variable JS
    Par seblo_scoqi dans le forum Langage
    Réponses: 12
    Dernier message: 03/12/2008, 10h37
  3. Ecrire un fichier .txt avec des retours chariot
    Par french-petzouille dans le forum Langage
    Réponses: 9
    Dernier message: 30/03/2007, 20h01
  4. [JSTL 1.0.6] affichage d'un texte avec des retour chariots
    Par clettebou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/08/2006, 10h16
  5. variable $_ sans retour chariot
    Par samipate dans le forum Langage
    Réponses: 1
    Dernier message: 11/11/2005, 17h15

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