Bonjour,
Je travaille en local avec Netbeans et Wamp.
Quand je m'inscrit sur ma page register.php tout ce passe bien(utilisateur et token crée dans la bdd) mais quand je clique sur le bouton "je m'inscrit" je suis redirigée sur la page login et on en m'envoit rien sur mon adrresse GMAIL.

Par contre je ne sais pas comment vous poster mon code ?

Merci

9 réponses


Bonsoir,

Pour poster du code, tu peux utiliser le boutton qui ressemble à "</>" a droite du logo image qui te permettra de copy/paste.
(Pour ajouter le language après les 3 '`' , tu a juste à l'écrire, ce qui donnera :

` ` `php
/**
* Ton code ici (sans les espaces entre les `)
**/
` ` `

Sinon concernant les mails, Graf' à fait un petit article dessus dispo ici : http://www.grafikart.fr/blog/mail-local-wamp

OK, merci pour ta réponse
Je regardes l`article et si ça ne fonctionne toujours pas, je mettrai le code

Salut loloduquebec,

Commences par activer l'envoie de mail en local -> ici edit (une fois sur ton site refait une inscription) ensuite tu recevras un mail de notification d'une connexion bloquée (voir ci-dessous le contenu):

S'il ne s'agissait pas de vous
Veuillez examiner la page d'activité de votre compte à l'adresse https://security.google.com/settings/security/activity pour rechercher d'éventuels éléments suspects. La personne qui a tenté de se connecter à votre compte connaît votre mot de passe. Nous vous conseillons donc de le modifier immédiatement. 

S'il s'agissait de vous
Vous pouvez plutôt utiliser une application Google telle que Gmail pour accéder à votre compte (recommandé), ou si vous souhaitez que votre compte ne soit plus protégé par les normes de sécurité modernes, modifiez vos paramètres à l'adresse https://www.google.com/settings/security/lesssecureapps. 

Pour en savoir plus, consultez la page https://support.google.com/accounts/answer/6010255. 

Cordialement,
L'équipe Comptes Google

Clique que le lien de la partie "S'il s'agissait de vous" puis coche "activer".

Voilà ça fonctionne ;-)

Bon, jai essayé de régler cela. Ma nouvelle inscription est bien enregistrée dans la base de donnée mais pas de confirmation dinscription à lécran, je suis redirigée vers la page login et pas de message derreur d`envoie de mail mais toujours pas de mail pour pouvoir confirmer.

Mon code:

php
<?php
require_once 'inc/functions.php';
session_start();
if(!empty($_POST)){

    $errors = array();
    require_once 'inc/db.php';

    if(empty($_POST['username']) || !preg_match('/^[a-zA-Z0-9_]+$/', $_POST['username'])){
        $errors['username'] = "Votre pseudo n'est pas valide (alphanumérique)";
    } else {
        $req = $pdo->prepare('SELECT id FROM users WHERE username = ?');
        $req->execute([$_POST['username']]);
        $user = $req->fetch();
        if($user){
            $errors['username'] = 'Ce pseudo est déjà pris';
        }
    }

    if(empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
        $errors['email'] = "Votre email n'est pas valide";
    } else {
        $req = $pdo->prepare('SELECT id FROM users WHERE email = ?');
        $req->execute([$_POST['email']]);
        $user = $req->fetch();
        if($user){
            $errors['email'] = 'Cet email est déjà utilisé pour un autre compte';
        }
    }

    if(empty($_POST['password']) || $_POST['password'] != $_POST['password_confirm']){
        $errors['password'] = "Vous devez rentrer un mot de passe valide";
    }

if(empty($errors)){

    $req = $pdo->prepare("INSERT INTO users SET username = ?, password = ?, email = ?, confirmation_token = ?");
    $password = password_hash($_POST['password'], PASSWORD_BCRYPT);
    $token = str_random(60);
    $req->execute([$_POST['username'], $password, $_POST['email'], $token]);
    $user_id = $pdo->lastInsertId();
    mail($_POST['email'], 'Confirmation de votre compte', "Afin de valider votre compte merci de cliquer sur ce lien\n\nhttp://local.dev/Lab/Comptes/confirm.php?id=$user_id&token=$token");
    $_SESSION['flash']['success'] = 'Un email de confirmation vous a été envoyé pour valider votre compte';
    header('Location: login.php');
    exit();
}

}
?>

<?php require 'includes/header.php'; ?>

<?php if(!empty($errors)): ?>
<div class="alert alert-danger">
    <p>Vous n'avez pas rempli le formulaire correctement</p>
    <ul>
        <?php foreach($errors as $error): ?>
           <li><?= $error; ?></li>
        <?php endforeach; ?>
    </ul>
</div>
<?php endif; ?>

<div class=" container">
    <div class="account">
    <h1>S'enregistrer</h1>
            <div class="account-pass">
                <div class="col-md-8 account-top">
                    <form action="" method="POST">  
                        <div>
                            <label>Pseudo</label>
                            <input type="text" name="username" />
                        </div>
                        <div>
                            <label for="">Email</label>
                            <input type="text" name="email" />
            </div>
            <div>
                            <label for="">Mot de passe</label>
                            <input type="password" name="password" />
            </div>
            <div>
                            <label for="">Confirmez votre mot de passe</label>
                            <input type="password" name="password_confirm" />
            </div>
                        <br/>
            <button type="submit" class="btn btn-primary">M'inscrire</button>                                                
            <div class="clearfix"> </div>
                    </form>
            </div>
                <div class="col-md-4 left-account ">
            <a href="single.html"><img class="img-responsive " src="images/s1.jpg" alt=""></a>
            <div class="five">
            <h2>25% </h2><span>discount</span>
            </div>
    </div>
</div>

Merci

Euh Manide, je comprends pas trop ce que je dois faire et où.
Je passes par GMAIL.
Merci

Alors, il faut que tu suives les étapes de la vidéo que je t'ai mis dans mon précédent post. Cela te permet d'envoyer des mails en local.
Ensuite tu vas sur ton site, tu t'inscris comme d'hab avec ton adresse gmail.
Normalement tu vas recevoir un mail de gmail te disant qu'il a bloqué une tentative de connexion. (Pour ma part c'est envoyé dans l'onglet notification de gmail).
Tu ouvres ce mail et tu clique sur le lien de la section 2 (S'il s'agissait de vous).
Une page s'ouvre et tu cliques sur "Activer". (remets "désactiver" quand tu ne taff plus sur ton site).

Salut Manide,

alors j`ai réussi grace à ce tuto de Grafikart: http://www.grafikart.fr/blog/mail-local-wamp.

Merci de ton aide

De rien :)

Si ton problème est résolu, marques le comme tel.