IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Mon Enregistrement ne fonctionne pas


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Par défaut Mon Enregistrement ne fonctionne pas
    Bonjour. je suis entrain de créer un petit logiciel permettant la gestion de dossier( enregistrement, suivi) j'essais depuis un bon moment de faire un enregistrement , mais ce dernier ne vas vas dans la base de donnée, pourtant le code n'affiche aucune erreur. Voici mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <?php 
     
    session_start();
    // Fichier contenant la liaison entre PHP et MYSQL
    include_once 'connexion_database.php';
     
    if( isset($_POST['ref'] , $_POST['type'] ,$_POST['objetd'] ,$_POST['datedepot'] ,$_POST['nomdep'] ,$_POST['agent'] ,
     
            $_POST['statue'] ,$_POST['doc1'],$_POST['doc2'], $_POST['doc3'] )  && !empty($_POST['ref'])  && !empty($_POST['type'])
     
        && !empty($_POST['objetd']) && !empty($_POST['datedepot']) && !empty($_POST['nomdep']) && !empty($_POST['agent'])
     
        && !empty($_POST['statue']) && !empty($_POST['doc1'])  && !empty($_POST['doc2']) && !empty($_POST['doc3']) )
     
    {
     
     
    try
        {
         $bdd = new PDO('mysql:host=localhost;dbname=controle', 'root', '');
        }
             catch(Exception $e)
        {
           die('Erreur : '.$e->getMessage());
          }
     
     
            $ref = htmlspecialchars(trim($_POST['ref']));
            $type = htmlspecialchars(trim($_POST['type']));
            $objet = htmlspecialchars(trim($_POST['objetd']));
            $datedepot = htmlspecialchars(trim($_POST['datedepot']));
            $nomdep = htmlspecialchars(trim($_POST['nomdep']));
            $agent = htmlspecialchars(trim($_POST['agent']));
            $statue = htmlspecialchars(trim($_POST['statue']));
            $doc1 = $_files ['doc1'] ['name'];
            $_files_tmp_name = $_files['doc1']['tmp_name'];
            move_uploaded_file($_files_tmp_name, "./images/$doc1");
            $doc2 = $_files ['doc2'] ['name1'];
            $_files_tmp_name = $_files['doc2']['tmp_name1'];
            move_uploaded_file($_files_tmp_name, "./images/$doc2");
            $doc3 = $_files ['doc3'] ['name2'];
            $_files_tmp_name = $_files['doc3']['tmp_name2'];
            move_uploaded_file($_files_tmp_name, "./images/$doc3");
     
            $objetPDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
     
            $requete = $bdd -> prepare('INSERT INTO dossier (ref, type, objet, daten, nomdeposant, statue, Agent, pj1, pj2, pj3) VALUES ("","$ref", "$type", "$objet", "$datedepot", "$nomdep", "$statue", "$agent", $doc1, $doc2, $doc3)');
     
                 //   $requete = $objetPDO -> prepare('INSERT INTO dossier SET ref =?, type=?, objet=?, daten=?, nomdeposant=?, statue=?, Agent=?, pj1=?, pj2=?, pj3=?');
     
     
             $insertisok = $requete->execute(
                      array('ref' => $ref,
                            'type' => $type,
                            'objetd' =>$objet,
                            'datedepot' => $datedepot,
                            'nomdep' => $nomdep,
                            'agent'=> $agent,
                            'statue'=>$statue,
                             )
             );
     
                if($requete)
              {
                  $requete->closeCursor();
                  header('Location:liste.php');
     
              }
     
     
           }
           else
    {
        $_SESSION['existe'] = " Veuillez renseigner tous les champs " ;
        header('Location:accueil.php');
    }
     
     
     
     ?>

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    empty() englobe isset() → donc tu peux raccourcir ton code,
    ensuite on n'échappe surtout pas les données avec htmlspecialchars() avant de les enregistrer en base : comme t'utilises PDO, lis un peu la doc pour apprendre le mécanisme d'échappement des données fourni en standard par PDO (je te mets sur la piste : les valeurs à injecter sont identifiées au sein de la chaîne SQL par des tags de la forme :tag au moment de la préparation)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    		$ref = trim($_POST['ref']);
    		$type = trim($_POST['type']);
    		$objet = trim($_POST['objetd']);
    		$datedepot = trim($_POST['datedepot']);
    		$nomdep = trim($_POST['nomdep']);
    		$agent = trim($_POST['agent']);
    		$statue = trim($_POST['statue']);
    ...
    Ta requête est fausse.
    Correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    		$requete = $bdd -> prepare('INSERT INTO dossier 
    			(ref, type, objet, daten, nomdeposant, statue, Agent, pj1, pj2, pj3) 
    			VALUES 
    			(:ref, :type, :objet, :daten, :nomdeposant, :statue, :Agent, :pj1, :pj2, :pj3)');
    		$insertisok = $requete->execute(array(
    			':ref' => $ref,
    			':type' => $type,
    			':objetd' =>$objet,
    			':daten' => $datedepot,
    			':nomdeposant' => $nomdep,
    			':statue'=>$statue,
    			':Agent'=> $agent,
    			':pj1'=>$doc1,
    			':pj2'=>$doc2,
    			':pj3'=>$doc3,
    		));
    N.B.
    • ÉVITE de mettre des variables AVEC et SANS majuscule (Agent / agent)
    • à moins que tu sois sculpteur, on écrit "statut".

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Par défaut Mon Enregistrement ne fonctionne pas
    Bonjour...Merci pour votre aide...
    mais étonnement ça ne marche toujours pas.Ce code est celui d'un autre projet, et ça a le même probleme, l'enregistrement dans la base ne fonctionne pas. S'il vous plaît Veuillez voir s'il y a une erreur dans ce code. Merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php require 'inc/header.php';?>
     
    <?php
        if(!empty($_POST)){
     
          $errors = array( );
     
          if(empty($_POST['username']) || !preg_match('/^[a-zA-Z0-9_]*$/', $_POST['username']) ){
            $errors['username'] = "Votre Pseudon'est pas valide";
          }
     
          if(empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
            $errors['email'] = "Votre email n'est pas valide";
          }
     
          if(empty($_POST['password'] != $_POST['password_confirm'])){
             $errors['password'] = "vous devez entrez un mdp valide";
     
          }
     
     
              if(empty($errors)){
     
                require_once 'inc/db.php';
     
                $req = $pdo -> prepare( "INSERT INTO users SET username = ?, password=?, email= ? ");
                $password = password_hash($_POST['password'], PASSWORD_BCRYPT);
                $req = execute([$_POST['username'], $password, $_POST['email']]);
          }
     
          die('Notre compte a bien été créer');
    }
     
     ?>
     
    <h1> S'inscrire </h1>
     
    <form action="" method="post">
     
      <div class=" form-group">
        <label for=""> Pseudo </label>
        <input type="text" name="username"  class="form-control" required value="">
      </div>
     
      <div class=" form-group">
        <label for=""> Email </label>
        <input type="text" name="email"  class="form-control" required value="">
      </div>
     
      <div class=" form-group">
        <label for=""> Password </label>
        <input type="password" name="password" class="form-control" required value="">
      </div>
     
      <div class=" form-group">
        <label for=""> Password Confimed </label>
        <input type="password" name="password_confirm" class="form-control" required value="">
      </div>
     
      <button type="submit"class="btn btn-primary" name="M'inscrire"> M'inscrire</button>
     
    </form>
     
     
    <?php require 'inc/footer.php';  ?>

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                $req = $pdo -> prepare( "INSERT INTO users SET username = ?, password=?, email= ? ");
    La syntaxe est fausse.

  6. #6
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Salut,
    @Jreaux62, MYSQL l'accepte.

    @euloge1, il faudrait activer l'affichage des erreurs PHP de manière générale dans le php.ini et PDO avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd = new PDO('mysql:host=localhost;dbname=controle', 'root', '', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = execute([$_POST['username'], $password, $_POST['email']]);
    non plutôt :

Discussions similaires

  1. Bouton enregistrer ne fonctionne pas dans mon JInternalFrame
    Par patnership dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 01/02/2015, 01h43
  2. Réponses: 1
    Dernier message: 30/08/2006, 19h00
  3. [VB.Net/DataReader] Pourquoi mon ExecuteReader ne fonctionne pas ?
    Par emeraudes dans le forum Accès aux données
    Réponses: 8
    Dernier message: 21/08/2006, 13h38
  4. Réponses: 14
    Dernier message: 17/08/2006, 10h29
  5. mon trigger ne fonctionne pas !
    Par japi33 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 20/03/2006, 21h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo