PHP

Je ne reçois pas mes données dans ma DB

Non Résolu

Bonjour,


Je suis en train de suivre le tutoriel "Créer un site de rencontre" , mais au niveau de la leçon "#5 Formulaire d'inscription en PHP", je bloque.

Il me semble avoir bien suivi toutes les indications, mais lorsque je m'inscris sur mon site, aucune donnée n'apparait ensuite sur ma DB (phpMyAdmin).


Voici le code de ma page inscription.php :


<?php
	session_start();
	include_once('db/connexionDB.php');	
	if(!empty($_POST)){;
		extract($_POST);
		$valid = true;
		
		if(isset($_POST['inscription'])){
			$pseudo = (String) trim($pseudo);
			$mail = (String) trim($mail);
			$password = (String) trim($password);
			
			if(empty($pseudo)){
				$valid = false;
				$err_pseudo = "Obligatorio";
			}else{
				$req = $BDD->prepare("SELECT id
					FROM usuario 
					WHERE pseudo = ?");
					
				$req->execute(array($pseudo));
				$usuario = $req->fetch();
				
				if(isset($usuario['id'])){
					$valid = false;
					$err_pseudo = "Ce pseudo existe déjà";
				}
			}
				
			if(empty($mail)){
				$valid = false;
				$err_mail = "Obligatorio";
			}else{
				$req = $BDD->prepare("SELECT id
					FROM usuario 
					WHERE mail = ?");
					
				$req->execute(array($mail));
				$usuario = $req->fetch();
				
				if(isset($usuario['id'])){
					$valid = false;
					$err_mail = "Ce mail existe déjà";
				}
			}
				
			if(empty($password)){
				$valid = false;
				$err_password = "Obligatorio";
			}
			
			if($valid){
				$date_inscription = date("Y-m-d h:m:s");
				
				$password = crypt($password, '$6$rounds=5000$H4eoaj87enek72Ondehb923Ybelman82jn83nN31O$');
				
				$req = $BDD->prepare("INSERT INTO usuario (pseudo, mail, password, date_inscripyion)
					VALUES (?, ?, ?, ?");
				
				$req->execute(array($pseudo, $mail, $password, $date_inscription));
				
				header('Location: /');
				exit;
				
			}
		}
	}


?>


<!doctype html>
<html lang="fr">
	<head>
		<!-- Required meta tags -->
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
		
		<!-- Bootstrap CSS -->
		<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">


		<link rel="stylesheet" href="stylefin.css">	
		<title>Connexion</title>
	</head>
	<body>
		<?php
			require_once('menu.php');	
		?>
		
		<h1>Inscription</h1>
		
		<form method="post">
			<section>
				<div>
					<?php
						if(isset($err_pseudo)){
							echo $err_pseudo;
						}	
					?>
					<input type="text" name="pseudo" placeholder="Pseudo" value="<?php if(isset($pseudo)){ echo $pseudo;} ?>">
				</div>
				<div>
					<?php
						if(isset($err_mail)){
							echo $err_mail;
						}	
					?>
					<input type="text" name="mail" placeholder="Mail" value="<?php if(isset($mail)){ echo $mail;} ?>">
				</div>
				<div>
					<?php
						if(isset($err_password)){
							echo $err_password;
						}	
					?>
					<input type="password" name="password" placeholder="Mot de passe" value="<?php if(isset($password)){ echo $password;} ?>">
				</div>
				
			</section>
			
			<input type="submit" name="inscription" value="S'inscrire">
		</form>
		
		<!-- Optional JavaScript -->
		<!-- jQuery first, then Popper.js, then Bootstrap JS -->
		<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
		<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
		<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
	</body>
</html>


Et voilà le code de ma connexionDB.php :


<?php
  	// Déclaration d'une nouvelle classe
  	class connexionDB {
		private $host    = 'localhost'// nom de l'host  
		private $name    = 'proyecto';    // nom de la base de donnée
		private $user    = 'root';       // utilisateur 
		private $pass    = 'root';       // mot de passe (il faudra peut-être mettre '' sous Windows)
		private $connexion;
		
		function __construct($host = null, $name = null, $user = null, $pass = null){
			if($host != null){
		        $this->host = $host;           
		        $this->name = $name;           
		        $this->user = $user;          
		        $this->pass = $pass;
			}
			try{
		    	$this->connexion = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->name,
					$this->user, $this->pass, array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8MB4', 
					PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
		  	}catch (PDOException $e){
		        echo 'Erreur : Impossible de se connecter  à la BDD !';
				die();
			}
		}
		
		public function connexion(){
			return $this->connexion;
		}
  	}
  	
  	$DB = new connexionDB;
  	
  	$BDD = $DB->connexion();
 
?>


Merci d'avance à ceux qui prendront le temps d'y jeter un oeil.


Sur ce, bonne journée !

531 vues
04 mars 2021 à 15:33
Cette pub permet au site de vivre ...

3 commentaires

Re @figuepants,


Nous attendons une réponse de ta part...

Ton problème est-il résolu ? 🤔

Bonsoir @figuepants,

Bienvenue sur le Sitedudev 🥳


Comment as-tu fais pour obtenir le code ? Tu l'as téléchargé ou tu as fais un copier-coller ? 🤔


Je te demande ça parceque certains caractères ne sont pas pris en compte en copiant le code et ça peut afficher des erreurs toute bête 😉


Bonne soirée 😁

Cette pub permet au site de vivre ...