[Résolu] Affiche erreur si message vide

Eléphant du PHP | 233 Messages

14 avr. 2012, 17:13

Bonjour à tous,
quand je poste mon message vide normalement je devrais avoir l'erreur : message vide, hors le message est posté malgré tout.
Avez vous une idée :?:
Voici le code :
<?php if(!isset($_SESSION['valid'])){
echo"<h5><br>Vous n'êtes pas connecté.<br><br></h5>";
}
else{

$mess=isset($_REQUEST['message']) ? nl2brstrict($_REQUEST['message']) : null;
$sujet=isset($_REQUEST['sujet']) ? $_REQUEST['sujet'] : null;

  $exp=$_SESSION['valid'];
  $dest=isset($_REQUEST['dest']) ? $_REQUEST['dest'] : null;
  $envoi=isset($_REQUEST['envoi']) ? $_REQUEST['envoi'] : null;
 
    if($envoi=='ok'){
       
    if($mess<>""){
    
    $date=date('Y-m-d H:i:s');
  
    $req="INSERT INTO coms(datemess,sujet,message,exp,desti) VALUES('$date','$sujet','$mess','$exp','$dest')";
    $res=mysql_query($req,$cnx);
    
       if($res){
       echo"<h6><br>Votre commentaire a bien été envoyé.<br><br></h6>";
       }
       else{
       echo"<h5><br>Impossible d'envoyer le message.<br><br></h5>";
       }
       }
       else{
       echo"<h5><br>Message vide.<br><br></h5>";
       }
     }
     echo"<h2>Envoyer un commentaire à ".$dest."</h2>";
     echo"<form action='index.php?genre=envoicom&dest=$dest&envoi=ok' name='poster' method='post'>";
     ?>

ViPHP
ViPHP | 2577 Messages

14 avr. 2012, 17:34

La première chose à faire est de regarder ce qu'il y a dans $mess juste avant le test : var_dump($mess);

Eléphant du PHP | 233 Messages

14 avr. 2012, 18:21

c'est pas fait avec : if($mess<>""){
:?:

Mammouth du PHP | 790 Messages

14 avr. 2012, 18:32

isset test au sein de ton script si ta variable est différente de null...
var_dump te permet de voir de tes propres yeux ce qu'il y a dedans...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Eléphant du PHP | 233 Messages

14 avr. 2012, 19:24

Voici le message renvoyé par var_dump :

string '<br>' (length=4)

j'ai contrôlé je ne vois pas de <br> (dans l'include pas de <br> non plus)

je mets le code en entier sait-on jamais :
<?php

if(!isset($_SESSION['valid'])){
echo"<h5><br>Vous n'êtes pas connecté.<br><br></h5>";
}
else{

$mess=isset($_REQUEST['message']) ? nl2brstrict($_REQUEST['message']) : null; 
$sujet=isset($_REQUEST['sujet']) ? $_REQUEST['sujet'] : null;

  $exp=$_SESSION['valid'];
  $dest=isset($_REQUEST['dest']) ? $_REQUEST['dest'] : null;
  $envoi=isset($_REQUEST['envoi']) ? $_REQUEST['envoi'] : null;
  //si envoi existe et egal à ok alors on teste l'envoi d'un message
    if($envoi=='ok'){
   
    
       
    if($mess<>""){
	
    //date actuelle lors de l'envoi 
    $date=date('Y-m-d H:i:s');
  
    $req="INSERT INTO mess(datemess,sujet,message,exp,desti) VALUES('$date','$sujet','$mess','$exp','$dest')";
    $res=mysql_query($req,$cnx);
    
       if($res){ 
       echo"<h6><br>Votre message a bien été envoyé.<br><br></h6>"; var_dump($mess);
       }
       else{
       echo"<h5><br>Impossible d'envoyer le message.<br><br></h5>";
       }
       }
       else{
       echo"<h5><br>Message vide.<br><br></h5>"; 
       }
     }
     echo"<h2>Envoyer un message à ".$dest."</h2>";
     echo"<form action='index.php?genre=envoimess&dest=$dest&envoi=ok' name='poster' method='post'>";
     
 echo"<table class='tab' border='0' width='90%'>
 <tr><td>Sujet : </td><td><input type='text'  size='30' name='sujet'></td></tr><table>";
 //liste des images des smileys qui vont intégrer les caractères appropriés (javascript) eux meme filtré par la fonction smileys en php
 //voir INC/mesfonctions.php
     
include('INC/choixsmileys.php'); 

?>


<table width="50%" border="0" align="center" class="tab">
<td><tr>
<CENTER><textarea
   rows="15"
   cols="65"
   name="message"
   wrap="virtual"
   onmouseover="this.focus();">

</textarea></CENTER>
</td></tr>
<tr><td><input type='submit' name='envoyer' value='Poster votre message'></td></tr></table></form>



<?php


}


?>
     
     
     
     
     
     
     
     
    

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 avr. 2012, 22:46

Ta chaine n'est donc pas vide... elle doit contenir au moins un retour à la ligne, qui du coup, lorsque tu fais appel à ta fonction nl2brstrict, ajoute (ou remplace selon ce que fait ta fonction) une balise <br> dans ta variable $mess qui du coup est encore moins vide :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 233 Messages

15 avr. 2012, 10:58

bonjour,

il y avais un forçage '<br>' dans le textaera invisible, je l'ai donc remplacé par : <textarea name="message" cols="60" rows="15" wrap="virtual"></textarea>

Problème donc résolut merci de clore le sujet =D>

Mammouth du PHP | 790 Messages

15 avr. 2012, 13:23

salut, c'est a toi de clore le sujet en modifiant le titre de ton 1er message !
a plus...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Eléphant du PHP | 233 Messages

15 avr. 2012, 14:03

je peux pas modifier mon premier message...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 avr. 2012, 16:43

En principe, on a un bouton résolu pour ça, mais il est actuellement chez le garagiste et vous savez comment ça se passe... on vient pour une vidange et il nous en colle pour le carburateur, le joint de culasse, les plaquettes de frein, ... mais on ne désespère pas de le récupérer un jour :)

J'ai fait la modif en attendant :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...