Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème insertion dans BDD avec PHP POO

    22 mars 2019 à 19:41:06

    Bonjour à tous,

    J'apprends tout juste à coder en PHP POO et j'avoue que je fais fasse à des problèmes plutôt basiques mais je n'y arrive pas.

    J'essaye de faire un formulaire d'inscription avec insertion à la base de données, quand je test rien ne s'insert et je ne vois pas d'où vient l'erreur.

    Mon code n'est pas le plus propre possible mais comme je l'ai dis, j'apprends.

    Avez vous une idée de pourquoi rien ne va dans la bdd ?

    Merci par avance !

    Formulaire d'inscription:

    <?php
    	require_once "header.php";
    ?>
    
    <center>
    	<div class="intro">
    		<p class="text-profil">S'inscrire</p>
    	</div>
    </center>
    <br>
    <br>
    	<div class="container">
    		<div class="row">
    			<div class="col-md-3">
    			</div>
    			<div class="col-md-6">
    				<center>
    
    					
    
    
    						<form method="POST" action="script/saveUser.php" enctype="multipart/form-data">
    
    						
    
    					
    				</center>
    
    								<hr>
    								<br>
    								<div class="form-row">
    									<div class=" form-group col-sm">
    										<input type="text" class="form-control" placeholder="Prénom" name="user_firstname" required="required">
    									</div>
    									<div class="form-group col">
    										<input type="text" class="form-control" placeholder="Nom" name="user_lastname" required="required">
    									</div>
    								</div>
    
    								<div class="form-group">
    									<input type="email" class="form-control" id="emailLogin" aria-describedby="emailHelp" placeholder="Votre email" name="user_email" required="required" value="<?php echo (isset( $_SESSION[" postForm "]))?$_SESSION["postForm "]["email "]:" ";?>">
    								</div>
    
    								<div class="form-row">
    									<div class="form-group col-md">
    										<input type="password" class="form-control" id="emailLogin" aria-describedby="emailHelp" placeholder="Mot de passe" name="user_password" required="required">
    									</div>
    
    									<div class="form-group col-md">
    										<input type="password" class="form-control" id="emailLogin" aria-describedby="emailHelp" placeholder="Confirmation Mot de Passe" name="user_passwordConfirm" required="required">
    									</div>
    								</div>
    
    								<div class="form-row">
    									<div class=" form-group col-sm">
    										<input type="text" class="form-control" placeholder="Nom de société" name="user_company_name " required="required">
    									</div>
    								</div>
    
    								<div class="form-row">
    									<div class=" form-group col-sm-4">
    										<input type="text" class="form-control" placeholder="Code Postal" name="user_zip_code" required="required">
    									</div>
    
    									<div class=" form-group col-sm-8">
    										<input type="text" class="form-control" placeholder="Ville" name="user_city" required="required">
    									</div>
    								</div>
    
    								<div class="form-row">
    									<div class=" form-group col-sm-6">
    										<input type="text" class="form-control" placeholder="Pays" name="user_country" required="required">
    									</div>
    
    									<div class=" form-group col-sm-6">
    										<input type="text" class="form-control" placeholder="Téléphone" name="user_phone" required="required">
    									</div>
    								</div>
    
    								<!--  <hr>
    
    					  <div class="form-group">
    					  	<center>
    							<label for="exampleFormControlFile1">Importer votre photo de profil (JPEG ou JPG)</label>
    					   		<input type="file" class="form-control-file" id="exampleFormControlFile1" name="picture">
    					    </center>
    					  </div> -->
    
    								<hr>
    <center>
    								<div class="form-check">
    									<label class="form-check-label">
    					    <input type="checkbox" class="form-check-input" name="cgu" required="required">
    					    J'accepte les <a href="cgu.php" class="cgu">Conditions Générales d'Utilisation de ce site</a>.
    					</label>
    								</div>
    
    								<br>
    
    								<button type="submit" class="btn btn-signup">S'inscrire</button>
    
    								<?php
    				  	unset($_SESSION["postForm"]);
    				  ?>
    						</form>
    						<br>
    						<br>
    						<p>Déjà inscrit ?<a class="connection" href="connection.php"> Me connecter !</a></p>
    			</div>
    			<div class="col-md-3">
    			</div>
    		</div>
    	</div>
    </center>
    
    	<br>
    	<br>
    
    	<?php
    	include "footer.php";
    ?>
    
    Création d'une nouvelle personne:
    <?php
    
    require_once __DIR__ "../Person.php";
    
    
    $user = new Person($_POST['user_firstname'], $_POST['user_lastname'], $_POST['user_email'], $_POST['user_password'], $_POST['user_phone'], $_POST['user_status'], $_POST['user_token'], $_POST['user_reset_token'], $_POST['user_reset_token_date']).insert;
    
    
    Class Person:
    <?php
    /**
     * Created by PhpStorm.
     * User: alex_rdgu
     * Date: 2019-03-22
     * Time: 15:15
     */
    
    
    
    require_once __DIR__ "database.php";
    
    $connection = connectDB();
    
    //status:
    
    class Person{
    
        private $user_firstname;
        private $user_lastname;
        private $user_email;
        private $user_password;
        private $user_phone;
        private $user_status;
        private $user_token;
        private $user_reset_token;
        private $user_reset_token_date;
    
        public function __construct($user_firstname, $user_lastname, $user_email, $user_password, $user_phone, $user_status, $user_token = NULL, $user_reset_token = NULL, $user_reset_token_date = NULL)
        {
            $this->user_firstname = $user_firstname;
            $this->user_lastname = $user_lastname;
            $this->user_email= $user_email;
            $this->user_password = $user_password;
            $this->user_phone = $user_phone;
            $this->user_status = $user_status;
            $this->user_token= $user_token;
            $this->user_reset_token = $user_reset_token;
            $this->user_reset_token_date= $user_reset_token_date;
        }
    
        public function insert($connection)
        {
            //var_dump($connection);
            $query = $connection->prepare("INSERT INTO users (user_firstname, user_lastname,user_email,user_password,
                                                            user_phone, user_status, user_token,user_reset_token,
                                                            user_reset_token_date) 
                                                            VALUES (:user_firstname, :user_lastname, :user_email, 
                                                            :user_password, :user_phone,:user_status, :user_token,
                                                            :user_reset_token, :user_reset_token_date");
    
            $query->execute( [
                "user_firstname"=>$this->user_firstname,
                "user_lastname"=>$this->user_lastname,
                "user_email"=>$this->user_email,
                "user_password"=>$this->user_password,
                "user_phone"=>$this->user_phone,
                "user_status"=>$this->user_status,
                "user_token"=>$this->user_token,
                "user_reset_token"=>$this->user_reset_token,
                "user_reset_token_date"=>$this->user_reset_token_date,
            ] );
        }
    
    
    }
    Database:
    <?php
    /**
     * Created by PhpStorm.
     * User: alex_rdgu
     * Date: 2019-03-22
     * Time: 16:54
     */
    
    require_once "conf.inc.php"
    
    class database
    {
        public function connectDB()
        {
    
            try {
                $connection = new PDO(
                    DBDRIVER . ":host=" . DBHOST . ";dbname=" . DBNAME,
                    DBUSER,
                    DBPWD);
                $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            } catch (Exception $e) {
                die("Erreur SQL :" . $e->getMessage());
            }
    
            return $connection;
        }
    }
    BDD:
    • Partager sur Facebook
    • Partager sur Twitter
      22 mars 2019 à 20:07:49

      Bonjour,

      Je t'invite à regarder le cours sur PHP POO ceci te permettra d'apprendre tout de suite les bonnes pratiques et comment organiser son code ainsi que ces fichiers. Pourquoi je te dis cela car tu as mis dans ta class User une méthode qui devrait être dans un manager / repository. 

      Dans ce même cours tu apprendras à soumettre des formulaires et enregistrer les données. 

      Pour faire bref ton formulaire à une action vers scripts/saveUser.php donc tu devrais avoir ce fichier et c'est dans celui ci que tu vas gérer l'envoie de tes datas à la base de données. 

      Bon courage. 

      PHP  c'est cool. 

      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui aime à apprendre est bien près du savoir " Confucius

      Problème insertion dans BDD avec PHP POO

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown