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>