-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsend_code.php
More file actions
54 lines (45 loc) · 1.75 KB
/
Copy pathsend_code.php
File metadata and controls
54 lines (45 loc) · 1.75 KB
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
<?php
session_start();
require_once 'config.php';
if (empty($_POST['email'])) {
$_SESSION['error'] = "L'email est obligatoire.";
header("Location: index.php");
exit();
}
$email = $_POST['email'];
try {
$stmt = $pdo->prepare("SELECT id FROM c_users WHERE email = ?");
$stmt->execute([$email]);
$user = $stmt->fetch();
if (!$user) {
$_SESSION['error'] = "Aucun compte trouvé avec cet email.";
header("Location: index.php");
exit();
}
// Génération du code
$code = str_pad(rand(0, 999999), 6, '0', STR_PAD_LEFT);
$expires = date('Y-m-d H:i:s', strtotime('+10 minutes'));
// Mise à jour du code dans la base
$stmt = $pdo->prepare("UPDATE c_users SET login_code = ?, login_code_expires = ? WHERE email = ?");
$stmt->execute([$code, $expires, $email]);
// Envoi du code par email (à adapter selon votre configuration)
$subject = "Votre code de connexion - Carnet d'Entretien";
$message = "Votre code de connexion est : $code. Il expire dans 10 minutes.";
$headers = "From: no-reply@carnet-entretien.com\r\n";
$headers .= "Reply-To: no-reply@carnet-entretien.com\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
// En développement, on affiche le code à l'écran
if (strpos($_SERVER['HTTP_HOST'], 'localhost') !== false) {
$_SESSION['dev_code'] = $code;
$_SESSION['dev_email'] = $email;
} else {
mail($email, $subject, $message, $headers);
}
header("Location: verify_code.php?email=" . urlencode($email));
exit();
} catch (Exception $e) {
$_SESSION['error'] = "Erreur lors de l'envoi du code : " . $e->getMessage();
header("Location: index.php");
exit();
}
?>