Bonjour,

J'ai créer une fonction de connexion à une base de données (en utilisant mysqli), qui fonctionne parfaitement. Sauf pour la gestion des erreurs : lorsqu'une erreur se produit, une redirection est censée être effectuée vers une page d'erreur dédiée. Mais ça ne me redirige pas et ça affiche simplement une erreur normale. Voilà mon code :

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
<?php
	function DB_Connect($DB_Host, $DB_User, $DB_Password, $DB_Database)
	{
		if(isset($DB_Host) AND isset($DB_User) AND isset($DB_Password) AND isset($DB_Database))
		{
			if(!empty($DB_Host) AND !empty($DB_User) AND !empty($DB_Password) AND !empty($DB_Database))
			{
				$DB = mysqli_connect($DB_Host, $DB_User, $DB_Password, $DB_Database);
				if(!isset($DB))
				{
					$_SESSION['ERROR_CODE'] = base64_encode('DB_CONNECT.FCN#DB-CONNECT');
					REDIRECT_Header('ERROR');
				}
				else
				{
					$DB->real_query('SELECT RESULT FROM es_test');
					$DB_ANSWER = $DB->use_result();
					while($DB_DATA = $DB_ANSWER->fetch_assoc())
					{
						if(!isset($DB_DATA['RESULT']) OR $DB_DATA['RESULT'] != 'success')
						{
							$_SESSION['ERROR_CODE'] = base64_encode('DB_CONNECT.FCN#DB-CONNECT');
							REDIRECT_Header('ERROR');
						}
					}
				}
			}
			else
			{
				$_SESSION['ERROR_CODE'] = base64_encode('DB_CONNECT.FCN#EMPTY-ARGUMENTS');
				REDIRECT_Header('ERROR');
			}
		}
		else
		{
			$_SESSION['ERROR_CODE'] = base64_encode('DB_CONNECT.FCN#ISSET-ARGUMENTS');
			REDIRECT_Header('ERROR');
		}
	}
?>
Je précise que la fonction REDIRECT_Header fonctionne parfaitement (je l'ai testée), ce n'est donc pas elle qui pose problème. Je ne sais donc pas s'il me manque une partie de code, ou si c'est un problème dans mon code...

J'espère que vous pourrez m'aider, merci d'avance !

PS : Comme vous devez vous en douter, j'ai bien entendu créé une table es_test avec une colonne RESULT une entrée success.