Bonjour
J'ai un fichier authcheck.php qui vérifie si les paramètres de ma session sont présents. Depuis quelques jours, après quelques manipulations ça ne fonctionne plus. J'essais de trouver ou est l'erreur que j'ai commis et je ni arrive pas.
Voici le processus.
Chaque ficher de mon site à le code suivant après l'entête
Le code du fichier auth-config.php est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php include "auth-config.php"; include "authcheck.php"; ?>
Le code du fichier authcheck.php est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <?php $session_timeout=820; ?>
Si j'accède directement au fichier https://www.domaine.net/login.php tout fonctionne bien, et ma session est ouverte.
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 <?php if(!isset($_SESSION['last_access']) || !isset($_SESSION['ipaddr']) || !isset($_SESSION['user'])) { header("Location: https://www.domaine.net/login.php"); die(); } if(time()-$_SESSION['last_access']>$session_timeout) { unset($_SESSION['last_access']); unset($_SESSION['user']); unset($_SESSION['ipaddr']); unset($_SESSION['repertoire']); header("Location: https://www.domaine.net/login.php"); die(); } if($_SERVER['REMOTE_ADDR']!=$_SESSION['ipaddr']) { unset($_SESSION['last_access']); unset($_SESSION['user']); unset($_SESSION['ipaddr']); unset($_SESSION['repertoire']); header("Location: https://www.domaine.net/login.php"); die(); } $_SESSION['last_access']=time(); ?>
Avec le code suivant dans le fichier
Mais dès que j'accède à https://www.domaine.net/ je tombe sur une page blanche avec seulement ce 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
41
42
43
44
45
46
47
48 <?php function CheckUser($login,$md5) { $database_localhost = "gestion"; $username_localhost = "user"; $password_localhost = "pass"; $localhost = mysql_pconnect($hostname_localhost, $username_localhost, $password_localhost) or trigger_error(mysql_error(),E_USER_ERROR); mysql_select_db($database_localhost, $localhost); $sql = "SELECT * from tbl_connexions WHERE pseudo = '$login' AND pass = '$md5' "; $resultat = mysql_db_query($database_localhost,$sql); $nombre = @mysql_num_rows($resultat); if (!$nombre || $nombre <> '1'){ return false; } return true; } ?> <?php if(!isset($_POST['md5'])) { header("Location: https://www.domaine.net/login.php"); die(); } $md5=$_POST['md5']; if(!isset($_POST['login'])) { header("Location: https://www.domaine.net/login.php"); die(); } $login=$_POST['login']; if(!CheckUser($login,$md5)) { header("Location: https://www.domaine.net/login.php"); die(); } session_start(); $_SESSION['last_access']=time(); $_SESSION['ipaddr']=$_SERVER['REMOTE_ADDR']; $_SESSION['user']=$login; header("Location: index.php"); ?>
Tout mes test me laisse croire que mon problème est dans mon fichier authcheck.php car si dans le premier if je mets un echo bye a la place du
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head>
...je reçois une page avec bye écrit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 header("Location: https://www.domaine.net/login.php"); die();
Merci de votre aide,
Jean-Pierre







Répondre avec citation
Partager