Undefined variable: erreur_champ1 [Résolu]

Messages postés
76
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
13 juin 2015
- - Dernière réponse : f0xi
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
- 2 août 2013 à 16:26
Bonjour

Je rencontre l'erreur suivante : Notice: Undefined variable: erreur_champ1 sur la ligne: <?php if ($erreur_champ1)

Cela fonctionne en PHP4 mais j'ai l'erreur en PHP5 et je ne trouve pas la solution.

Ce code concerne un formulaire:
<div class="center" id="bleu_seul"><span class='gras'>Société:</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <span style="color:#ff0000;">

             <?php if ($erreur_champ1) {
                         echo($icone); }
            ?>

    </span>
<input name="champ1" type="text" value="<?php echo $_SESSION['champ1'];?>"/>
<em>
<span id='rouge_seul' class="aide" title="Veuillez saisir dans ce champs la Raison Sociale de votre Société.">aide ?</span>
</em>


Voici le code PHP et HTML complet:

<?php 
//Compression HTTP
ob_start("ob_gzhandler");


$page='contact.php';
session_start(); 
$ip = $_SERVER["REMOTE_ADDR"];

// mémoriser la version dans la session
if (isset($_GET['version']))
{
$_SESSION['version']= serialize($_GET['version']);
}
else {
$_GET['version'] = 0; //sinon: mode texte par défaut
}

// obtenir la version à partir de la session
if (isset($_SESSION['version']))
{
$_GET['version']=unserialize($_SESSION['version']);
};

// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) 
{
//On commence une session pour enregistrer les variables du formulaire...
$_SESSION['champ1'] = $_POST['champ1'];
$_SESSION['champ2'] = $_POST['champ2'];
$_SESSION['champ3'] = $_POST['champ3'];
$_SESSION['champ4'] = $_POST['champ4'];
$_SESSION['champ5'] = $_POST['champ5'];
$_SESSION['zone_email1'] = $_POST['zone_email1'];

//Evaluation du bouton 1 ...
switch($_POST['bouton1']) {
case "Charpente":
$_SESSION['bouton1'] = "Charpente";
break;
case "Couverture":
$_SESSION['bouton1'] = "Couverture";
break;
case "Autres":
$_SESSION['bouton1'] = "Autres";
break;
default:
$_SESSION['bouton1'] = "";
} // Fin du switch...

//Enregistrement des zones de texte...
$_SESSION['zone_texte1'] = $_POST['zone_texte1'];

// Définir l\'icone apparaissant en cas d\'erreur...


// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 1;

// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size="3" face="Arial, Verdana, Helvetica, sans-serif" color="#CC0000">x</font></b>";
} else {
$icone = "<img src="images/icone.gif"";
}

// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {					
// Addresse de réception du formulaire
$email_dest = "-----@free.fr";
$sujet = "Demande d'informations";
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: toto<----@free.fr>\n";
$entetes .="Return-Path: toto<------@free.fr>\n";
$entetes .="Reply-To: toto<-----@free.fr>\n";
$entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
$partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";
//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face="Verdana" size="2" color="#003366">Société: = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_champs_texte .= "<font face="Verdana" size="2" color="#003366">Site Web: = " . $_SESSION['champ2'] . "</font><br>\n";
$partie_champs_texte .= "<font face="Verdana" size="2" color="#003366">Nom: = " . $_SESSION['champ3'] . "</font><br>\n";
$partie_champs_texte .= "<font face="Verdana" size="2" color="#003366">Prénom: = " . $_SESSION['champ4'] . "</font><br>\n";
$partie_champs_texte .= "<font face="Verdana" size="2" color="#003366">Téléphone: = " . $_SESSION['champ5'] . "</font><br>\n";
$partie_zone_email .= "<font face="Verdana" size="2" color="#003366">Votre Mail: = " . $_SESSION['zone_email1'] . "</font><br>\n";
$partie_boutons .= "<font face="Verdana" size="2" color="#003366">Votre Demande: = " . $_SESSION['bouton1'] . "</font><br>\n";
$partie_zone_texte .= "<font face="Verdana" size="2" color="#003366">Libellé: = " . $_SESSION['zone_texte1'] . "</font><br>\n";

// Fin du message HTML
$fin = "</body></html>\n\n";

$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin;

// Send the e-mail
mail($email_dest,$sujet,$sortie,$entetes);

                    // Rediriger vers la page index
echo "<SCRIPT LANGUAGE='JavaScript'>document.location.href='envoi_valide.php' </SCRIPT>";
                    //echo "<SCRIPT LANGUAGE='JavaScript'>document.location.href='index.php' </SCRIPT>";
                    //exit();

} // Fin du if ($flag_erreur == 0) {

} // Fin de if POST

?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-Transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<?php
include 'inc/head2.inc';
?>
</head>		
<!-- <body oncontextmenu="return false;"> -->
<body>
<div id="conteneur">
<!-- Affichage banniere en haut -->
<?php
include 'inc/banniere_haut.inc';
?>
<!-- Affichage de la Barre de Choix -->
<div class="menu_horizontal">
<?php
include 'inc/date.inc';
?>
</div>
<!-- Menu Horizontal -->
<div id="menu">
<?php
include 'inc/menu.inc';	
?>
<?php
// Effacement de tous les champs du formulaire
$_SESSION['champ1'] = '';
$_SESSION['champ2'] = '';
$_SESSION['champ3'] = '';
$_SESSION['champ4'] = '';
$_SESSION['champ5'] = '';
$_SESSION['zone_email1'] ='';
$_SESSION['bouton1'] = "";
$_SESSION['zone_texte1']="";
?>
<br />
</div>

<!-- Affichage image de fond -->
<div id="image_fond_contact">
<!-- Colonne de Gauche -->
<div id="cont_gauche">
</div>

<!-- Colonne de Droite -->
<div id="cont_droit">
</div>

<!-- Colonne du Centre -->
<div id="cont_centre">

<div> </div>
<form name="mail_form" method="POST"  action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()">
<br />
<div><div class="imTitle">Formulaire de contact</div><div class="taille8" id="rouge"><span id="italic">* Saisie Obligatoire</span></div></div>								
<!-- Saisie Nom de Société -->									
<p>
<hr align="center" width="50%" color="midnightblue" size="3">
<!-- Saisie Nom Société -->
<div class="center" id="bleu_seul"><span class='gras'>Société:</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      				<?php
  											if ($erreur_champ1) {
  												echo($icone);
  											}
  										?>
<input name="champ1" type="text" value="<?php echo $_SESSION['champ1'];?>"/>
<em>
<span id='rouge_seul' class="aide" title="Veuillez saisir dans ce champs la Raison Sociale de votre Société.">aide ?</span>
</em>
</div>

<!-- Saisie URL Site Web -->
<div class="center" id="bleu_seul"><span class='gras'>Site Web:</span>&nbsp;&nbsp;&nbsp;&nbsp;
      										<?php
  											if ($erreur_champ2) {
  												echo($icone);
  											}
  										?>
      										<input name="champ2" type="text" value="<?php echo $_SESSION['champ2'];?>"/>
<em>
<span id='rouge_seul' class="aide" title="Veuillez saisir dans ce champs l'adresse URl de votre site Web.">aide ?</span>
</em>
    									</div>

<!-- Saisie Nom -->
<div class="center" id="bleu_seul"><span class='gras'>Nom:</span><span id="rouge_seul">*</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      										<?php
  											if ($erreur_champ3) {
  												echo($icone);
  											}
  										?>
      										<input name="champ3" type="text" value="<?php echo $_SESSION['champ3'];?>"/>
<em>
<span id='rouge_seul' class="aide" title="Veuillez saisir dans ce champs votre Nom (Exemple: POHU). - OBLIGATOIRE -">aide ?</span>
</em>
    									</div>

<!-- Saisie Prénom -->
<div class="center" id="bleu_seul"><span class='gras'>Prénom:</span><span id="rouge_seul">*</span>&nbsp;&nbsp;&nbsp;&nbsp;
      										<?php
  											if ($erreur_champ4) {
  												echo($icone);
  											}
  										?>
      										<input name="champ4" type="text" value="<?php echo $_SESSION['champ4'];?>"/>
<em>
<span id='rouge_seul' class="aide" title="Veuillez saisir dans ce champs votre Prénom (exemple: Didier). - OBLIGATOIRE -">aide ?</span>
</em>
    									</div>

<!-- Saisie Téléphone -->
<div class="center" id="bleu_seul"><span class='gras'>Téléphone:</span>&nbsp;
      										<?php
  											if ($erreur_champ5) {
  												echo($icone);
  											}
  										?>
      										<input name="champ5" type="text" value="<?php echo $_SESSION['champ5'];?>"/>
<em>
<span id='rouge_seul' class="aide" title="Veuillez saisir dans ce champs votre notre de téléphone Fixe ou Portable (Exemple: 06 78 34 12 73).">aide ?</span>
</em>
    									</div>

<!-- Saisie Mail -->
<div class="center" id="bleu_seul"><span class='gras'>E-Mail:</span><span id="rouge">*</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  										<?php
  											if ($erreur_email1) {
  												echo($icone);
 	 										}
  										?>
  										<input name="zone_email1" type="text" value="<?php echo $_SESSION['zone_email1'];?>"/>
<em>
<span id='rouge_seul' class="aide" title="Veuillez saisir dans ce champs votre adresse E-Mail sous la forme: xxxx@yyy.zz. - OBLIGATOIRE -">aide ?</span>
</em>
    									</div>
</p>




<hr align="center" width="50%" color="midnightblue" size="3">
<!-- Choix de la demande -->
<p>
<div  class="gauche_demande" id="bleu_seul"><span class='gras'>Votre Demande:</span><span id="rouge_seul">*</span>
<em id='rouge_seul' class="aide" title="Veuillez cocher votre choix de demande. - OBLIGATOIRE -">aide ?</em>
</div>	
  									<?php
  										if ($erreur_bouton1) {
  											echo($icone);
  										}
  									?>

<!-- Choix Charpente -->
  									<span class="gauche1" id="fond_form"><input type="radio" name="bouton1" value="Charpente"
<?php
if ($_SESSION['bouton1'] == "Charpente") {
echo(" checked");
}
?>
/>
</span>Charpente	
<br />

<!-- Choix Couverture -->		
<span class="gauche1" id="fond_form"><input type="radio" name="bouton1" value="Couverture" 
<?php
if ($_SESSION['bouton1'] == "Couverture") {
echo(" checked");
}
?>
/>
</span>Couverture
<br />

<!-- Choix Autres -->
<span class="gauche1" id="fond_form"><input type="radio" name="bouton1" value="Autres"
<?php
if ($_SESSION['bouton1'] == "Autres") {
echo(" checked");
}
?>
/>
</span>Autres		
</p>

<p></p>

<hr align="center" width="50%" color="midnightblue" size="3">
<!-- Saisie du Message-->
<p>
<div class="gauche_demande" id="bleu_seul"><span class='gras'>Message:</span><span id="rouge">*</span>
<em id='rouge_seul' class="aide" title="Veuillez saisir dans ce champs votre Message (maxi: 500 caractères). - OBLIGATOIRE -">aide ?</em>
</div>
<div  class="center">
  	  								<?php
  										if ($erreur_texte1) {
  											echo($icone);
  										}
  									?>	

  									<textarea onKeyDown="CheckLen(this)" onKeyUp="CheckLen(this)" name="zone_texte1" cols="34" rows="5"><?php echo $_SESSION['zone_texte1']; ?></textarea>
<em>

</em>
<div>Il vous reste <input type=text name=abd size=3 value="500" id="nb_caracteres">caractères</div>

</div>
</p>


<hr align="center" width="50%" color="midnightblue" size="3">
<div  class="center">
<div> 
          							<input type="reset" name="reset" value=" Effacer "> 
          							<input type="submit" name="envoi" value="Envoyer">
        						</div>
</div>

<div class="center"><input name="nbre_fichiers" type="hidden" id="nbre_fichiers" value=""></div>
</form>
</div>

<div id="marge_demande" class="center">ou contactez-nous à ces coordonnées:</div>
<br />
<div class="center"><b>SARL TRUCMUCHE</b></div>
<div class="center">18 rue des Bois Coupés - 13000 BORDEAUX</div>
<div class="center">Téléphone: 04 25 25 25 25 - Fax: 04 25 25 25 26</div>
<div class="center">eMail: trucmuche@ft.fr</div>
<br />
<div class="center" id="rouge_form">Conformément à la loi Informatique et Libertés du 6 janvier 1978, vous disposez d'un droit d'accès et de rectification aux données personnelles vous concernant.</div>
<div class="center" id="rouge_form">Seule notre société est destinataire des informations que vous lui communiquez..</div>
</div>

<!-- Affichage banniere en bas -->
<div><img alt="image" src="images/barre_bas.JPG" /></div>
<!-- <div id="banniere_bas"></div> -->
</div> <!-- Fin du Conteneur -->
</body>

</html>


Merci de votre aide à tous et de vos lumières ... :)

Cordialement

Didpoy


Didpoy
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
25981
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juillet 2019
313
1
Merci
Utilises :ISSET

Exemple:
<?php 
 IF (ISSET($erreur_champ1)) { echo($icone); }
 ?>


Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jordane45
Messages postés
25981
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juillet 2019
313
1
Merci
Pas de soucis.


ISSET permet de tester si la variable est initialisée, ça ne l'initialise pas vraiment... mais pour votre TEST cela devrai largement suffire.

Sinon pour initialiser une variable, on peut par exemple faire
<?Php
// Page PHP qui peut revevoir par POST ou GET des valeurs
If (ISSET($_POST['maVariable'])?$mavariable=$_POST['maVariable'] : $mavariable="";
//ou sur un GET
If (ISSET($_GET['maVariable'])?$mavariable=$_GET['maVariable'] : $mavariable="";
?>


Bref, on teste que la variable est Initialisée avec ISSET et dans le cas contraire on affecte une valeur vide,null,... à cette variable.
Cela évite les erreurs que vos avez rencontré précédemment.



Pense à clôturer la discussion ( REPONSE ACCEPTEE)


Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jordane45
Messages postés
25981
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juillet 2019
313
0
Merci
bonjour,

Au passage, trop de code... tue le code...
C'est un peu fastidieux à lire..

Enfin bon, en utilisant un petit CTRL+F dans la page, j'ai pus constater que
ta variable "$erreur_champ1" ne semblait pas être initialisée (c'est aussi le message d'erreur que tu nous donne).

- Donc.. Où initialise tu cette variable ?
- As-tu essayé de faire un ISSET dessus ?
- Si tu fais un "Echo $erreur_champ1;" , qu'obtiens tu ?

Au cas où,
Il se peut que votre souci vienne des variables globales. Elles doivent surement être désactivées alors qu'auparavant elles devaient être à 'ON'


Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
Commenter la réponse de jordane45
Messages postés
76
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
13 juin 2015
0
Merci
je ne la déclare nulle part comme cela fonctionnait sous PHP4, je ne me suis jamais posé la question.

Comment dois-je la déclarer concrètement dans mon code ?

Merci


Didpoy
Commenter la réponse de cs_Didier72
Messages postés
76
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
13 juin 2015
0
Merci
SUPER MERCI

C'était si simple et je suis passé à coté...

Merci beaucoup

Cordialement


Didpoy
Commenter la réponse de cs_Didier72
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26
0
Merci
Fait une fonction pour récuperer les $_GET / $_POST


function getParam($p, $default){ return isset($_GET[$p])?$_GET[$p]:(isset($_POST[$p])?$_POST[$p]:$default); }


a utiliser comme suis :

$monParametre = getParam('monparametre', false);
$autre = getParam('autre', null);

if($monparametre && !empty($autre)){
  echo $monparametre, ' - ', $autre;
} else {
  echo "Dans l'fu d'lulu !";
}

Commenter la réponse de f0xi