Bonjour,
Je suis en cours de développement d’un espace membre avec base de données Mysql.
L’espace membre est fondé sur la fourniture d’un pseudo (en fait l’adresse e-mail) et d'un mot de passe.
La structure de la table est la suivante :
J’y suis presque arrivé : la connexion, la déconnexion, la mise à jour des données par l’utilisateur et la désinscription fonctionnent tout à fait correctement.
En fait ma difficulté réside dans l’inscription, j’arrive à écrire dans la table un premier membre, mais pas le second et bien sûr les suivants.
Voici le code de la page d’inscription :
Je pense que l’erreur est dans le code d’écriture sur la table :
mais je n’arrive pas à cerner laquelle.
Merci pour votre aide
Cordialement
Je suis en cours de développement d’un espace membre avec base de données Mysql.
L’espace membre est fondé sur la fourniture d’un pseudo (en fait l’adresse e-mail) et d'un mot de passe.
La structure de la table est la suivante :
$sql = "CREATE TABLE users
(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
password VARCHAR(30) NOT NULL
)";
J’y suis presque arrivé : la connexion, la déconnexion, la mise à jour des données par l’utilisateur et la désinscription fonctionnent tout à fait correctement.
En fait ma difficulté réside dans l’inscription, j’arrive à écrire dans la table un premier membre, mais pas le second et bien sûr les suivants.
Voici le code de la page d’inscription :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Inscription espace membre</title>
</head>
<body>
<?php
define( 'USERNAME', '' ); // valeur par défaut
define( 'PASSWORD', '' ); // valeur par défaut
define( 'REPEATPASSWORD', '' ); // valeur par défaut
$errors = array(); // tableau des erreurs de saisie
if( filter_has_var( INPUT_POST, 'submit' ) ) // le formulaire a été soumis avec le bouton [Envoyer]
{
$username = filter_input( INPUT_POST, 'username', FILTER_VALIDATE_EMAIL );
//echo $pseudo;
if( $username === false ) // si l'adresse e-mail fournie n'est pas valide
{
$errors[] = 'Votre adresse e-mail n\'est pas valide.';
$from = filter_input( INPUT_POST, 'from', FILTER_SANITIZE_EMAIL );
}
$password = filter_input( INPUT_POST, 'password', FILTER_SANITIZE_FULL_SPECIAL_CHARS );
//echo $password;
if( $password == '' ) // si le mot de passe est vide
{
$errors[] = 'Veuillez saisir votre mot de passe.';
}
if(strlen($password)<6) // si ne nombr de caracrtère du mot de passe est inférieur à 6
{
$errors[] = 'Veuillez saisir un mot de passe d\'au moins 6 caractères.';
}
$repeatpassword = filter_input( INPUT_POST, 'repeatpassword', FILTER_SANITIZE_FULL_SPECIAL_CHARS );
//echo $repeatpassword;
if( $repeatpassword == '' ) // si la répétition du mot de passe est vide
{
$errors[] = 'Veuillez répéter votre mot de passe.';
}
if($password!=$repeatpassword)
{
$errors[] = 'Les mots de passe ne sont pas identiques.';
}
if( count( $errors ) === 0 )
{
$password = md5($password);
$host_name = "db575xxxxx.db.1and1.com";
$database = "db575xxxxx";
$user_name = "dbo575xxxxx";
$password_bd = "motpasse";
// Connexion à la base de données
$connect = mysqli_connect($host_name, $user_name, $password_bd, $database);
// Erreur de connexion
if (!$connect) {
die("Erreur de connexion : " . mysqli_connect_error());
}
mysqli_select_db($database);
$query = mysqli_query("INSERT INTO users (id,username,password) VALUES('','$username','$password')");
die('Inscription terminée, vous pouvez vous <a href="login.php">connecter</a>');
}
} else {
$username = USERNAME;
$password = PASSWORD;
$repeatpassword = REPEATPASSWORD;
}
if( count( $errors ) !== 0 )
{
echo( "\t\t<ul class=\"erreur\">\n" );
foreach( $errors as $error )
{
echo( "\t\t\t<li>$error</li>\n" );
}
echo( "\t\t</ul>\n" );
}
?>
<h1>Inscription</h1><form method="post" action="register.php">
<label for="username">Votre adresse e-mail</label>
<input type="text" name="username" value="<?php echo( $username ); ?>">
<br>
<br>
<label for="password">Votre mot de passe</label>
<input type="password" name="password" value="<?php echo( $password ); ?>">
<br>
<br>
<label for="repeatpassword">Répéter votre mot de passe</label>
<input type="password" name="repeatpassword" value="<?php echo( $repeatpassword ); ?>">
<br>
<br>
<input type="submit" name="submit" value="Vous inscrire">
<br>
<br>
<a href="login.php">Vous êtes déjà inscrit</a>
</body>
</html>
Je pense que l’erreur est dans le code d’écriture sur la table :
$query = mysqli_query("INSERT INTO users (id,username,password) VALUES('','$username','$password')");
mais je n’arrive pas à cerner laquelle.
Merci pour votre aide
Cordialement