Formulaire avec MySQL impossible envoyer les données

MickaDoH76 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
MickaDoH76 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde,

Voila, je suis dans une entreprise privée en stage et je dois effectuer un formulaire appellé OTV. Il consiste a avoir un formulaire avec plusieurs données (nom, prénom, adresse, etc etc...) Mais j'ai quelques problèmes.

Voici le code
<?php
  
mysql_connect('localhost','root','') or exit(mysql_error());
mysql_select_db('otvbase') or exit(mysql_error());
$id_ville = array('Rouen' => 1, 'Bolbec' => 2, 'Havre' => 3, 'Fecamp' => 4, 'Dieppe' => 5);
  
if(isset($_GET['action']) && $_GET['action'] == "modifier")
{
    $titre = 'Mettre à jour la fiche pour O.T.V de $site';
    $tag = $_GET['id'];
    $sql = "SELECT * FROM $csp[$site] WHERE tag = '$tag'";
    $resultat = mysql_query($sql) or exit(mysql_error());
    $lignes = mysql_fetch_array($resultat);
      
    $data_depart = explode("-", $lignes['absent']);
    $data_retour = explode("-", $lignes['au']);
      
    $ville = $lignes['ville'];
    $nom = $lignes['nom'];
    $prenom = $lignes['prenom'];
    $tel1 = $lignes['tel1'];
    $tel2 = $lignes['tel2'];
    $adresse = $lignes['adresse'];
    $absent_du = $lignes['absent'];
    $absent_au = $lignes['au'];
    $persaprev = $lignes['persaprev'];
    $maiouim = $lignes ['maiouim'];
    $chien = $lignes ['chien'];
    $alarme = $lignes ['alarme'];
    $digicode = $lignes ['digicode'];
    $personne = $lignes['personne'];
    $observations = $lignes['observations'];
      
    $data_tag = "<input name='tag' type='hidden' value='".$_GET['id']."'>";
    $formulaire_cible = "?action=modifier_formulaire_otv";
    $bouton = "<input name='enregistrer' type='submit' value='Mettre à jour la fiche'>";
    }
else {
    $titre = "<h3>Nouvelle fiche pour O.T.V.</h3>";
    $formulaire_cible = "?action=validation_formulaire_otv";
    $bouton = "<input name='enregistrer' type='submit' value='Enregistrer la fiche'>";
}
// ********************************************************************************************
echo $titre;
// Liste des villes relative à l'id selectionnée sur la carte de la DDSP
$query = "SELECT ville FROM villes WHERE id = '$id_ville' ORDER BY ville ASC";
$result = mysql_query($query) or die(mysql_error());
$rows = mysql_fetch_array($result);
 
?>
<!-- Affichage du Form !-->
<form action='$formulaire_cible' method='post' enctype='application/x-www-form-urlencoded' name='formulaireOTV'>
<table border='1' id='tableauOTV'>
    <tr>
        <td>Nom:</td>
        <br/>
        <td colspan='3'><input type='text' name='nom' size='60' value="<?php echo $nom;?>"
        onChange='javascript:this.value=this.value.substring(0,1).toUpperCase()+this.value.substring(1, this.length);'/>
    </tr>
    <tr>
        <td>Prénom :</td>
        <td colspan ='3'><input type='text' name='prenom' size='60' value='<?php echo $prenom; ?>'/>
    </tr>
    <tr>
        <td>Téléphones:</td>
        <td colspan='3'><input type='text' name='tel' size='60' value='<?php echo $tel1;?>'>
        <td colspan='3'><input type='text' name='tel' size='60' value='<?php echo $tel2;?>'>
    </tr>
    <tr>
        <td>Ville:</td>
        <td colspan='3'><select name='ville'>
        <?php echo "<option value='$ville'>$ville</option>";
        do {
            echo "<option value='".$rows['ville']."'>".$rows['ville']."</option>";
        }
        while($rows = mysql_fetch_array($result)); ?>
        </select></td>
    </tr>
    <tr>
        <td>Adresse:</td>
        <td colspan='3'><input name='adresse' type='text' size='60' value='$adresse'>
    </tr>
    <tr>
        <td>Maison ou Appartement:</td>
        <td><input name='maiouim' type='radio' value='Maison'>Maison<br/>
        <input name='maiouim' type='radio' value='Appartement'>Appartement<td><br/>
    </tr>
    <tr>
        <td>Absent du:</td><td><select name='debut_jour'>
        <option value='$depart[2]'>$depart[2]</option>
        <option value='01'>01</option>
        <option value='02'>02</option>
        <option value='03'>03</option>
        <option value='04'>04</option>
        <option value='05'>05</option>
        <option value='06'>06</option>
        <option value='07'>07</option>
        <option value='08'>08</option>
        <option value='09'>09</option>
        <option value='10'>10</option>
        <option value='11'>11</option>
        <option value='12'>12</option>
        <option value='13'>13</option>
        <option value='14'>14</option>
        <option value='15'>15</option>
        <option value='16'>16</option>
        <option value='17'>17</option>
        <option value='18'>18</option>
        <option value='19'>19</option>
        <option value='20'>20</option>
        <option value='21'>21</option>
        <option value='22'>22</option>
        <option value='23'>23</option>
        <option value='24'>24</option>
        <option value='25'>25</option>
        <option value='26'>26</option>
        <option value='27'>27</option>
        <option value='28'>28</option>
        <option value='29'>29</option>
        <option value='30'>30</option>
        <option value='31'>31</option>
        </select><select name='debut_mois'>
        <option value='$depart[1]'>$depart[1]</option>
        <option value='01'>01</option>
        <option value='02'>02</option>
        <option value='03'>03</option>
        <option value='04'>04</option>
        <option value='05'>05</option>
        <option value='06'>06</option>
        <option value='07'>07</option>
        <option value='08'>08</option>
        <option value='09'>09</option>
        <option value='10'>10</option>
        <option value='11'>11</option>
        <option value='12'>12</option>
        </select><select name='debut_annee'>
        <option value='$depart[0]'>$depart[0]</option>
        <option value='2012'>2012</option>
        <option value='2013'>2013</option>
        <option value='2014'>2014</option>
        <option value='2015'>2015</option>
        <option value='2016'>2016</option>
        <option value='2017'>2017</option>
        </select></td>
                  
        <td> Au:</td><td><select name='fin_jour'>
        <option value='$retour[2]'>$retour[2]</option>
        <option value='01'>01</option>
        <option value='02'>02</option>
        <option value='03'>03</option>
        <option value='04'>04</option>
        <option value='05'>05</option>
        <option value='06'>06</option>
        <option value='07'>07</option>
        <option value='08'>08</option>
        <option value='09'>09</option>
        <option value='10'>10</option>
        <option value='11'>11</option>
        <option value='12'>12</option>
        <option value='13'>13</option>
        <option value='14'>14</option>
        <option value='15'>15</option>
        <option value='16'>16</option>
        <option value='17'>17</option>
        <option value='18'>18</option>
        <option value='19'>19</option>
        <option value='20'>20</option>
        <option value='21'>21</option>
        <option value='22'>22</option>
        <option value='23'>23</option>
        <option value='24'>24</option>
        <option value='25'>25</option>
        <option value='26'>26</option>
        <option value='27'>27</option>
        <option value='28'>28</option>
        <option value='29'>29</option>
        <option value='30'>30</option>
        <option value='31'>31</option>
        </select><select name='fin_mois'>
        <option value='$retour[1]'>$retour[1]</option>
        <option value='01'>01</option>
        <option value='02'>02</option>
        <option value='03'>03</option>
        <option value='04'>04</option>
        <option value='05'>05</option>
        <option value='06'>06</option>
        <option value='07'>07</option>
        <option value='08'>08</option>
        <option value='09'>09</option>
        <option value='10'>10</option>
        <option value='11'>11</option>
        <option value='12'>12</option>
        </select><select name='fin_annee'>
        <option value='$retour[0]'>$retour[0]</option>
        <option value='2012'>2012</option>
        <option value='2013'>2013</option>
        <option value='2014'>2014</option>
        <option value='2015'>2015</option>
        <option value='2016'>2016</option>
        <option value='2017'>2017</option>
        </select></td>
    </tr>
    <tr>
        <td>Personne à prévenir: </td>
        <td colspan='3'><Textarea name='personne' rows=1 cols=40></textarea></td>
    </tr>
    <tr>
        <td colspan='4'><p align='center'>DETAILS:</p></td>
    </tr>
    <tr>
        <td>Présence d'un chien :</td>
        <td><input name='chien' type='radio' value='oui'>Oui<br/>
        <input name='chien' type='radio' value='non'>Non</td>
    </tr>
    <tr>
        <td>Présence d'une alarme:</td>
        <td><input name='alarme' type='radio' value='oui'>Oui<br/>
        <input name='alarme' type='radio' value='non'>Non</td>
    </tr>
    <tr>
        <td>Présence d'un digicode:</td>
        <td><input name='digicode' type='radio' value='oui'>Oui<br/>
        <input name='digicode' type='radio' value='non'>Non</td>
    </tr>
    <tr>
        <td colspan='4'><div align='center'>
            $tag
            <input name='enregistrer' type='submit' value='Mettre à jour la fiche'>
        </div></td>
    </tr>
</table>
</form>


Je travaille sur XAMMP sous Windows 7. Et j'ai plusieurs erreurs, comme des variables non définies (alors qu'elles le sont très clairement dans le code) et une notice suivante (Notice : Array to string conversion on line 46). Je ne sais pas du tout ce que cela veut dire. Aidez moi s'il vous plait :(. Merci d'avance à tous.

3 réponses

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Il faudrait que tu donnes les messages d'erreur pour qu'on sache où chercher.

Pour le NOTICE qu'il te met, cela vient de ceci :
WHERE id = '$id_ville' ORDER BY
alors que
$id_ville = array([...]);
. Donc comme il le dit, tu utilises un « array » comme si c'était un « string »...

Xavier
0
MickaDoH76 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Je reposte tout car j'ai changé pas mal de petites choses.

Code 1
<?php
  
mysql_connect('localhost','root','') or exit(mysql_error());
mysql_select_db('otvbase') or exit(mysql_error());
$id_ville = array('Rouen' => 1, 'Bolbec' => 2, 'Havre' => 3, 'Fecamp' => 4, 'Dieppe' => 5);
  
if(isset($_GET['action']) && $_GET['action'] == "modifier")
{
    $titre = 'Mettre à jour la fiche pour O.T.V de $site';
    $tag = $_GET['id'];
    $sql = "SELECT * FROM $csp[$site] WHERE tag = '$tag'";
    $resultat = mysql_query($sql) or exit(mysql_error());
    $lignes = mysql_fetch_array($resultat);
      
    $depart = explode("-", $lignes['absentdu']);
    $retour = explode("-", $lignes['absentau']);
      
    $ville = $lignes['ville'];
    $nom = $lignes['nom'];
    $prenom = $lignes['prenom'];
    $tel1 = $lignes['tel1'];
    $tel2 = $lignes['tel2'];
    $adresse = $lignes['adresse'];
    $absentdu = $lignes['absent'];
    $absentau = $lignes['au'];
    $persaprev = $lignes['persaprev'];
    $maiouim = $lignes ['maiouim'];
    $chien = $lignes ['chien'];
    $alarme = $lignes ['alarme'];
    $digicode = $lignes ['digicode'];
    $personne = $lignes['personne'];
    $observations = $lignes['observations'];
      
    $tag = "<input name='tag' type='hidden' value='".$_GET['id']."'>";
    $formulaire_cible = "?action=modifier_formulaire_otv";
    $bouton = "<input name='enregistrer' type='submit' value='Mettre à jour la fiche'>";
    }
else {
    $titre = "<h3>Nouvelle fiche pour O.T.V.</h3>";
    $formulaire_cible = "?action=validation_formulaire_otv";
    $bouton = "<input name='enregistrer' type='submit' value='Enregistrer la fiche'>";
}
// ********************************************************************************************
echo $titre;
// Liste des villes relative à l'id selectionnée sur la carte de la DDSP
$query = "SELECT ville FROM villes WHERE id = '$id_ville[$site]' ORDER BY ville ASC";
$result = mysql_query($query) or die(mysql_error());
$rows = mysql_fetch_array($result);
 
?>
<!-- Affichage du Form !-->
<form action='$formulaire_cible' method='post' enctype='application/x-www-form-urlencoded' name='formulaireOTV'>
<table border='1' id='tableauOTV'>
    <tr>
        <td>Nom:</td>
        <br/>
        <td colspan='3'><input type='text' name='nom' size='60' value="<?php echo $nom;?>"
        onChange='javascript:this.value=this.value.substring(0,1).toUpperCase()+this.value.substring(1, this.length);'/>
    </tr>
    <tr>
        <td>Prénom :</td>
        <td colspan ='3'><input type='text' name='prenom' size='60' value='<?php echo $prenom; ?>'/>
    </tr>
    <tr>
        <td>Téléphones:</td>
        <td colspan='3'><input type='text' name='tel' size='60' value='<?php echo $tel1;?>'>
        <td colspan='3'><input type='text' name='tel' size='60' value='<?php echo $tel2;?>'>
    </tr>
    <tr>
        <td>Ville:</td>
        <td colspan='3'><select name='ville'>
        <?php echo "<option value='$ville'>$ville</option>";
        do {
            echo "<option value='".$rows['ville']."'>".$rows['ville']."</option>";
        }
        while($rows = mysql_fetch_array($result)); ?>
        </select></td>
    </tr>
    <tr>
        <td>Adresse:</td>
        <td colspan='3'><input name='adresse' type='text' size='60' value='<?php echo $adresse;?>'>
    </tr>
    <tr>
        <td>Maison ou Appartement:</td>
        <td><input name='maiouim' type='radio' value='<?php echo $nom;?>'>Maison<br/>
        <input name='maiouim' type='radio' value='Appartement'>Appartement<td><br/>
    </tr>
    <tr>
        <td>Absent du:</td><td><select name='debut_jour'>
        <option value='<?php echo $depart[2];?>'></option>
        <option value='01'>01</option>
        <option value='02'>02</option>
        <option value='03'>03</option>
        <option value='04'>04</option>
        <option value='05'>05</option>
        <option value='06'>06</option>
        <option value='07'>07</option>
        <option value='08'>08</option>
        <option value='09'>09</option>
        <option value='10'>10</option>
        <option value='11'>11</option>
        <option value='12'>12</option>
        <option value='13'>13</option>
        <option value='14'>14</option>
        <option value='15'>15</option>
        <option value='16'>16</option>
        <option value='17'>17</option>
        <option value='18'>18</option>
        <option value='19'>19</option>
        <option value='20'>20</option>
        <option value='21'>21</option>
        <option value='22'>22</option>
        <option value='23'>23</option>
        <option value='24'>24</option>
        <option value='25'>25</option>
        <option value='26'>26</option>
        <option value='27'>27</option>
        <option value='28'>28</option>
        <option value='29'>29</option>
        <option value='30'>30</option>
        <option value='31'>31</option>
        </select><select name='debut_mois'>
        <option value='<?php echo $depart[1];?>'></option>
        <option value='01'>01</option>
        <option value='02'>02</option>
        <option value='03'>03</option>
        <option value='04'>04</option>
        <option value='05'>05</option>
        <option value='06'>06</option>
        <option value='07'>07</option>
        <option value='08'>08</option>
        <option value='09'>09</option>
        <option value='10'>10</option>
        <option value='11'>11</option>
        <option value='12'>12</option>
        </select><select name='debut_annee'>
        <option value='<?php echo $depart[0];?>'></option>
        <option value='2012'>2012</option>
        <option value='2013'>2013</option>
        <option value='2014'>2014</option>
        <option value='2015'>2015</option>
        <option value='2016'>2016</option>
        <option value='2017'>2017</option>
        </select></td>
                  
        <td> Au:</td><td><select name='fin_jour'>
        <option value='<?php echo $retour[2];?>'></option>
        <option value='01'>01</option>
        <option value='02'>02</option>
        <option value='03'>03</option>
        <option value='04'>04</option>
        <option value='05'>05</option>
        <option value='06'>06</option>
        <option value='07'>07</option>
        <option value='08'>08</option>
        <option value='09'>09</option>
        <option value='10'>10</option>
        <option value='11'>11</option>
        <option value='12'>12</option>
        <option value='13'>13</option>
        <option value='14'>14</option>
        <option value='15'>15</option>
        <option value='16'>16</option>
        <option value='17'>17</option>
        <option value='18'>18</option>
        <option value='19'>19</option>
        <option value='20'>20</option>
        <option value='21'>21</option>
        <option value='22'>22</option>
        <option value='23'>23</option>
        <option value='24'>24</option>
        <option value='25'>25</option>
        <option value='26'>26</option>
        <option value='27'>27</option>
        <option value='28'>28</option>
        <option value='29'>29</option>
        <option value='30'>30</option>
        <option value='31'>31</option>
        </select><select name='fin_mois'>
        <option value='<?php echo $retour[1];?>'></option>
        <option value='01'>01</option>
        <option value='02'>02</option>
        <option value='03'>03</option>
        <option value='04'>04</option>
        <option value='05'>05</option>
        <option value='06'>06</option>
        <option value='07'>07</option>
        <option value='08'>08</option>
        <option value='09'>09</option>
        <option value='10'>10</option>
        <option value='11'>11</option>
        <option value='12'>12</option>
        </select><select name='fin_annee'>
        <option value='<?php echo $retour[0];?>'></option>
        <option value='2012'>2012</option>
        <option value='2013'>2013</option>
        <option value='2014'>2014</option>
        <option value='2015'>2015</option>
        <option value='2016'>2016</option>
        <option value='2017'>2017</option>
        </select></td>
    </tr>
    <tr>
        <td>Personne à prévenir: </td>
        <td colspan='3'><Textarea name='personne' rows=1 cols=40></textarea></td>
    </tr>
    <tr>
        <td colspan='4'><p align='center'>DETAILS:</p></td>
    </tr>
    <tr>
        <td>Présence d'un chien :</td>
        <td><input name='chien' type='radio' value='oui'>Oui<br/>
        <input name='chien' type='radio' value='<?php echo $chien;?>'>Non</td>
    </tr>
    <tr>
        <td>Présence d'une alarme:</td>
        <td><input name='alarme' type='radio' value='oui'>Oui<br/>
        <input name='alarme' type='radio' value='non'>Non</td>
    </tr>
    <tr>
        <td>Présence d'un digicode:</td>
        <td><input name='digicode' type='radio' value='oui'>Oui<br/>
        <input name='digicode' type='radio' value='non'>Non</td>
    </tr>
    <tr>
        <td colspan='4'><div align='center'>
            <input name='tag' type='hidden' value='".$_GET['id']."'>
            <input name='enregistrer' type='submit' value='Enregistrer la fiche'>
        </div></td>
    </tr>
</table>
</form>


Code 2
<?php
$bdd = "otvbase";
connec_bdd($bdd);
$id_ville = array("Rouen" => 1, "Bolbec" => 2, "Havre" => 3, "Fecamp" => 4, "Dieppe" => 5);
$submit = $_POST['enregistrer'];
 if(isset($submit) && $submit != ''){
  $ville = $_POST['ville'];
  $nom = $_POST['nom'];
  $prenom = $_POST['prenom'];
  $tel1 = $_POST['tel1'];
  $tel2 = $_POST['tel2'];
  $adresse = $_POST['adresse'];
  $debut_jour = $_POST['debut_jour'];
  $debut_mois = $_POST['debut_mois'];
  $debut_annee = $_POST['debut_annee'];
  $fin_jour = $_POST['fin_jour'];
  $fin_mois = $_POST['fin_mois'];
  $fin_annee = $_POST['fin_annee'];
  $persaprev = $_POST['persaprev'];
  $maiouim = $_POST['maiouim'];
  $chien = $_POST['chien'];
  $alarme = $_POST['alarme'];
  $digicode = $_POST['digicode'];
  $observations = $_POST['observations'];
  $personne = $_POST['personne'];
  $absent = $debut_annee."-".$debut_mois."-".$debut_jour;
  $du = $fin_annee."-".$fin_mois."-".$fin_jour;
  $tag = time();

  $query = "INSERT INTO $csp[$site] (tag, ville, nom, prenom, tel1, tel2, adresse, absent, au, persaprev, maiouim, chien, alarme, digicode, observations, personne) VALUES ('$tag', '$ville', '$nom', '$prenom', '$tel1', '$tel2', '$adresse', '$absent', '$du', '$persaprev', '$maiouim', '$chien', '$alarme', '$digicode', '$observations', '$personne')";
  mysql_query($query) or die(mysql_error());
  echo "Fiche enregistrée avec succès.";
  mysql_close();
}
?>


Et les erreurs sont les suivantes :

Notice: Undefined variable: site on line 46
Problème avec la variable site qui n'est défini nulle part. Mais j'ai cherché dans le code d'origine de l'application et il semble ne pas être défini non plus. Je vais demander a ma tutrice pour ce coup ci.

Notice: Undefined index: on line 46
La, par contre, je sèche :/.

Oh, et j'oubliais quelque chose d'important. Dans mon formulaire en question, dans les champs textes (nom, prenom, telephone 1 et 2 et adresse.) Il me dit que les variables sont indéfinis aussi.

Undefined nom on line 57
Undefined prenom on line 62
Undefined tel1 on line 66
Undefined tel2 on line 67
Undefined adresse on line 81

Voila... Merci encore pour ta réponse :).
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Les deux sont liées.
Tu recherches $id_ville[$site].
Comme il ne connaît pas $site, il lui attribue la valeur par défaut : chaîne vide ''.
Du coup, il cherche $id_ville[''], qui n'existe pas => undefined index.

Résous le premier, cela résoudra le second.
0
MickaDoH76 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Très bien, merci beaucoup, c'est parti ;).
0
MickaDoH76 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai réussi a trouver la définition de $site.

$site = $_SESSION['site'];

Malheureusement, les erreurs restent même avec $site défini dans mon formulaire...
0