Bonjour,

Voila je rencontre un petit problème avec mon code.

je suis sur la chaine youtube de grafikart le tuto sur l espace membre. Au niveau de l email de confirmation je la reçois jamais sur ma boite pourtant j 'ai suivi pas à pas son tuto.

Décrivez ici votre code ou ce que vous cherchez à faire

voila ma partie php

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

<?php

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é!';
    }
}

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

if(empty ($errors))
{

    $req=$pdo->prepare("INSERT INTO users SET username=?,email=?,password=?, confirmation_token= ?");
    $password = crypt ( $_POST['password']);
    $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 ccompte veuillez cliquer su ce lien\n\nhttp://localhost/myapp/comfirm.php?id=$user_id&token=$token");
   $_SESSION['flash']['success'] = 'Un email de confirmation vous a été envoyé';
header('Location:login.php');
exit();
}
debug($errors);

}

?>
Entourez votre code avec ce symbole ```



### Ce que je veux

Décrivez ici ce que vous cherchez à obtenir

### Ce que j'obtiens

Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(

9 réponses


Romain Chevallier
Réponse acceptée

Bonjour,

La configuration de votre Serveur SMTP ne doit pas etre bonne dans le php.ini

Bon courage

Lartak
Réponse acceptée

Bonjour.
Pour se connecter à MailDev, ce n'est pas le port 25 mais le port 1025.
Si tu as lancé maildev en ligne de commandes, tu ne pourrais pas te tromper vu qu'une fois qu'il est lancé, tu as le retour sur la console avec le message qui te dit qu'il écoute sur le port 1025.
Une petite astuce au passage, en faisant la commande maildev -o l'interface web s'ouvrira automatiquement dans ton navigateur s'il ne rencontre pas de problème pour se connecter.

J ai tout cherché sur internet et j arrive vraiment pas. Est ce que je peux continuer le tuto en enlevant la partie send mail

ou bien svp, vous pouvez me dire qu est ce que je dois changer dans cette partie
; For Win32 only.
; http://php.net/smtp
SMTP = 127.0.0.1
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com

le SMTP ne dois pas etre ton adresse local c'est la le problème regarde sur internet les SMTP ouvert sinon regard dans la section tuto y a un tuto sur MAILDEV très intéressant pour ton cas

Merci beaucoup je vais regarder =)

J' ai suivi le tuto et g un autre probleme Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() (pour le port g mis au debut 1025 et c la meme chose)

arf tu as bien lancé maildev depuis nodejs ?

merci bcp de m avoir aider, effectivement je n ai pas activé le maildev.