Erreur de stocage MySQL

Fermé
Nicolas - 26 mars 2015 à 17:07
 Nicolas - 8 avril 2015 à 11:35
Bonjour,

Je suis en cours de dev d'un forum et voici le code :
index.php :

<?php session_start();

	include_once 'function.php';
	$bdd = bdd();
	
	if(!isset($_SESSION['id'])) {
		header('Location: inscription.php');
	} else {
	
	?>
	
		<!DOCTYPE html>
		<html>
			<head>
				<title>Forum</title>
				<link rel="stylesheet" href="style.css" />
				<meta charset="utf-8" />
				<meta name="author" content="" />
			</head>
			<body>
		
		
		
				<div class="forum">
		
				<h1>Bienvenu dans mon forum.</h1>
				
				<?php
					echo '<h3>Bienvenue' . echo $_SESSION['pseudo'] . '</h3><a href="deconnexion.php">Deconnexion</a>';
				?>
				
				</div>
		
			</body>
		</html>
	
	<?php
	}
?>



Le "inscription.php"
<?php session_start();

	include_once 'function.php';
	include_once 'inscription.class.php';
	$bdd = bdd();
	
	if(isset($_POST['pseudo']) AND isset($_POST['email']) AND isset($_POST['mdp']) AND isset($_POST['mdp2'])) {
		
		$inscription = new inscription($_POST['pseudo'], $_POST['email'], $_POST['mdp'], $_POST['mdp2']);
		$verif = $inscription->verif();
		
		if($verif == "Ok") { /* Tout est bon */
			
			if($inscription->enregistrement()) {
				
				if($inscription->session()) { /* Tout est mis en session */
					header('Location:index.php');
				}
				
			} else { /* Erreur lors de l'enregistrement */
				echo "Une erreur est survenue";
			}
			
		} else {
			$erreur = $verif;
		}
		
	}
	
?>
	
<!DOCTYPE html>
<html>
	<head>
		<title>Inscription</title>
			<link rel="stylesheet" href="style.css" />
			<meta charset="utf-8" />
			<meta name="author" content="FERRAYE Nicolas" />
	</head>
	<body>
		
		
		
		<div class="conteneur">
		
			<h1>Inscription :</h1><br />
			
			<form action="inscription.php" method="post">
				<input name="pseudo" type="text" placeholder="Pseudo" required /><br />
				<input name="email" type="text" placeholder="E-Mail" required /><br />
				<input name="mdp" type="password" placeholder="Mot de passe" required /><br />
				<input name="mdp2" type="password" placeholder="Confirmation" required /><br /><br />
				<input type="submit" value="Inscription" /><br /><br />
				<?php
					
					if(isset($erreur)) {
						echo $erreur;
					}
					
				?>
			</form>
			
		</div>
		
	</body>
</html>


Le la fonction function.php

<?php

	function bdd() {
		try {
			$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
			$bdd = new PDO('mysql:host=localhost;dmname=forum', 'root', '', $pdo_options);
		}
		catch(Exception $e) {
			die('Erreur : ' . $e->getMessage());
		}
		return $bdd;
	}

?>

inscription class
<?php session_start(); 

	include_once 'function.php';

	class inscription {
		
		private $pseudo;
		private $email;
		private $mdp;
		private $mdp2;
		private $bdd;
		
		public function __construct($pseudo,$email,$mdp,$mdp2) {
		
			$pseudo = htmlspecialchars($pseudo);
			$email = htmlspecialchars($email);
			
			$this->pseudo = $pseudo;
			$this->email = $email;
			$this->mdp = $mdp;
			$this->mdp2 = $mdp2;
			$this->bdd = bdd();
			
		}
		
		public function verif() {
			
			if(strlen($this->pseudo) > 2 AND strlen($this->pseudo) < 15) { /* Si le pseudo bon */
				
				$syntaxe = '#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
				
				if(preg_match($syntaxe,$this->email)) { /* email bon */
					
					if(strlen($this->mdp) > 5 AND strlen($this->mdp) < 20) { /* Si le format du mot de passe est BON */
						
						if($this->mdp == $this->mdp2) { /* Mot de passe et confirmation identiques */
							return 'ok';
						} else { /* Mot de passe et confirmations !! */
							$erreur = "Le mot de passe et sa confirmatons ne sont pas identiques";
							return $erreur;
						}
						
					} else { /* Mauvais format du mot de passe */
						$erreur = "Le mot de passe doit contenir entre 6 et 20 carractères";
						return $erreur;
					}
					
				} else { /* email incorrect donc ERREUR */
					$erreur = "Syntaxe de l'E-Mail incorrect";
					return $erreur;
				}
				
			} else { /* Sinon */
			
				$erreur = "Le pseudo doit contenir entre 2 et 15 carractères";
				return $erreur;
			
			}
			
		}
		
		public function enregistrement() {
		
			$requete = $this->bdd->prepare('INSERT INTO membres(pseudo,email,mdp) VALUES(:pseudo,:email,:mdp)');
			$requete->execute(array(
				'pseudo' => $this->pseudo,
				'email' => $this->email,
				'mdp' => $this->mdp
			));
			
			return 1;
		
		}
		
		public function session() {
			$requete = $this->bdd->prepare('SELECT id FROM membres WHERE pseudo = :pseudo');
			$requete->execute(array('pseudo'=> $this->pseudo));
			$requete = $requete->fetch();
			$_SESSION['id'] = $requete['id'];
			$_SESSION['pseudo'] = $this->pseudo;
			
			return 1;
		}
		
	}

?>


le deconnexion :
<?php
session_start();
session_unset();
session_destroy();
header('Location: connexion.php');
?>


Je n'arrive pas à stoquer mes donées dans le mysql.

Je vous remercie.


A voir également:

1 réponse

Je remonte le sujer
0
Re
0