Bonjour,
J'ai une page de connexion sans tous les cookies qui fonctionne et une page avec cookies qui ne marche pas.
Page qui fonctionne:
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
<?php declare(strict_types=1);
 
if( empty( session_id() ) )
	session_start();
 
$_SESSION = array_intersect_key($_SESSION, ['language'=>'', ]);
 
require_once "view/lang/{$_SESSION['language']}.php";
require_once "config.php";
require_once "model/model.php";
 
// Set default values
$errors	= [];
 
$page = $_COOKIE['startPage'] ?? 'family';
 
$demo = isset($_GET['demo']) ? true: false;
 
if($demo)
	$User = getUser('login', 'demo');
else {
	$post = $_POST;
	$login	= trim($post['login']);
	$pw		= trim($post['pw']);
 
	// Controls
	//.................................................................................................................................
 
	// Missing login
	if ( empty($post['login']) )
		$errors[] = $textes['error_2'];
 
	// Missing password
	if ( empty($post['pw']) )
		$errors[] = $textes['error_4'];
 
	// Read table 'dat_users' from database
	$User = getUser('login', $login);
 
	// Wrong login
	if( ! $User ) {
		$errors[] = $textes['error_6'];
	} else {
		// Case sensitive control (because MySQL is case insensitive)
		if($login !== $User['login'])
			$errors[] = $textes['error_8'];
 
		// Wrong password
		if ( $post['pw'] && ! password_verify($pw, $User['hash']) )
			$errors[] = $textes['error_10'];
 
		// User is banned
		if ($User['banned'])
			$errors[] = $textes->error_12;
 
		// User is not confirmed
		if (empty($User['checked']))
			$errors[] = $textes->error_14;
	}
 
}
 
//.....................................................................................................................................
 
// Errors handler
if ( count($errors) )
	$User = false;
 
// Store info in session
$_SESSION['errors'] = $errors;
$_SESSION['user'] = $User;
$_SESSION['demo'] = $User['id_abo'] === 1 ? true: false;
 
if($User) {
	$page = $_COOKIE['startPage'] ?? $page;
 
	if( isset($post['memory']) )
		setcookie('code', (string) $User['id'], time() + 60*24*3600);
	else
		setcookie('code', '', time() - 1);
} else {
	$page = 'home';
}
 
header("Location: index.php?page={$page}");
Page qui ne fonctionne pas:
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
<?php declare(strict_types=1);
 
if( empty( session_id() ) )
	session_start();
 
$_SESSION = array_intersect_key($_SESSION, ['language'=>'', ]);
 
require_once "view/lang/{$_SESSION['language']}.php";
require_once "config.php";
require_once "model/model.php";
 
// Set default values
$errors	= [];
$page = $_COOKIE['startPage'] ?? 'family';
$User = false;
 
$demo = isset($_GET['demo']) ? true: false;
 
// Cas particulier de la version démo
if($demo)
	$User = getUser('login', 'demo');
// Cas où l'utilisateur s'est enregistré
elseif( !empty($_COOKIE['code']) ) {
	$User = getUser('id', $_COOKIE['code']);
// Cas où l'utilisateur n'est pas enregistré et n'a pas saisi ses codes d'accès
} elseif( empty($_COOKIE['code']) && empty($_POST) ) {
	$page = 'home';
// Cas où l'utilisateur a saisi ses codes d'accès
} else {
	$post = $_POST;
	$login	= trim($post['login']);
	$pw		= trim($post['pw']);
 
	// Controls
	//.................................................................................................................................
 
	// Missing login
	if ( empty($post['login']) )
		$errors[] = $textes['error_2'];
 
	// Missing password
	if ( empty($post['pw']) )
		$errors[] = $textes['error_4'];
 
	// Read table 'dat_users' from database
	$User = getUser('login', $login);
 
	// Wrong login
	if( ! $User ) {
		$errors[] = $textes['error_6'];
	} else {
		// Case sensitive control (because MySQL is case insensitive)
		if($login !== $User['login'])
			$errors[] = $textes['error_8'];
 
		// Wrong password
		if ( $post['pw'] && ! password_verify($pw, $User['hash']) )
			$errors[] = $textes['error_10'];
 
		// User is banned
		if ($User['banned'])
			$errors[] = $textes->error_12;
 
		// User is not confirmed
		if (empty($User['checked']))
			$errors[] = $textes->error_14;
	}
 
}
 
//.....................................................................................................................................
 
// Errors handler
if ( count($errors) )
	$User = false;
 
// Store info in session
$_SESSION['errors'] = $errors;
$_SESSION['user'] = $User;
$_SESSION['demo'] = $User['id_abo'] === 1 ? true: false;
 
if($User) {
	$page = $_COOKIE['startPage'] ?? $page;
 
	if( isset($post['memory']) )
		setcookie('code', (string) $User['id'], time() + 60*24*3600);
	else
		setcookie('code', '', time() - 1);
} else {
	$page = 'home';
}
 
header("Location: index.php?page={$page}");
Cette page provoque l'affichage d'une page d'erreur
genealium.proginet.local vous a redirigé un trop grand nombre de fois.
essayez de supprimer vos cookies.
Pourquoi ai-je cette erreur maintenant, alors que la version précédente fonctionnait sans problème sans nouvelle redirection.