J'ai fais plusieurs codes, j'me suis embrouillé, alors j'ai repris vraiment le tuto de ce site, et j'ai juste ajouté la confirmation par mail, ce qui donne :
<?php
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['mail']) && !empty($_POST['mail'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$base = mysql_connect ('serveur', 'login', 'mdp');
mysql_select_db ('base', $base);
$sql = 'SELECT id FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb == 0) {
// Génération de la clef d'activation
$caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$caracteres_aleatoires = array_rand($caracteres, 8);
$clef_activation = "";
foreach($caracteres_aleatoires as $i)
{
$clef_activation .= $caracteres[$i];
}
// Création du compte
$result = mysql_query("
INSERT INTO membre(
login
, pass
, mail
, Date_Inscription
, Clef_Activation
)
VALUES(
'" . $_POST["login"] . "'
, '" . md5($_POST["pass"]) . "'
, '" . $_POST["mail"] . "'
, '" . time() . "'
, '" . $clef_activation . "'
)
");
// S'il y a une erreur
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la création du compte utilisateur";
}
else
{
// Envoi du mail d'activation
$sujet = "Activation de votre compte utilisateur";
$message = "Pour valider votre inscription, merci de cliquer sur le lien suivant :\n";
$message .= "http://" . $_SERVER["SERVER_NAME"];
$message .= "/membre/activer-compte-utilisateur.php?id=" . mysql_insert_id();
$message .= "&clef=" . $clef_activation;
// S'il y a une erreur
if(!@mail($_POST["mail"], $sujet, $message))
{
$message = "Une erreur est survenue lors de l'envoi du mail d'activation<br />\n";
$message .= "Veuillez contacter l'administrateur afin d'activer votre compte";
}
else
{
// Message de confirmation
$message = "Votre compte utilisateur a correctement été créer<br />\n";
$message .= "Un email vient de vous être envoyer afin de l'activer";
}
// id du membre
$id = mysql_insert_id();
session_start();
$_SESSION['login'] = $_POST['login'];
// stocke l'id
$_SESSION['id'] = $id;
header('Location: /membre.php');
exit();
}
}
mysql_close ();
}
?>
<html>
<head>
<title>Inscription</title>
</head>
<body>
Inscription à l'espace membre :<br />
<form action="/inscription2.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo stripslashes(htmlentities(trim($_POST['pass_confirm']))); ?>"><br />
Adresse e-mail : <input type="text" name="mail" value="<?php if (isset($_POST['mail'])) echo stripslashes(htmlentities(trim($_POST['mail']))); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
</body>
</html>