Forum Clubic

PB insertion donnée dans bdd langage PHP

Bonjour à tous,

Cela fait une semaine que je bûche. J’ai essayé beaucoup de choses mais rien à faire! Je n’ai aucune erreur et mes données ne sont pas insérer dans ma bdd.
J’ai fait un formulaire en html et php
si quelqu’un voit une erreur ou un manquement dans mon code ce serait super de me le signaler

voici mon code php:

texte préformaté indenté par 4 espaces

<?php
$bdd = new PDO('mysql:host=localhost;dbname=inscription;charset=utf8', 'root', '');

// c'est le name le plus important pour les varaibles en html
// Un tableau stocke plusieurs valeurs dans une seule variable


 
if(isset($_POST['inscri'])) {
   $MBTI = ($_POST['resultat_mbti']);
   $avevs_entreprise = ($_POST['entreprise']);
  $avevs_autoentrepreneur = ($_POST['autoentrepreneur']);
  $avevs_autoentrepreneur = ($_POST['startup']);
 $envie_tache = ($_POST['tache']);
 $envie_domainenvx  = ($_POST['domaine_souhait']);
  $activites  = ($_POST['activite']);
  $envie_don_autres = ($_POST['envie_don']);
 $connaimeditation  = ($_POST['mbsr']);
 $pratiqmeditation  = ($_POST['pratiquembsr']);
 $connai_amelioration_continu  = ($_POST['amelioration']);
 $pratik_amelioration_continu   = ($_POST['pratiqueAmelioration']);
 $CV1  = ($_FILES['cv'] AND $_FILES['cv']['error'] == 0);

$dossier = 'C:\wamp64\tmp';
$fichier = basename($_FILES['cv']['name']);
$taille_maxi = 8000000;
$taille = filesize($_FILES['cv']['tmp_name']);
$extensions = array('.pdf', '.odt','.docx','.PDF');
$extension = strrchr($_FILES['cv']['name'], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type pdf ou odt.';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['cv']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
    
     if(!empty($_POST['MBTI']) AND
      !empty($_POST['avevs_entreprise']) AND
      !empty($_POST['avevs_autoentrepreneur']) AND
      !empty($_POST['avevs_startup']) AND
      !empty($_POST['envie_tache']) AND
      !empty($_POST['envie_domainenvx']) AND
      !empty($_POST['envie_don_autres']) AND
      !empty($_POST['connaimeditation']) AND
      !empty($_POST['pratiqmeditation']) AND
      !empty($_POST['connai_amelioration_continu']) AND
      !empty($_POST['pratik_amelioration_continu']))

{
                      
$req = $bdd->prepare("INSERT INTO questionnaire (id,resultat_mbti, entreprise, autoentrepreneur,startup,tache, domaine_souhait, activite, envie_don, mbsr, pratiquembsr, amelioration, pratiqueAmelioration) VALUES ('',?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");

$req->execute(array($MBTI, $avevs_entreprise, $avevs_autoentrepreneur, $avevs_startup, $envie_tache, $envie_domainenvx, $activites, $envie_don_autres, $connaimeditation, $pratiqmeditation, $connai_amelioration_continu, $pratik_amelioration_continu));
 $erreur = "Votre compte a bien été créé ! <a href=\"connexion.php\">Me connecter</a>";
                  } 
               else {
                  $erreur = "Tous les champs ne sont pas remplis";
               }}
           
//avec LIMIT x, y
// x étant le départ et y le nombre que tu en prend, donc pour toi :
// SELECT * FROM joueurs ORDER BY visites DESC LIMIT 0,20
?>

et le formulaire en html

<form method="POST" action="" enctype="multipart/form-data"> <!-- enctype="multipart/form-data" pour envoie fich par user -->


<label for="pseudo">Votre résultat: :</label><br />
       <input type="text" name="resultat_mbti" id="resulat_mbti" required lenght="7" <?php if(isset($MBTI)) { echo $MBTI; } ?> /> <br />

</fieldset>

<fieldset>
       <legend> Votre expérience </legend> 

       Avez vous déjà créer une entreprise? <br/>
    	<input type="radio" name="entreprise" placeholder="entreprise" value="oui" checked="checked" <?php if(isset($avevs_entreprise)) { echo $avevs_entreprise; } ?>"  /><label for="entreprise">Oui</label>
    	<input type="radio" name="entreprise" value="non" <?php if(isset($avevs_entreprise)) { echo $avevs_entreprise; } ?>/><label for="entreprise">Non</label><br />
       Avez vous déjà eu le statut autoentrepreneur (micro-entreprise)?       
       <input type="radio" name="autoentrepreneur" value="oui" checked="checked" <?php if(isset($avevs_autoentrepreneur)) { echo $avevs_autoentrepreneur; } ?> /><label for="autoentrepreneur">Oui</label>
       <input type="radio" name="autoentrepreneur" value="non" /><label for="autoentrepreneur">Non</label><br />
       Avez vous déjà participer à un weekend startup?
       <input type="radio" name="startup" value="oui" checked="checked" <?php if(isset($avevs_startup)) { echo $avevs_startup; } ?>/><label for="startup">Oui</label>
       <input type="radio" name="startup" value="non" <?php if(isset($avevs_startup)) { echo $avevs_startup; } ?> /><label for="startup">Non</label><br />
</fieldset>

<fieldset>
       <legend>Vos envies</legend> 

	
	   <label for="tache">Quel genre de tâche aimeriez vous effectuer dans votre nouvelle activité?</label><br/>
	   Exemple: prospection commerciale, coder (langage informatique), accueillir, tâche administrative...<br />
       <textarea name="tache" id="tache" <?php if(isset($envie_tache)) { echo $envie_tache; } ?>></textarea>
       <br><br/>

      Existe t il des domaines dans lesquelles vous avez peu d'expérience ou pas de diplômes mais dont vous souhaiterez monter en compétences ?
	     <label for="domaine_souhait"> Si oui pouvez vous précisez le domaine? </label><br />
        exemple: comptabilité, informatique <br/>
       <textarea name="domaine_souhait" id="domaine_souhait" <?php if(isset($envie_domainenvx)) { echo $envie_domainenvx; } ?>></textarea> 
       <br><br/>  

      
      Quelle thématique vous motive?

        <p>
       Cochez les activités:<br />

       tertiaire:<br />
        - principalement marchand <br /> <!-- []car plusieurs valeurs -->
        <table>
               <tr>
                  <td align="left"> 
       <input type="checkbox" name="activite[]" value="Commerce"<?php if(isset($activite)) { echo $activite; } ?>/> <label for="Commerce">Commerce</label><br />
       <input type="checkbox" name="activite[]" value="transport" <?php if(isset($activite)) { echo $activite; } ?> /> <label for="transport">transports</label><br />
       <input type="checkbox" name="activite[]" value="financier" <?php if(isset($activite)) { echo $activite; } ?> /> <label for="financier"> activités financières</label><br />
       <input type="checkbox" name="activite[]" value="servicesEntreprises" <?php if(isset($activite)) { echo $activite; } ?>/> <label for="servicesEntreprises">services rendus aux entreprises</label>
       <input type="checkbox" name="activite[]" value="servicesParticulier" <?php if(isset($activite)) { echo $activite; } ?> /> <label for="servicesParticulier">services rendus aux particuliers</label><br />
       <input type="checkbox" name="activite[]" value="heberg-resto" <?php if(isset($activite)) { echo $activite; } ?>/> <label for="heberg-resto">hébergement-restauration</label><br />
       <input type="checkbox" name="activite[]" value="immo" <?php if(isset($activite)) { echo $activite; } ?>/> <label for="immo">immobilier</label><br />
       <input type="checkbox" name="activite[]" value="infocom" <?php if(isset($activite)) { echo $activite; } ?>/> <label for="infocom">information-communication</label><br />
       </td>
       </tr>
       <tr><td align="left">
       - principalement non-marchand <br />
       <input type="checkbox" name="activite[]" value="admin" <?php if(isset($activite)) { echo $activite; } ?> /> <label for="admin">administration publique</label><br />
       <input type="checkbox" name="activite[]" value="enseign" <?php if(isset($activite)) { echo $activite; } ?> /> <label for="enseign">enseignement</label><br />
       <input type="checkbox" name="activite[]" value="sante" <?php if(isset($activite)) { echo $activite; } ?> /> <label for="sante">santé humaine</label><br />
       <input type="checkbox" name="activite[]" value="social" <?php if(isset($activite)) { echo $activite; } ?> /> <label for="social">action sociale</label><br />
       </td>
       </tr>
        <tr>
        <td align="left">
         <input type="checkbox" name="activite[]" value="primair" <?php if(isset($activite)) { echo $activite; } ?> /> <label for="primair">primaire</label><br />
          <input type="checkbox" name="activite[]" value="secondair" <?php if(isset($activite)) { echo $activite; } ?> /> <label for="secondair">secondaire</label><br />
        </td>
       </tr>
     </table>
   </p>
      
       
      <label for="envie_don"> Qu'avez vous envie de donner/ faire pour les gens en général?</label><br />
      Voici des exemple: divertir les gens et créer des jeux vidéo ou des jeu x de familles <br />
 autre exemple: ouvrir un restaurant et une fois par semaine et offrir un repas pour les SDF<br />
 autre exemple: former les personnes sur les NTIC...<br />
       <textarea name="envie_don" id="envie_don" rows="10" cols="50" <?php if(isset($envie_don_autres)) { echo $envie_don_autres; } ?>></textarea>
       <br><br/>
 
</fieldset>

<fieldset>
       <legend>Connaissez vous? </legend> 
	Connaissez vous la méditation pleine conscience/mindfulness?
	<input type="radio" name="mbsr" value="oui" checked="checked"<?php if(isset($connaimeditation)) { echo $connaimeditation; } ?> /><label for="mbsr">Oui</label>
    <input type="radio" name="mbsr" value="non" <?php if(isset($connaimeditation)) { echo $connaimeditation; } ?> /><label for="mbsr">Non</label><br />  
	Si oui pratiquez vous?
	<input type="radio" name="pratiquembsr" value="oui" checked="checked" <?php if(isset($pratiqmeditation)) { echo $pratiqmeditation; } ?> /><label for="pratique">Oui</label>
    <input type="radio" name="pratiquembsr" value="non" <?php if(isset($pratiqmeditation)) { echo $pratiqmeditation; } ?> /><label for="pratique">Non</label><br />

</fieldset>

<fieldset>
       <legend>Connaissez vous? </legend> 
  Connaissez vous l'amélioration continue?
  <input type="radio" name="amelioration" value="oui" checked="checked"<?php if(isset($connai_amelioration_continu)) { echo $connai_amelioration_continu; } ?>/><label for="amelioration">Oui</label>
    <input type="radio" name="amelioration" value="non" <?php if(isset($connai_amelioration_continu)) { echo $connai_amelioration_continu; } ?> /><label for="amelioration">Non</label><br />  
  Si oui, avez vous déjà utilisé cette méthodologie dans un de vos emploi?
  <input type="radio" name="pratiqueAmelioration" value="oui" checked="checked" <?php if(isset($pratik_amelioration_continu)) { echo $pratik_amelioration_continu; } ?> /><label for="pratiqueAmelioration">Oui</label>
    <input type="radio" name="pratiqueAmelioration" value="non" <?php if(isset($pratik_amelioration_continu)) { echo $pratik_amelioration_continu; } ?> /><label for="pratiqueAmelioration">Non</label><br />

</fieldset>

Envoyez nous votre CV <br />

 <label for="file">Sélectionner le fichier à envoyer</label>
 <input type="file" name="cv" id="file" accept=".pdf" <?php if(isset($CV1)) { echo $CV1; } ?>> <br />
 <br></br>
 
<input type="submit" name="inscri" value="OK" />
    </form>

Je ne sais pas comment faire sur clubic pour indiquer les numéro de lignes. j’ai cherché mais pas trouvé si quelqu’un sait, n’hésitez pas à faire signe.

Je remercie toute personne qui auras pris le temps de lire mon code.
Si vous avez besoin de plus d’informations, demandez moi :smiley:

ça fait longtemps que je n’ai pas fait de PHP, mais si tu suis un site genre siteduzero, méfie toi quand même de ce que tu lis, et qui n’a pas forcément évolué avec son temps.
C’est toutefois bien de voir que tu utilises des requêtes paramétrés ce qui limitera l’injection SQL :slight_smile:

Pour commencer, il faudrait que tu nous en dises plus :

  1. as tu une erreur ?
  2. si tu testes ta requête dans un outil comme sqldevelopper ou mysqlworkbench, est-ce qu’elle passe ? Je ne sais pas si ta base de données gère le id=’’ (premier paramètre de ta requête) comme tu l’entends, eg: utilise une clef primaire auto générée. Il vaudrait mieux écrire ta requête sans le champ id:
"INSERT INTO questionnaire (resultat_mbti, entreprise, autoentrepreneur,startup,tache, domaine_souhait, activite, envie_don, mbsr, pratiquembsr, amelioration, pratiqueAmelioration) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
  1. tu peux aussi nettoyer tes variables (je ne suis pas spécialiste du sujet) :

https://www.php.net/manual/fr/function.filter-var.php
https://www.php.net/manual/fr/filter.filters.sanitize.php
https://www.php.net/manual/fr/filter.filters.validate.php

  1. préfère l’opérateur && à AND.