IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Gestion espace utilisateur


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Par défaut Gestion espace utilisateur
    Bonjour, j'ai suivi le tuto de Grafikart sur "la création d'un compte utilisateur" et il semble que moi j'ai commis des erreurs dans mes codes, des erreurs que je n'arrive pas à corriger d'abord. J'ai donc besoin d'aide pour les résoudre!
    1) Primo, actuellement lorsque je m'inscris, je reçois le mail de validation dans mon dossier spam au lieu de le recevoir directement dans ma boîte de reception.
    2) Deuxièmement, après la validation du compte, lorsque j’essaie de me connecter à travers la page "login.php", je n'y arrive pas, à moins que je coche l'option "se souvenir de moi" qui est relative au cookies. Alors que je dois normalement pouvoir me connecter sans cookie, et, avec cookie lorsque je le voudrai.
    3) Lorsque je m'inscris avec un 2eme compte, je n'arrive pas à me connecter avec ce dernier, si ce n'est le 1er.
    En effet, le code est subdivisé en plusieurs pages que voici:

    1) La page "register.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    <?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 deja 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 deja 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 cliquersur ce lien\n\nhttp://localhost/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 'inc/header.php'; ?>
     
        <h1>S'inscrire</h1>
     
             <?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; ?>
     
        <form action="" method="POST">
             <div class="form-group">
                 <label for="">Pseudo</label>
                 <input type="text" name="username" class="form-control"/>
             </div>
     
            <div class="form-group">
                <label for="">Email</label>
                <input type="text" name="email" class="form-control"/>
            </div>
     
            <div class="form-group">
                <label for="">Mot de passe</label>
                <input type="password" name="password" class="form-control"/>
            </div>
     
            <div class="form-group">
                <label for="">Confirmez votre mot de passe</label>
                <input type="password" name="password_confirm" class="form-control"/>
            </div>
     
            <button type="submit" class="btn-btn primary">M'inscrire</button>
        </form>
    <?php require 'inc/footer.php'; ?>
    2) La page "login.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    <?php
       require_once'inc/functions.php';
       reconnect_from_cookie();
       if(isset($_SESSION['auth']))
       {
           header('Location: account.php');
           exit();
       }
    if(!empty($_POST) && !empty($_POST['username']) && !empty($_POST['password']))
    {
        require_once'inc/db.php';
        $req = $pdo->prepare('SELECT * FROM users WHERE (username = :username OR email = :username) AND confirmed_at IS NOT NULL');
        $req->execute(['username' => $_POST['username']]);
        $user = $req->fetch();
        if(password_verify($_POST['password'], $user->password))
        {
            $_SESSION['auth'] = $user;
            $_SESSION['flash']['success'] = 'Vous êtes maintenant connecté';
     
            if($_POST['remember'])
            {
                $remember_token = str_random(250);
                $pdo->prepare('UPDATE users SET remember_token = ? WHERE id = ?')->execute([$remember_token, $user->id]);
                setcookie('remember', $user->id . '==' . $remember_token . sha1($user->id . 'ratonlaveurs'), time() + 60 * 60 * 24 * 7);
            }
            header('Location: account.php');
            exit();
        }else{
                $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorecte';
             }
    }
    ?>
     
    <?php require_once 'inc/header.php'; ?>
     
    <h1>Se connecter</h1>
     
    <form action="" method="POST">
        <div class="form-group">
            <label for="">Pseudo ou Email</label>
            <input type="text" name="username" class="form-control"/>
        </div>
     
        <div class="form-group">
            <label for="">Mot de passe <a href="forget.php">(J'ai oublié mon mot de passe)</a></label>
            <input type="password" name="password" class="form-control"/>
        </div>
     
        <div class="form-group">
            <label>
                <input type="checkbox" name="remember" value="1"/> Se souvenir de moi
            </label>
        </div>
     
        <button type="submit" class="btn-btn primary">Se connecter</button>
    </form>
     
    <?php require_once 'inc/footer.php'; ?>
    3) La page "account.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php
    $user_id=$_GET['id'];
    $token=$_GET['token'];
     
    require 'inc/db.php';
     
    $req = $pdo->prepare('SELECT * FROM users WHERE id = ?');
    $req->execute([$user_id]);
    $user = $req->fetch();
     
    session_start();
    if($user&&$user->confirmation_token == $token)
    {
        $pdo->prepare('UPDATE users SET confirmation_token = NULL, confirmed_at = NOW() WHERE id = ?')->execute([$user_id]);
     
        $_SESSION['flash']['success'] = "Votre compte a bien été validé";
        $_SESSION['auth'] = $user;
        header('Location: account.php');
    } else
          {
              $_SESSION['flash']['danger'] = "Ce token n'est plus valide";
              header('Location: login.php');
          }
    4) La page "logout.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
         session_start();
         setcookie('remember', NULL, -1);
         unset($_SESSION['auth']);
         $_SESSION['flash']['success'] = "Vous êtes maintenant déconnecté";
         header('location: login.php');
    5) La page "reset.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    <?php
    if(isset($_GET['id']) && isset($_GET['token']))
    {
        require 'inc/db.php';
        require 'inc/functions.php';
        $req = $pdo->prepare('SELECT * FROM users WHERE id = ? AND reset_token IS NOT NULL AND reset_token = ? AND reset_at > DATE_SUB(NOW(), INTERVAL 30 MINUTE)');
        $req->execute([$_GET['id'], $_GET['token']]);
        $user = $req->fetch();
        if($user)
        {
            if(!empty($_POST))
            {
                if(!empty($_POST['password']) && $_POST['password'] == $_POST['password_confirm'])
                {
                    $password = password_hash($_POST['password'], PASSWORD_BCRYPT);
                    $pdo->prepare('UPDATE users SET password = ?, reset_at = NULL, reset_token = NULL')->execute([$password]);
                    session_start();
                    $_SESSION['flash']['success'] = 'Votre mot de passe a bien été modifié';
                    $_SESSION['auth'] = $user;
                    header('Location: account.php');
                    exit();
                }
            }
        }else
        {
            session_start();
            $_SESSION['flash']['danger'] = "Ce token n'est pas valide";
            header('Location: login.php');
            exit();
        }
    }
    else
        {
            header('Location: login.php');
            exit();
        }
    ?>
    <?php require_once 'inc/header.php'; ?>
     
    <h1>Réinitialiser mon mot de passe</h1>
     
    <form action="" method="POST">
     
        <div class="form-group">
            <label for="">Mot de passe</label>
            <input type="password" name="password" class="form-control"/>
        </div>
     
        <div class="form-group">
            <label for="">Confirmation du mot de passe</label>
            <input type="password" name="password_confirm" class="form-control"/>
        </div>
     
        <button type="submit" class="btn-btn primary">Réinitialiser votre mot de passe</button>
    </form>
     
    <?php require_once 'inc/footer.php'; ?>
    6) La page "confirm.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php
    $user_id=$_GET['id'];
    $token=$_GET['token'];
     
    require 'inc/db.php';
     
    $req = $pdo->prepare('SELECT * FROM users WHERE id = ?');
    $req->execute([$user_id]);
    $user = $req->fetch();
     
    session_start();
    if($user&&$user->confirmation_token == $token)
    {
        $pdo->prepare('UPDATE users SET confirmation_token = NULL, confirmed_at = NOW() WHERE id = ?')->execute([$user_id]);
     
        $_SESSION['flash']['success'] = "Votre compte a bien été validé";
        $_SESSION['auth'] = $user;
        header('Location: account.php');
    } else
          {
              $_SESSION['flash']['danger'] = "Ce token n'est plus valide";
              header('Location: login.php');
          }
    7) La page de connexion à la base de données "db.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $pdo = new PDO('mysql:dbname=comptes; host:localhost', 'root', '');
    $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo ->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    8) La page des fonctions "functions.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    <?php
    function debug($variable)
    {
    echo '<pre>'.print_r($variable, true).'</pre>';
    }
     
    function str_random ($length)
    {
         $alphabet = "123456789azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN";
         return substr(str_shuffle(str_repeat($alphabet, $length)), 0, $length);
    }
     
    function logged_only()
    {
         if(session_status() == PHP_SESSION_NONE)
         {
              session_start();
         }
         if(!isset($_SESSION['auth']))
         {
              $_SESSION['flash']['danger'] = "Vous n'avez pas le droit d'accéder à cette page";
              header('Location: login.php');
              exit();
         }
    }
     
    function reconnect_from_cookie()
    {
         if(session_status() == PHP_SESSION_NONE)
         {
              session_start();
         }
     
         if(isset($_COOKIE['remember']) && !isset($_SESSION['auth']))
         {
              require_once'db.php';
              if(!isset($pdo))
              {
                   global $pdo;
              }
              $remember_token = $_COOKIE['remember'];
              $parts = explode('==', $remember_token);
              $user_id = $parts['0'];
              $req = $pdo->prepare('SELECT * FROM users WHERE id = ?');
              $req->execute([$user_id]);
              $user = $req->fetch();
              if($user)
              {
                   $expected = $user_id . '==' . $user->remember_token . sha1($user_id . 'ratonlaveurs');
                   if($expected == $remember_token)
                   {
                        session_start();
                        $_SESSION['auth'] = $user;
                        setcookie('remember', $remember_token, time() + 60 * 60 * 24 * 7);
                   }else
                   {
                        setcookie('remember', null, -1);
                   }
              }else
              {
                   setcookie('remember', null, -1);
              }
         }
    }
    9) La page "header.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <?php
        if(session_status() == PHP_SESSION_NONE);
             {
                session_start();
             }
    ?>
     
    <!DOCTYPE html>
       <html lang="en">
       <head>
              <meta charset="utf-8">
              <meta http-equiv="x-ua-compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1">
              <!-- The above 3 meta tags ... -->
              <meta name="description" content="">
              <link rel="icon" href="../../favicon.ico">
              <title> Mon super projet </title>
     
              <!-- BOOTSTRAP CORE CSS -->
              <link rel="stylesheet" href="css/app.css">
        </head>
        <body>
                <nav class="navbar navbar-inverse">
                    <div class="container">
                        <div class="navbar-header">
                           <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
                               <span class="icon-bar"></span>
                               <span class="icon-bar"></span>
                               <span class="icon-bar"></span>
                               <span class="icon-bar"></span>
                               <a class="navbar-brand" href="#">Mon super projet</a>
                           </button>
                        </div>
                        <div id="navbar" collapse navbar-collapse>
                            <ul class="nav navbar-nav">
                                <?php if(isset($_SESSION['auth'])): ?>
                                    <li><a href="logout.php">Se déconnecter</a></li>
     
                                    <?php else: ?>
    		    <h4>Mon super projet</h4>
                                        <li> <a href="register.php">S'inscrire</a></li>
                                        <li> <a href="login.php">Se connecter</a></li>
                                <?php endif; ?>
                            </ul>
                        </div>
                    </div>
                </nav>
     
              <div class="container">
     
                   <?php if(isset($_SESSION['flash'])) : ?>
     
                       <?php foreach($_SESSION['flash'] as $type => $message): ?>
     
                           <div class="alert alert<?= $type; ?>">
                               <?= $message; ?>
                           </div>
     
                       <?php endforeach; ?>
     
                            <?php unset($_SESSION['flash']); ?>
                   <?php endif; ?>

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    dans le script login.php, je ne vois de session_start();. C'est normal ?

    Pour le spam, tu dois formater ton mail plus proprement afin que son score antispam ne soit pas suffisant pour que ton logiciel de messagerie le dégage en spam.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Par défaut
    Oui c'est normal parce qu'il ya déjà une session_start(); dans la page "funtcions.php" qui est insérée dans la page "login.php"
    Pouvez-vous me donner une méthode pour formater mon mail svp?

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Pour les mails, regarde du côté de PhpMailer : ça te facilitera la vie et te permettra d'ajouter des headers propres.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Par défaut
    Citation Envoyé par Celira Voir le message
    Pour les mails, regarde du côté de PhpMailer : ça te facilitera la vie et te permettra d'ajouter des headers propres.
    Bonjour Celira,
    j'ai telechargé PhpMailer, je l'ai décompressé dans le dossier de mon projet et je suis entrain de chercher à le configurer pour continuer mon projet. Malheureusement il me pose un problème, du fait que je ne l'ai jamais utilisé.
    Voici le message d'erreur qu'il m'affiche:
    Warning: require_once(comptes_utilisateurs/class.phpmailer.php): failed to open stream: No such file or directory in C:\wamp\www\comptes_utilisateurs\register.php on line 57

    Fatal error: require_once(): Failed opening required 'comptes_utilisateurs/class.phpmailer.php' (include_path='.;C:\php\pear') in C:\wamp\www\comptes_utilisateurs\register.php on line 57
    Et voici le code de la page sur laquelle je l'ai inclu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
     
       <?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 deja 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 deja 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();
     
    				/* DEBUT MES MODIFICATIONS AVEC PHPMAILER*/
     
    				// On va chercher la classe PHPMailer
    					require_once('comptes_utilisateurs/class.phpmailer.php');
    					// Création d'un nouvel objet $mail
    					$mail = new PHPMailer();
    					// Encodage
    					$mail->CharSet = 'UTF-8';
    					// Corp de notre email
    					$body = "<p>Salut tout le <u>monde</u>,
    					voici un mail en <b>HTML</b></p>";
    					$body = mail($_POST['email'], 'Confirmation de votre compte', "Afin de valider votre compte, 
    				            merci de cliquer sur ce lien\n\nhttp://localhost/Comptes/confirm.php?id=$user_id&token=$token");
                                $_SESSION['flash']['success'] = "Un email de confirmation vous a été envoyé pour valider votre compte";
    					// Expediteur, adresse de retour et destinataire :
    					$mail->SetFrom("busimaker@gmail.com", "Mark Busi");
    					$mail->AddReplyTo("busimaker@gmail.com", "Mark Busi");
    					$mail->AddAddress("yoro@yahoo.fr", "Yoro");
    					// Sujet du mail
    					$mail->Subject = "Test d'envoi de mail avec PHPMailer";
    					// Le message
    					$mail->MsgHTML($body);
    					// Pièce jointe
    					$mail->AddAttachment("images/coeur.jpg");
    					// Envoi de l'email
    					if ( !$mail->Send() ) {
    					echo "Echec de l'envoi du mail, Erreur: " . $mail->ErrorInfo;
    					} else {
    					echo "Message envoyé!";
    					}
    					unset($mail);
    				/* FIN DE MES MODIFICATIONS AVEC PHPMAILER*/
                    /* mail($_POST['email'], 'Confirmation de votre compte', "Afin de valider votre compte, 
    				merci de cliquer sur ce lien\n\nhttp://localhost/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 'inc/header.php'; ?>
     
        <h1>S'inscrire</h1>
     
             <?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; ?>
     
        <form action="" method="POST">
             <div class="form-group">
                 <label for="">Pseudo</label>
                 <input type="text" name="username" class="form-control"/>
             </div>
     
            <div class="form-group">
                <label for="">Email</label>
                <input type="text" name="email" class="form-control"/>
            </div>
     
            <div class="form-group">
                <label for="">Mot de passe</label>
                <input type="password" name="password" class="form-control"/>
            </div>
     
            <div class="form-group">
                <label for="">Confirmez votre mot de passe</label>
                <input type="password" name="password_confirm" class="form-control"/>
            </div>
     
            <button type="submit" class="btn-btn primary">M'inscrire</button>
        </form>
     
    <?php require 'inc/footer.php'; ?>

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Je ne connais pas phpmailer mais là il s'agit d'une erreur de require. Et donc l'erreur t'indique que le chemin que tu indiques dans le require n'est pas bon.

    Plus précisément ici C:\wamp\www\comptes_utilisateurs\register.php n'est pas un chemin qui existe sur le serveur.

Discussions similaires

  1. Gestion d'utilisateurs
    Par rossy dans le forum ASP
    Réponses: 2
    Dernier message: 28/04/2005, 15h40
  2. [Oracle]probleme de gestion des utilisateurs
    Par gentarik dans le forum Oracle
    Réponses: 5
    Dernier message: 09/03/2005, 12h58
  3. [Gestion des utilisateurs] Changer l'interface simplifiée
    Par sekiryou dans le forum Windows XP
    Réponses: 4
    Dernier message: 19/01/2005, 05h42
  4. Administration MySQL gestion des utilisateurs
    Par MaxiMax dans le forum Administration
    Réponses: 2
    Dernier message: 01/07/2004, 13h56
  5. Gestion des Utilisateurs depuis une application
    Par LLaurent dans le forum XMLRAD
    Réponses: 4
    Dernier message: 25/03/2003, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo