Hello !
Je débute en php et je suis sur la réalisation de ma première page d'enregistrement d'un membre.
Ma page ne retourne aucune erreur et n'ajoute pas non plus l'utilisateur dans la bdd.
Quelqu'un a une idée ?
Voici mon code :
register.php
functions.php
Ma table
Merci d'avance pour votre aide
Je débute en php et je suis sur la réalisation de ma première page d'enregistrement d'un membre.
Ma page ne retourne aucune erreur et n'ajoute pas non plus l'utilisateur dans la bdd.
Quelqu'un a une idée ?
Voici mon code :
register.php
<?php
session_start();
include("includes/db.php");
include("includes/functions.php");
include("header.php");
//Si pas valider
if (empty($_POST['valider'])) {
echo '<form method="post" action="register.php">
<p>
Nom d\'utilisateur : <input type="text" name="username" /><br />
Email : <input type="text" name="email" /><br />
Mot de passe : <input type="password" name="password" /><br />
Mot de passe (vérification) : <input type="password" name="password_verification" /><br />
<input type="submit" value="Valider" />
</p>
</form>'; }
else {
//Variables
$username = isset($_POST['username']) ? $_POST['username'] : 'nousername';
$email = isset($_POST['email']) ? $_POST['email'] : 'noemail';
$password = isset($_POST['password']) ? $_POST['password'] : 'nopassword';
$i = 0;
$pseudo_erreur1 = NULL;
$pseudo_erreur2 = NULL;
$pseudo_erreur3 = NULL;
$email_erreur1 = NULL;
$email_erreur2 = NULL;
$email_erreur3 = NULL;
$password_erreur1 = NULL;
// Check empty username
if(empty($username)) {
$pseudo_erreur1 = 'Vous n\'avez pas remplis de pseudo !';
$i++; }
// Check username size
if(strlen($username) <= 5) {
$pseudo_erreur2 = 'Votre pseudo dois comporter au moins 5caractères';
$i++; }
//Check if username is already in DB
$query=$db->prepare('SELECT COUNT(*) AS nbr FROM users WHERE username =:username');
$query->bindValue(':username',$username, PDO: [langue]ARAM_STR);
$query->execute();
$pseudo_free=($query->fetchColumn()==0)?1:0;
$query->CloseCursor();
if(!$pseudo_free)
{
$pseudo_erreur3 = 'Votre pseudo est déjà utilisé par un membre';
$i++;
}
//Check email
if(empty($email)) {
$email_erreur1 = 'Email manquant';
$i++; }
if (checkmail(!$email)) {
$email_erreur2 = 'Adresse email incorecte !';
$i++; }
//Check if email is already in DB
$query=$db->prepare('SELECT COUNT(*) AS nbr FROM users WHERE email =:email');
$query->bindValue(':email',$email, PDO: [langue]ARAM_STR);
$query->execute();
$email_free=($query->fetchColumn()==0)?1:0;
$query->CloseCursor();
if(!$email_free)
{
$email_erreur3 = 'Votre email est déjà utilisé par un membre';
$i++;
}
//Check Password
if($password != $password_verif || empty($nopassword) || empty($nopassword_verif)) {
$password_erreur1 = 'Votre mot de passe et votre confirmation sont différentes ou sont vides';
$i++; }
// Si tous est ok
if ($i==0) {
// Hachage du mot de passe
$pass_hache = sha1(isset ($_POST['password']));
// Insertion SQL
$req = $bdd->prepare('INSERT INTO users(username, password, email) VALUES(:username, [langue]assword, :email)');
$req->execute(array(
'username' => $username,
'password' => $pass_hache,
'email' => $email
));
echo "Inscription Validée !<br />Vous pouvez vous identifer<br />Redirection en cours";
}
// Sinon
else {
if(!empty($pseudo_erreur1)) {
echo $pseudo_erreur1;
echo '<br />'; }
if(!empty($pseudo_erreur2)) {
echo $pseudo_erreur2;
echo '<br />'; }
if(!empty($pseudo_erreur3)) {
echo $pseudo_erreur3;
echo '<br />'; }
if(!empty($email_erreur1)) {
echo $email_erreur1;
echo '<br />'; }
if(!empty($email_erreur2)) {
echo $email_erreur2;
echo '<br />'; }
if(!empty($email_erreur3)) {
echo $email_erreur3;
echo '<br />'; }
if(!empty($password_erreur1)) {
echo $password_erreur1;
echo '<br />'; }
}
}
include("footer.php");
?>
functions.php
<?php
function checkmail($email)
{
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
if(preg_match($Syntaxe,$email))
return true;
else
return false;
}
?>
Ma table
--
-- Structure de la table `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pseudo` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Merci d'avance pour votre aide
