Bonjour à tous,
je suis entrain de faire un site et j'aimerai limiter l'accés aux seuls membres inscrit.
J'ai un index.php avec un formulaire et je voudrai rediriger les personnes qui essai d'accéder aux autres pas sur cette index sauf si ces personnes ce sont déja connecté. Si l'identification via le formulaire est correcte, j'aimerai rediriger l'utilisateur sur la page d'accueil du site.
Pour l'instant j'ai ça :
index.php
Code PHP : 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 <?php //session_start(); require('config.php'); require('identification.php'); //Teste si l'utilisateur est déja connecté //Si c'est le cas, on redirige vers l'accueil ou la page demandé //Sinon, on redirige vers le formulaire de connexion if(isset($_SESSION['login']) && $_SESSION['login'] != NULL) { //Redirection vers accueil.php } else { //Si l'utilisateur n'est pas connecté, on regarde si il à fait un demande de connexion //Si c'est le cas, on regarde si l'identidiant et le mot de passe son correcte. if(isset($_POST['identifiant']) && isset($_POST['mot_de_passe'])) { //FILTRER ENTREES UTILISATEURS $identifiant = $_POST['identifiant']; $motDePasse = $_POST['mot_de_passe']; $connexion = new Identification(); $res = $connexion->testeConnexion($identifiant, $motDePasse); if($res === true) { $_SESSION['login'] = $identifiant; $_SESSION['motDePasse'] = $motDePasse; //Redirection vers la page d'accueil du site header('location: accueil.php'); // marche pas.... } else { echo 'Mauvais identifiant ou mot de passe. <br>'; echo 'Si vous avez oublié votre identifiant ou votre mot de passe, contactez un administrateur.'; } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> <link rel="stylesheet" media="screen" href="ecran.css"> </head> <body> <form method="post" action="index.php"> <fieldset> <legend>Connexion</legend> <p> <label for="identifiant">Identifiant : </label> <input type="text" name="identifiant" id="identifiant" /> </p> <p> <label for="mot_de_passe">Mot de passe : </label> <input type="password" name="mot_de_passe" id="mot_de_passe" /> </p> <p> <input type="submit" value="Se connecter" /> </p> </fieldset> </form> </body> </html>
identification.php
Code PHP : 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 <?php require('config.php'); class Identification { private $identifiant; private $motDePasse; private $connexionReussie; public function __construct() { } public function testeConnexion($unIdentifiant, $unMotDePasse) { //Filtre des entrées utilisateurs $this->identifiant = $unIdentifiant; $this->motDePasse = $unMotDePasse; try { $maBase = new PDO(SERVER_BDD, USER_BDD, PASS_BDD); $requete = "SELECT pseudo, mot_de_passe FROM utilisateurs WHERE pseudo = '$this->identifiant' && mot_de_passe = '$this->motDePasse' "; $objet = $maBase->query($requete); $resultat = $objet->fetchAll(PDO::FETCH_ASSOC); if(empty($resultat)) { $this->connexionReussie = false; } else { $this->connexionReussie = true; } $maBase = NULL; } catch(PDOException $e) { $this->connexionReussie = false; } return $this->connexionReussie; } } ?>
config.php contient seulement les constantes utilises pour la connexion à la bas de données.
Mon problème c'est que je ne peux pas faire de redirection avec header, pourtant je n'ai pas de html, echo et autre avant cette fonction.
Comment pourrai-je faire sans utiliser .htaccess?
Merci.
Partager