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 :

[Conception] non affichage de $erreur


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut [Conception] non affichage de $erreur
    Bonjour,

    j'ai un problème avec un $erreur qui ne s'affiche pas suite à la vérification qu'un formulaire est bien rempli. la vérification s'effectue dans la même page que celle qui contient le formulaire.

    voici la construction du 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
    - <? php, session start ; connexion à la base , récupération de variables de session ?>
    - <? php vérification que le formulaire a bien été rempli :
    
    if (isset($_POST['ajout']) && $_POST['ajout'] == 'Ajout') 
    {
    		if // si les champs sont vides
     		(
    			(empty($_POST['description'])) 
    			OR 
    			(empty($_POST['contact']))
    			OR 
    			(
    			(empty($_POST['categorie']))
    			AND 
    			(empty($_POST['categorie2']))
    			)
    		)//fin if vérification des champs vides
    		
    		{$erreur='merci de remplir tous les champs marqués de*';}
    		else // c'est bien rempli
    {	connexion, intégration des données }
    
     }// fin du if vérification que le formulaire est rempli
    ?>
    <html>
    <head><body> etc etc
    		  <?php
    if (isset($erreur)) echo '<br>',$erreur,'<br>';
    ?> <form name="Ajout" action="news_ajout.php" method="post">..</form>  
    </body>
    </html>
    quand je définis $erreur, et que j'envoie le formulaire sans rien remplir, j'arrive à une page blanche. par contre, si à la place de définir $erreur, je fais {echo'merci de remplir tous les champs';} j'arrive bien à une page blanche avec cette phrase d'indiquée.

    Je ne comprends pas pourquoi en définissant $erreur je n'arrive pas à ma page avec le formulaire + le message d'erreur là où j'ai indiqué qu'il devait être.

    Merci à ceux qui pourront m'aider

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Par défaut
    Bonjour,

    que te renvoie isset($erreur) lorsque tu ne remplis pas les champs ?
    Par ailleurs, une concaténation s'effectue avec des points et non des virgules...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Par défaut
    Bonjour crelha,

    Je ne vois pas d'erreur dans le code que tu as copié mais il n'est pas complet...


    Eventuellement tu pourrais essayé de placé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($erreur)) echo '<br>',$erreur,'<br>';
    juste avant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    }// fin du if vérification que le formulaire est rempli
    ...tu as peut-etre utilisé un exit() ou une redirection dans cette partie, ce qui empeche d'arriver jusqu'à la lecture de $erreur.


    Bonne chance...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Par défaut
    Tu as tout à fais raison navis84,

    Si Guitou passe par là,il va encore se taper la tête...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($erreur)) echo '<br>' .$erreur. '<br>';
    ...voila,c'est mieux avec des points

  5. #5
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut
    j'ai corrigé
    <?php
    if (isset($erreur)) echo '<br>'.$erreur.'<br>';
    ?>

    ce qui ne change rien pour moi, sauf que j'évite des bleus à Guitou .

    sur la suggestion de déplacer avant " fin du if vérification que le formulaire est bien rempli", ce n'est plus possible, car la syntaxe if() $xxx= ; ne serait plus correcte.

    en revanche, j'ai essayé
    if // si les champs sont vides
    (
    (empty($_POST['description']))
    OR
    (empty($_POST['contact']))
    OR
    (
    (empty($_POST['categorie']))
    AND
    (empty($_POST['categorie2']))
    )
    )//fin if vérification des champs vides

    {$erreur='merci de remplir tous les champs marqués de*';
    echo '<br>'.$erreur.'<br>';}
    qui bien sûr fait apparaitre le message d'erreur sur une page blanche.

    je voulais éviter de vous coller tout le code, mais je crois que je vais devoir en mettre plus :


    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
    <?php
    session_start();
    if (!isset($_SESSION['login'])) 
    {
        header ('Location: guideindex.php');
        exit();
    }
    else
    {
    // on se connecte à notre base 
    $base = mysql_connect ('', '', '');
    mysql_select_db ('', $base);
     
    // on prépare une requête pour pouvoir afficher ensuite les éléments
    $sql = 'SELECT * FROM aide_st WHERE login="'.addslashes($_SESSION['login']).'" ';
    // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    //récupération des résultats sous forme d'un tableau
    $data = mysql_fetch_array($req);
    $_SESSION['clef'] =$data['s_clef'];
     
    // on libère l'espace mémoire alloué pour cette interrogation de la base
    mysql_free_result ($req);
    mysql_close ();
    }
    ?>
    <?php
     
    if (isset($_POST['ajout']) && $_POST['ajout'] == 'Ajout') 
    {	
    		if // si les champs sont vides
     		(
    			(empty($_POST['description'])) 
    			OR 
    			(empty($_POST['contact']))
    			OR 
    			(
    			(empty($_POST['categorie']))
    			AND 
    			(empty($_POST['categorie2']))
    			)
    		)//fin if vérification des champs vides
     
    		{$erreur='merci de remplir tous les champs marqués de*';
    		}
     
    		else // c'est bien rempli
    		{	
     			// on se connecte à notre base 
    			$base = mysql_connect ('localhost', '', '');
    			mysql_select_db ('', $base);
        			// j'épargne les définitions de variables
    $jour = date("Y-m-d");
    			$sql1 = 'INSERT INTO aide_news VALUES ("","'.$_SESSION['clef'].'","'.$description.'","'.$contact.'","'.$categorie.'","'.$date.'","'.$jour.'")'; 
     
       			 // on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
           		 mysql_query($sql1) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());        
     
           		 // on ferme la connexion à la base
     
     			echo "<script language='javascript'>window.location.href='newsajout_ok.php'</script>";
    		}// fin du else bien rempli	
    	exit();
     	mysql_close();
     }// fin du if post
    ?>
     
     
    puis html etc... et 
      <?php
    if (isset($erreur)) echo '<br>'.$erreur.'<br>';
    ?>

    Quelqu'un y voit plus clair que moi ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Par défaut
    C'est bien ce que je pensais...

    Tu attribues une valeur à $erreur si le formulaire a été soumis...tu fais ton traitement puis.....exit().

    Etant donné que l'affichage de $erreur est en dehors du "if formulaire soumis" et que tu arretes le script avec exit(), ton sript me va pas jusqu'à la lecture de $erreur.

    Donc pour afficher le message d'erreur sur une page blanche, tu places

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($erreur)) echo '<br>'.$erreur.'<br>';
    juste avant exit();

    Pour afficher le message d'erreur et le formulaire tu supprimes simplement le exit();

    Voila...il faut bien que tu comprennes que la fonction exit() termine l'execution du script courant.

    J'espère que ca réglera ton problème...

  7. #7
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut
    Merci beaucoup, effectivement ca marche en supprimant les deux lignes. cependant, il faut bien que je les intègre dans le code (exit, my sql close), et là, je ne vois plus où les intégrer au code ?

    Merci de ton aide

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

Discussions similaires

  1. [2.x] Problème 'affichage d'erreur sur champ Date non valide
    Par charliejo dans le forum Symfony
    Réponses: 3
    Dernier message: 21/03/2015, 13h50
  2. [CR XI] Non affichage des champs en mode conception
    Par juju05 dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 17/12/2014, 13h52
  3. [CR XI] Non affichage des champs en mode conception
    Par juju05 dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 14/11/2013, 08h53
  4. [EasyPHP] [Serveur] [EasyPHP/Wamp5]Non affichage des erreurs
    Par leodi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 27/03/2006, 20h29
  5. [Eclipse 3.0]Affichage des erreurs
    Par alfsalim dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/07/2004, 17h33

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