Notice: Undefined variable: frm in

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: frm in

Re: Notice: Undefined variable: frm in

par Mazarini » 11 mai 2011, 14:30

Bonjour,

Oui, c'est normal, ce qui n'est pas normal, c'est d'utiliser une variable que tu n'a pas initialisée. Ce mécanisme est surtout utile pour détecter les fautes de frappe qui entrainent parfois des bugs très difficiles à retrouver comme un O à la place d'un 0.

Un bonne usage veut que l'on affecte une valeur à une variable avant de l'utiliser.

Re: Notice: Undefined variable: frm in

par 63renaud » 11 mai 2011, 14:10

C'est normal que _$Post soit vide puisque je n'ai encore rien saisi dans les cases.
J'ai pas tout compris mais j'ai rajouté le code si dessus et cela fonctionne

Merci

Re: Notice: Undefined variable: frm in

par moogli » 11 mai 2011, 13:28

yop,

le message est clair tes variables n'existe pas et c'est vrai quand _POST est un tableau vide ;)

@+

Re: Notice: Undefined variable: frm in

par xTG » 11 mai 2011, 13:26

$frm provient en fait de $_POST donc au chargement de ta page rien n'a été envoyé ce qui est normal de déclencher cette erreur.
Il faut toujours vérifier les valeurs avant de les utiliser.

Code : Tout sélectionner

if( isSet($frm['genre']) )   echo ligne_selected(" ","-1",$frm['genre']); 

Notice: Undefined variable: frm in

par 63renaud » 11 mai 2011, 12:42

bonjour

Je voudrais savoir à quoi correspond cette erreur.
Voici mon code ou se trouve les lignes 156 160 161 spécifiées dans le message.
<?php $menu="carnet";
require_once "include/config.inc.php";
?>
<?php require_once "head.inc.php"; ?>
<?php


if (sizeof($_POST) > 0) 
{
      $frm = $_POST;

      $message_erreur = valide_form($frm, $erreurs);

        if (empty($message_erreur)) 
		{
               $id_site=insere_carnet($frm);

				require_once ("include/fct_upload.inc.php");
			
				if (isset($_FILES['fichier'])||!empty($_FILES['fichier'])) $fichier = $_FILES['fichier'];
				if ( $fichier && $fichier != "none")
				{		
					$rep=upload($destDir,$fichier);
					if ($rep[0]== TRUE)
					{
						$fichier=rename_fichier($frm['prenom'],$rep[1]);
					
						$sql = "UPDATE carnet SET photo='".$fichier."' WHERE id='".$id_site."' ";
						assert ('mysql_query($sql)');
						$qid = mysql_query($sql);
						if (!$qid)     die('Requ�te invalide : ' . mysql_error());

						}
					}
				    
				   afficher_enregistrement_succes();
					mysql_close();
				   include("footer.inc.php");
				   exit;
        }
        
}
else
	$_SESSION['textCaptcha']="";

function valide_form(&$frm, &$erreurs) 
{
Global $connex;
 
    $erreurs = array();
    $msg = array();
    
	if ($_SESSION['textCaptcha'] != $frm['textCaptcha']) 
	{
		$erreurs['textCaptcha'] = true;
		$msg['textCaptcha'] = "Erreur de saisie";
	}
	if (empty($frm['prenom']) ) 
	{
		$erreurs['prenom'] = true;
		$msg['prenom'] = "Il manque le pr�nom";
	}

	$email=htmlentities($_POST['email'], ENT_QUOTES,'UTF-8');

	if (empty($email)) 
	{
		$erreurs['email'] = true;
		$msg['email'] = "Absence d'email";
	}
	elseif (!preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$`',$email)) 
	{
		$erreurs['email'] = true;
		$msg['email'] = " Mauvais format d'Email";
	}
	elseif  ((mysql_num_rows(mysql_query("SELECT 1 FROM carnet WHERE email='".$frm['email']."' AND iduser='".$_SESSION['iduser']."'")) > 0))
	{
		$erreurs['email'] = true;
		$msg['email'] = "L'email existe d�j�";
	} 
	
    return $msg;
}

function insere_carnet(&$frm)
{
Global $connex;

		$sql = "
		INSERT INTO carnet (
		        `iduser`
		        , `carnetclef`
		        , `nom`
		        , `prenom`
		        , `adresse1`
		        , `adresse2`	
		        , `codepostal`	
		        , `ville`	
		        , `tel`	
		        , `portable`	
		        , `email`	
		) VALUES (
		        '".$_SESSION['iduser']."'
		        ,'".recup_clef()."'
		        ,'".strtoupper(htmlentities($frm['nom']))."'
		        ,'".ucfirst( strtolower(htmlentities($frm['prenom'])))."'
		        ,'".htmlentities($frm['adresse1'])."'
		        ,'".htmlentities($frm['adresse2'])."'
		        ,'".$frm['codepostal']."'
		        ,'".htmlentities($frm['ville'])."'
		        ,'".htmlentities($frm['tel'])."'
		        ,'".htmlentities($frm['portable'])."'
		        ,'".$frm['email']."'
		 )";
		$qid = mysql_query($sql);
		
		if(! $qid ) die ('Requ�te invalide : ' . mysql_error());       
 		$id_carnet = mysql_insert_id();

        $sql = "
        INSERT INTO carnet_details (
                `idcarnet`
                , `idrubrique`	
                , `observation`	
       	) VALUES (
                '".$id_carnet."'
                ,'".$frm['idrubrique']."'
                ,'".htmlentities($frm['observation'])."'
         )";
 	    $qid = mysql_query($sql);
		if(! $qid ) die ('Requ�te invalide : ' . mysql_error());       


         return $id_carnet;     

}

function afficher_enregistrement_succes()
{
	echo "<h1><center>";
	echo "Enregistrement a �t� correctement enregistr�.";
	echo "</center></h1>";
}



      
?>
<html><body>
Ajouter un contact dans le carnet : 
<form enctype="multipart/form-data" name="fcoord" method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">

<table width="500" border="0" cellspacing="2" cellpadding="2">
 <tr><td align=right>
   Genre :
 </td><td> 
 	<?php
 	echo "<select name=\"genre\">";
  	echo ligne_selected(" ","-1",$frm['genre']);
 	echo ligne_selected("Monsieur","Monsieur",$frm['genre']);
 	echo ligne_selected("Madame","Madame",$frm['genre']);
 	echo ligne_selected("Mademoiselle","Mademoiselle",$frm['genre']);
	echo "</select>";
 	?>
 </td></tr>
  <tr> 
    <td align=right>Nom : </td>
    <td><input name="nom" type="text" value="<?php if (isset($frm['nom'])) echo stripslashes($frm['nom']); ?>"></td>
  </tr>
  <tr> 
    <td align=right>Prenom : </td>
    <td><input name="prenom" type="text" value="<?php if (isset($frm['prenom'])) echo stripslashes($frm['prenom']) ?>">
        * <?php if (isset($erreurs['prenom'])) echo $message_erreur['prenom'] ?></td>
  </tr>
  <tr> 
    <td align=right>Adresse : </td>
    <td><input name="adresse1" type="text"  value="<?php if (isset($frm['adresse1'])) echo stripslashes($frm['adresse1']); ?>"></td>
  </tr>
  <tr> 
    <td align=right>&nbsp; </td>
    <td><input name="adresse2" type="text" value="<?php if (isset($frm['adresse2'])) echo stripslashes($frm['adresse2']); ?>"></td>
  </tr>
  <tr> 
    <td align=right>Code postal : </td>
    <td><input name="codepostal" type="text" size="5" maxlength="5" value="<?php if (isset($frm['codepostal'])) echo stripslashes($frm['codepostal']); ?>"></td>
  </tr>
  <tr> 
    <td align=right>Ville : </td>
    <td><input name="ville" type="text" size="30" maxlength="30" value="<?php if (isset($frm['ville'])) echo stripslashes($frm['ville']); ?>"></td>
  </tr>
 <tr> 
    <td align=right>Email : </td>
    <td><input name="email" type="text" value="<?php if (isset($frm['email'])) echo stripslashes($frm['email']); ?>">
       * <?php if (isset($erreurs['email'])) echo $message_erreur['email'] ?></td>
  </tr>
  <tr> 
    <td align=right>T&eacute;l&eacute;phone : </td>
    <td><input name="tel" type="text" value="<?php if (isset($frm['tel'])) echo stripslashes($frm['tel']); ?>"></td>
  </tr>
  <tr> 
    <td align=right>Portable : </td>
    <td><input name="portable" type="text" value="<?php if (isset($frm['portable'])) echo stripslashes($frm['portable']); ?>"></td>
  </tr>
  <tr> 
    <td align=right>Photo : </td>
    <td> 
    <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $taille_max; ?>" >
<input name="fichier" type="file" >
</td>
  </tr>
  <tr> 
    <td colspan=2><br /><hr><br /></td>
  </tr> 
  <tr> 
    <td align=right>Rubrique : </td>
    <td> 
   
    
	<?php
	
	$sql="SELECT id,iduser,nom FROM rubrique WHERE iduser='".$_SESSION['iduser']."' ORDER BY nom";
	assert ('mysql_query($sql)');
	$rubrique=mysql_query($sql);
	if (!$rubrique)     die('Requ�te invalide : ' . mysql_error());
	if (mysql_num_rows($rubrique)!=0)
	{
		echo "<select name=\"idrubrique\">";
		echo ligne_selected(" ","-1","");
		while( $list=mysql_fetch_object( $rubrique) )       
		{
		 	echo ligne_selected($list->nom,$list->id,'');
		}
		echo "</select>";
	}   
	mysql_free_result($rubrique);
	mysql_close();
	?>
    </td>
  </tr>
 <tr> 
    <td align=right>Observation : </td>
    <td><textarea name="observation" cols="40" rows="3"><?php if (isset($frm['observation'])) echo stripslashes($frm['observation']); ?></textarea></td>
  </tr>
   <tr> 
    <td colspan=2><br /><hr><br /></td>
  </tr> 
   <tr> 
    <td>Captcha</td> 
	<td><img src="include/fct_captcha.inc.php">
 <input type='text' name='textCaptcha' size='10'> * 
 <?php if (isset($erreurs['textCaptcha'])) echo $message_erreur['textCaptcha'] ?></td>
  </tr> 
   <tr> 
    <td colspan=2><br /><hr><br /></td>
  </tr> 
  <tr> 
    <td colspan="2" align=center>
        <input type="submit" name="action" value="Confirmer">
        <input type="submit" name="action" value="Annuler">
      </td>
  </tr>
</table></form>
</body></html>
<?php require ("footer.inc.php"); ?>

Les lignes citées
<?php
 	echo "<select name=\"genre\">";
  	echo ligne_selected(" ","-1",$frm['genre']);   <--------------------------------
 	echo ligne_selected("Monsieur","Monsieur",$frm['genre']);  <--------------------------------
 	echo ligne_selected("Madame","Madame",$frm['genre']);  <--------------------------------
 	echo ligne_selected("Mademoiselle","Mademoiselle",$frm['genre']);  <--------------------------------
	echo "</select>";
 	?>