Bonjour a tous,
Voici des années que j'utilise un extranet fait maison avec une identification et sauvegarder par session.
Depuis quelques temps deux de mes sites hébergés sur le même disque dur chez mon hébergeur (oxianet) offrent des comportements différents.
Sur l'un, les sessions fonctionnent parfaitement et sur l'autre elles sautent de temps en temps .
Sur le second cela a pour conséquence, la connexion a l'extranet réussie, mais des que l'on navigue, on est rejeté vers la page contenant le formulaire de connexion car la session de tien pas.
Pour la partie commerciale de mon site, a savoir le panier, j'ai changé les sessions par des cookies, et tout est ok, par contre je ne sais pas si je peux faire la même chose pour un formulaire de connexion a un extranet, j'ai besoin de vos avis s'il vous plait.
Pour info, je vous mets mes codes de connexion ci-dessous :
index.php
session.php
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 <form class="form-login" method="post" name="login" action="'.$base_site.'"> <script src="cryptMD5.js" type="text/javascript"><!--mce:1--></script> <div class="errorHandler alert alert-danger no-display"><i class="fa fa-remove-sign"></i> Il y a certaines erreurs, merci de les corriger</div> <fieldset> <div class="form-group"> <span class="input-icon"> <input type="text" class="form-control" id="username" name="username" placeholder="Pseudo"> <i class="fa fa-user"></i> </span> </div> <div class="form-group form-actions"> <span class="input-icon"> <input type="password" class="form-control password" id="password" name="password" placeholder="Mot de passe"> <i class="fa fa-lock"></i> <a class="forgot" href="?box=forgot">Mot de Passe oublié? </a> </span> </div> <div class="form-actions"> <label for="remember" class="checkbox-inline"><input type="checkbox" class="grey remember" id="remember" name="remember">Conserver ma connexion</label> <input id="md5" name="md5" type="hidden" /> <button type="submit" name="submit" class="btn btn-bricky pull-right">Connexion<i class="fa fa-arrow-circle-right"></i></button> </div> </fieldset> <br><span style="font-size:11px" class="bold">Vous rencontrez des difficultés de connexion, merci de nous contacter au <b>'.$ent_tel.'</b></span> </form>
et le début de chaque page qui récupère la session
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 <?php if (($_GET['action'] == 'logout')) { $utlog=$_GET['utlog']; $date_compare = strtotime(date("Y-m-d")); $date_con = strtotime(date("Y-m-d H:i:s")); $res = mysql_query("SELECT * FROM `journal` where idUT='$utlog' and date='$date_compare' and connexion<>''"); $nbres=mysql_num_rows($res); if ($nbres<>"0"){$modif=mysql_query("UPDATE journal SET `deconnexion` = '$date_con' where idUT='$utlog' and date='$date_compare' and connexion<>''");} $_SESSION = array(); session_destroy(); header('Location: '.$base_site_err); } if (($_GET['action'] <> 'logout')) { if (isset($_POST) && (!empty($_POST['username'])) && (!empty($_POST['password']))) { extract($_POST); $cmail = (isset($_POST['username'])) ? $_POST['username'] : ''; $cpass = (isset($_POST['password'])) ? $_POST['password'] : ''; $cpass=md5($cpass); } else { $cmail = $_SESSION['username']; $cpass = $_SESSION['password']; } // CONNEXION if ($cmail<>'') { $req = mysql_query("SELECT * FROM `utilisateur` where a_mail='$cmail' or a_pseudo='$cmail'"); $nbcon=mysql_num_rows($req); if ($nbcon =="1") { $data = mysql_fetch_assoc($req); $idUT=$data['idUT']; $passdata=$data['a_pass']; if ($cpass==$passdata and $data['a_acc']=="1") { if($data['a_pseudo']==""){$_SESSION['username'] = $data['a_mail'];}else {$_SESSION['username'] = $data['a_pseudo'];} $_SESSION['password'] = $data['a_pass']; $mailOK = true; $modif=mysql_query("UPDATE `utilisateur` SET `a_ip` = '$ip' where idUT='$idUT'"); $MB_ip=$data['ip']; $modif=mysql_query("UPDATE `utilisateur` SET a_dateconx='".strtotime(date("Y-m-d H:i:s"))."' where idUT='$idUT'"); $MB_mail=$data['a_mail']; // recuperation des données de la personne $connexion="ok"; } if ($cpass<>$passdata) {header('location: '.$base_site_err); } if ($data['acc']=='0') {header('location: '.$base_site_err.'?error=comptesupprime'); } } else { header('location: '.$base_site_err); } } else { header('location: '.$base_site_err); } } ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php session_start(); extract($_POST); include ('config.php'); include ('session.php'); header('Content-Type: text/html; charset=UTF-8'); ?>
Merci infiniment pour votre aide
Olivier
Partager