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

  1. Reivax962 Messages postés 3742 Statut Membre 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
  2. 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
    1. Reivax962 Messages postés 3742 Statut Membre 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
    2. MickaDoH76 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
       
      Très bien, merci beaucoup, c'est parti ;).
      0
  3. 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