Notice: Undefined variable????

Résolu/Fermé
wonderwoman - 12 juin 2015 à 17:48
jordane45
Messages postés
35415
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mai 2022
- 13 juin 2015 à 19:31
Bonjour,

Je débute juste en php et je demandais pourquoi j'ai cette erreur quand j'essaye de valider mon formulaire de contact?
j'ai ca en barre d'adresse :
Notice: Undefined variable: civi in /flex/domain/site/www/reservationmerci.php on line 14 et la ligne est celle ci:
Civilité:'.$civi.' <br>

et je recupere mes données comme cela :
<form action="/reservationmerci.php" method="post">
<p><font color="white">
<input type="radio" name="civi" value="Mme" /> Madame
<input type="radio" name="civi" value="Mlle" /> Mademoiselle
<input type="radio" name="civi" value="Mr" /> Monsieur
</p>

merci de votre aide

6 réponses

Utilisateur anonyme
12 juin 2015 à 18:14
Bonjour

Tu as cette erreur parce que comme le dit le message, la variable $civi n'est pas définie.

La variable correspondant au champ de ton formulaire n'est pas $civi, mais $_POST['civi']
0
wonderwoman
12 juin 2015 à 18:22
salut, j'ai corrigé mais j'ai cela maintenant
Parse error: syntax error, unexpected 'civi' (T_STRING)

Voici les informations client .</font></p>
<p>Civilité:$_POST['civi'] Son prenom:$_POST['prenom'] et son nom:$_POST['nom']<br>
0
Utilisateur anonyme
12 juin 2015 à 18:27
Tu ne donnes pas le code, mais je suppose que ce que tu montres est dans une chaîne PHP entre double quotes "
Dans ce cas, tu ne peux pas écrire directement $_POST['civi']. Soit tu écris $_POST[civi] sans apostrophes, soit tu insères tes noms de variables en utilisant la concaténation :
"<p>Civilité:$_POST[civi] Son prenom"

ou
"<p>Civilité:".$_POST['civi']." Son prenom"
0
wonderwoman
12 juin 2015 à 18:32
je te donne ma page car je n'y arrive vraiment pas:

<?php

$messageadmin='<table border=1 cellpadding=0 cellspacing=0 style=\"border-collapse: collapse\" bordercolor=#111111 width=89%>
<tr bgcolor="#9999FF">
<td colspan=4>
<div align="center"><b>Une demande </b></div>
</td>
<tr valign="top" bgcolor="#FFFFFF">
<td colspan=4 style=\"border-left: 1px solid #5188e2border-right:border-top-width: 1border-bottom:padding: 5>
<div align="center">
<p><font face=Verdana size=2>vous avez reçu une demande de renseignement<br>
<br>
Voici les informations client .</font></p>
<p>Civilité:".$_POST['civi']." Son prenom:$_POST['prenom'] et son nom:$_POST['nom']<br>
Son téléphone:$_POST['telephone']<br>
Son email:$_POST['email']<br>
Pour un nombre de :$_POST['nombre'] personne/s <br>
Il voudrait une arrivée le :$_POST['date']<br>
et un départ le : $_POST['date']
Son message:$_POST['message']</font><br>
</p>
</div>
<table width="100%" height="27">
<tr bgcolor="#9999FF" valign="top">
<td><font face=Verdana size=2> </font></td>
</tr>
</table>
<table width=100% cellpadding=2 cellspacing=2 border=0>

</table>
</td>
</tr>
</table>';
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wonderwoman
12 juin 2015 à 19:20
j'ai fais des modifs je n'ai plus d'erreur qui s'affiche mais par contre quand je recois le mail j'ai juste les variables....

mes modifs:
<?php
// Récupération des paramètres POST
$civi = $_POST['civi'];
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$telephone = $_POST['telephone'];
$email = $_POST['email'];
$nombre = $_POST['nombre'];
$date1 = $_POST['date1'];
$date2 = $_POST['date2'];
$message = $_POST['message'];

$messageadmin='Civilité:$_POST[civi] Son prenom $_POST[prenom] et son nom: $_POST[nom]<br>
Son téléphone: $_POST[telephone]<br>
Son email: $_POST[email]<br>
Pour un nombre de : $_POST[nombre] personnes <br>
Il voudrait une arrivée le :$_POST[date1]<br>
et un départ le : $_POST[date2]
Son message: $_POST[message]
';
?>


et le mail recu:

Civilité:$_POST[civi] Son prenom $_POST[prenom] et son nom: $_POST[nom]
Son téléphone: $_POST[telephone]
Son email: $_POST[email]
Pour un nombre de : $_POST[nombre] personnes
Il voudrait une arrivée le :$_POST[date1]
et un départ le : $_POST[date2] Son message: $_POST[message]
0
jordane45
Messages postés
35415
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mai 2022
4 148
12 juin 2015 à 19:25
Bonjour,
Dans l'idéal .. on récupère les variables (et on vérifie qu'elles existent via la fonction isset) AVANT de les utiliser...

Un truc du genre :

 <?php

$date = isset($_POST['date'])?$_POST['date']:'';
$prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
$civi = isset($_POST['civi'])?$_POST['civi']:"M.";
$nom=isset($_POST['nom'])?$_POST['nom']:'';
$tel = isset($_POST['telephone'])?$_POST['telephone']:'';
$email = isset($_POST['email'])?$_POST['email']:'';
$nombre = isset($_POST['nombre'])?$_POST['nombre']:1;
$s = $nombre>1 ? "s" : "";
$message = isset($_POST['message'])?$_POST['message']:'';

 $messageadmin='<table border=1 cellpadding=0 cellspacing=0 style=\"border-collapse: collapse\" bordercolor=#111111 width=89%>
  <tr bgcolor="#9999FF">
    <td colspan=4>
      <div align="center"><b>Une demande </b></div>
    </td>
  <tr valign="top" bgcolor="#FFFFFF">
    <td colspan=4 style=\"border-left: 1px solid #5188e2border-right:border-top-width: 1border-bottom:padding: 5>
      <div align="center">
        <p><font face="Verdana" size="2">vous avez reçu une demande de renseignement<br>
          <br>
          Voici les informations client .</font></p>
        <p>Civilité:'.$civi.' Son prenom:'.$prenom.'  et son nom:.'$nom.'<br>
		Son téléphone:'.$tel.'<br> 
		Son email:'.$email.'<br>
        Pour un nombre de :'.$nombre.' personne'.$s.' <br>
        Il voudrait une arrivée le :'.$date.'<br>
        et un départ le : .'$date.'		
		Son message:'.$message.'</font><br>
                </p>
      </div>
      <table width="100%" height="27">
        <tr bgcolor="#9999FF" valign="top">
          <td><font face="Verdana" size="2"> </font></td>
        </tr>
      </table>
      <table width="100%" cellpadding="2" cellspacing="2" border="0">
        
      </table>
    </td>
  </tr>
</table>';
?>

0
wonderwoman
12 juin 2015 à 19:35
je teste cela demain.
merci a toi
0
wonderwoman
13 juin 2015 à 19:19
merci ca fonctionne parfaitement.
0
jordane45
Messages postés
35415
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mai 2022
4 148 > wonderwoman
13 juin 2015 à 19:31
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
0