Bonjour,
Voila je rencontre un petit problème avec mon code.
je voudrais envoyer un mail de confirmation avec l'id et le token généré pour ce fait j'ai utiliser la fonction ''lastInsertId"pour la recupération de l'id dans ma base de donnée mais je n'y arrive pas
mail($_POST['email'], "Confirmation de votre compte", "Afin de valider votre compte, merci de bien coller ce lien ci-dessous dans votre URL:\n\nhttp://localdev/ESCOTIC/Comptes/confirm.php?id=$user_id&token=$token")
lorsque l'utilisateur valide son inscription, il recoit normalement le token avec l'id attribué a son inscription dans la base de donnée mais le probleème est que lorsque l'utilisateur recois le mail pour la confirmation du compte, l'id recupéré est egal a 0 d'ou un echec lors de l'inscrition pourtant il y a bien un id qui lui est attribué lorsque je regarde dans ma base de donnée. pouvez vous svp me dire d'ou viens le problème???
"Afin de valider votre compte, merci de bien coller ce lien ci-dessous dans votre URL:
tu fait bien un truc genre (voir ci dessous) avant ta fonction mail ?:
$user_id = $pdo->lastInsertId();
Il faut savoir que selon ou tu place cette ligne de commande , ça prend l'ID ou renvoie 0 ... exemple (ils en parle dans la doc php sur la function lastInsertId() dans les commentaires:
try {
$dbh = new PDO('mysql:host=XXXXXXXXXXX;dbname=XXXXXXXXXXXXXX', 'XXXXXXXXXXX', 'XXXXXXXXXXXXXXX');
$stmt = $dbh->prepare("INSERT INTO test (name, email) VALUES(?,?)");
try {
$dbh->beginTransaction();
$stmt->execute(array('user', 'user@example.com'));
print $dbh->lastInsertId(); // ici renvoie l'ID
$dbh->commit();
print $dbh->lastInsertId(); // ici renvoie 0
} catch(PDOExecption $e) {
$dbh->rollback();
print "Error!: " . $e->getMessage() . "</br>";
}
} catch( PDOExecption $e ) {
print "Error!: " . $e->getMessage() . "</br>";
}
Merci Alexandre j'ai placé la fonction lastInsertId juste avant ma fonction mail et la elle me renvoie belle et bien l'idée comme escompté merci pour ton aide