Notice: Undefined variable: errors

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Notice: Undefined variable: errors

Re: Notice: Undefined variable: errors

par Ryle » 25 avr. 2016, 13:13

Bonjour,

Tout dépend de la ligne de l'erreur... A vue de nez, je dirais que c'est dans ta boucle quand tu fais appel à $clic = $_POST[$cle];
$cle est bien définie dans ton tableau, mais à aucun moment tu ne vérifies que l'index contenu dans $cle est bien présent dans $_POST... tu demandes à php de récupérer la valeur sans te soucier de savoir si elle existe... s'il ne la trouve pas, il affiche ce genre de message.

Et si c'est pas cette ligne là, il te suffit de contrôler ton code en fonction du message de php :)

Tu dois aussi avoir une erreur ici : empty($clic) && empty($clic) != $reponse['mot']
empty($clic) sera rarement égal à $reponse['mot'] ... :)

Notice: Undefined index: chx_9

par le loup solitaire » 24 avr. 2016, 12:13

merci je n’ai plus d'erreur pour ça, mais par contre j'en ais une autre "undefined index:chx_9" pourquoi?

Re: Notice: Undefined variable: errors

par tof73 » 24 avr. 2016, 11:53

il faut mettre la ligne
$errors = array();
à un endroit où elle sera toujours executé et pas seulement selon un if.

Notice: Undefined variable: errors

par le loup solitaire » 24 avr. 2016, 11:04

bonjour,

je ne comprend pas pourquoi cette erreur, pouvez vous m'expliqué, je sais que ça veut dire "variable non défini", mais pourquoi dans le script.
<?php 

$reponses = array(
    'chx' => array(
        'reponse' => 'un',
        'mot' => 'po',
        'drag' => '___rtable',
         'image' => 'img/portable.gif'
    ) ,
    'chx_1' => array(
        'reponse' => 'le',
        'mot' => 'so',
        'drag' => '___l',
         'image' => 'img/sol.gif'
    ) ,
    'chx_2' => array(
        'reponse' => 'un',
        'mot' => 'peau',
        'drag' => 'dra___',
         'image' => 'img/drapeau.gif'
    ) ,
    'chx_3' => array(
        'reponse' => 'un',
        'mot' => 'teau',
        'drag' => 'pla___',
         'image' => 'img/plateau.gif'
    ) ,
    'chx_4' => array(
        'reponse' => 'des',
        'mot' => 'vau',
        'drag' => 'tra___x',
         'image' => 'img/panneau.gif'
    ) ,
    'chx_5' => array(
        'reponse' => 'de la',
        'mot' => 'sau',
        'drag' => '___ce',
         'image' => 'img/sauce.gif'
    ) ,
    'chx_6' => array(
        'reponse' => 'un',
        'mot' => 'seau',
        'drag' => '____',
         'image' => 'img/seau.gif'
    ) ,
    'chx_7' => array(
        'reponse' => 'du',
        'mot' => 'cho',
        'drag' => '___colat',
        'image' => 'img/chocolat.gif'
    ), 
    'chx_8' => array(
        'reponse' => 'une',
        'mot' => 'to',
        'drag' => '___mate',
         'image' => 'img/tomate.gif'
    ) ,
    'chx_9' => array(
        'reponse' => 'des',
        'mot' => 'chau',
        'drag' => '___ssures',
        'image' => 'img/chaussure.gif'
    ) 

);
 
  
foreach($reponses as $cle => $reponse)
    {
   
              if (isset($_POST['correction']))
        {
        $clic = $_POST[$cle];
	
        if (empty($clic) && empty($clic) !=  $reponse['mot'])
            {
			var_dump($clic);	
            $msg = '<p>veuillez remplir tous les champs</p>';
            echo $msg;
            }
          else
        if ($clic == $reponse['mot'])
            {
			 
            echo '<p style="margin-left:4em;">' . $reponse['mot'] . '</p><p style="margin-left:5em;">'. $reponse['drag'] . '</p><br />';

            }
          else
        if ($clic != $reponse['mot'])
            {
					$errors = array();
                    $errors[$cle] = htmlspecialchars($clic);
                    
                     echo '<article class="content_img"><figure><img src="'. $reponse['image'] .'" alt="" width:"75" height="75" /></figure><p style="color:red;margin-left:4em;"><del>' . $errors[$cle] . '</del><p>'.$reponse['mot'].'</p><p style="text-align:right;margin-left:5em;">'. $reponse['drag'] . '</p></article>';
				
          
                }
        }
    }
                echo'<br />';
         echo'<p style="display:inline-block;margin:2em 0 0 35%;padding:.5em;background:#54d0ce;font-size:1.2em;">Bonnes réponses :'.count($reponse['mot']).' - '.count($errors[$cle]).'/10</p>';
          echo'<br /><br />';

      ?>
merci d'avance