Bonjour,

J'ai un problème pour me connecter à mon espace administration de mon site. La connexion se fait bien mais est inutile car en tapant l'adresse dans le navigateur d'une page par exemple localhost/client/cms/actu.php le lien est accessible savoir avoir été redirigé sur connexion.php qui se trouve au même endroit.

Alors j'ai créer un controlSession.php qui contrôle si la session login existe et quand je vais dans le lien localhost/client/cms/actu.php ça marque bien qu'il faut se connecter avec un lien vers connexion.php mais là dès que je me connecte, toujours pareil, veuillez vous connecter.

controlSession.php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?php
 
if ((!isset($_SESSION['login'])) || ($_SESSION['login'] == ''))
{
	// La variable $_SESSION['login'] n'existe pas, ou bien elle est vide
	// <=> la personne ne s'est PAS connectée
	echo '<p>Vous devez vous <a href="connexion.php">connecter</a>.</p>'."\n";
	exit();
}
 
?>

histoire.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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php 
 
require 'ressource/actuRessource.php';
require 'ressource/controlSession.php';
 
?>
 
 
<!DOCTYPE html>
<html lang="fr">
 <head>
 <meta charset="utf-8" />
 <title>Administration Morand</title>
 
 <link rel="stylesheet" href="../css/mainCms.css" type="text/css" />
 
 
 
 </head>
 
 <body>
 
 
 <div id="nav">
 
	 <ul>
		 <li><a class="aMenu" href="histoire.php">Histoire</a></li>
		 <li><a class="aMenu" href="savoirfaire.php">Savoir-faire</a></li>
		 <li><a class="aMenu" href="produits.php">Produits</a></li>
		 <li><a class="aMenu" href="recettes.php">recettes</a></li>
		 <li><a class="aMenu" id="deco" href="logout.php">Se déconnecter</a></li>
	 </ul>
 
 </div>
 
 
 
 
 
 
<div id="fondcms">
 	<header id="titleCms">
 		<h4>Espace administration Morand</h4><h6>Ajouter / Supprimer une histoire</h6>
 	</header>
 
 
 
		 <p>Ici vous pouvez ajouter ou supprimer une histoire. Celle-ci apparaîtra automatiquement sur la page d'accueil.</p>
 
			 <form method="post" action="histoire.php">
 
				 <label for="titre">Titre de l'actualité</label>
		 		 <input id="titre" name="titre" type="text" required /> <!-- Remplir ce champ est requis -->
		 <br/>
				 <label for="desc">Description </label>
				 <textarea id="desc" name="desc"></textarea> <!-- Remplir ce champ est requis -->
		 <br/>
				 <input type="submit" value="Créer">
		 	</form>
 
	 <header>
 		<h5>Histoire déjà publiées</h5>
 	 </header>
 
 </div>
 
 
 
 
 
 
 <!-- boucle affichant les dernières actus -->
 <ul id="news">
	 <?php
		 foreach($news as $nw) # Boucle qui affiche les news
		 {
			 echo '
					 <li>
						 <article>
							 <header>
								 <h5>'.$nw['title'].'</h5>
							 </header>

						 <div>
							<p>'.$nw['text'].'</p>
 		
								 <div>
								 	<p><a href="histoire.php?delete='.$nw['id'].'" class="supp">Supprimer</a></p>
								 </div>
 		
						 </div><!-- /.entry-content -->
						 
						 </article>
					</li>';
		 }
	?>
 </ul>
 
 
 
 <footer id="footer_site">
	 <p id="copyright">© Morand Tous droits réservés</p>	
 </footer>
 
 
 <!--[if lte IE 8]></div> <! [endif]-->
</body>
</html>

histoireRessource.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
<?php
 
#Connexion base de donnée
include_once 'idents.php';
 
 
 
#Token
 
 
date_default_timezone_set('Europe/Zurich'); # Définition du Time Zone
 
$token = '';
if(isset($_COOKIE['token']) && !empty($_COOKIE['token']))
	$token = $_COOKIE['token']; # Récupération des Cookies & Ou Sessions
 
$token = $token; # Protection des Injection SQL ect...
$login_q = $bdd->prepare("SELECT * FROM users WHERE token = :token AND valid = '1'");
$login_q->execute(array(
		'token' => $token
));
 
if($login_q->fetchColumn() < 0) # Si login pass et valid nok
{
	header('Location: connexion.php'); # Redirection
 
	exit();
}
 
 
 
 
#Remplissage Histoire
 
 
if(isset($_POST['titre'], $_POST['desc'])) # Création d'une news
{
	if(!empty($_POST['titre']) && !empty($_POST['desc']))
	{
 
		$title = $_POST['titre'];
		$text =$_POST['desc'];
 
		$insert_q = $bdd->prepare("INSERT INTO news VALUES ('', :title, :text, '1')"); # Insertion dans la table d'une nouvelle news (:date)
		$insert_q->execute(array(
		':text' => $text,
		':title' => $title,
 
		));
	}
}
 
 
$news = array();
 
$selectAll_q = $bdd->prepare("SELECT id, title, text, valid FROM news WHERE valid = '1'"); # Selection de toutes les news valides
$selectAll_q->execute();
 
while($result = $selectAll_q->fetch(PDO::FETCH_ASSOC))
{
	$news[] = $result; # Replissage du tableau avec ces valeurs
}
 
 
 
 
#Effacer
 
if(isset($_GET['delete']) && !empty($_GET['delete'])) # Si le paramètre delete est spécifié dans l'URL
{
	$id = $_GET['delete']; # Protection des Injection SQL ect...
	$delete_q = $bdd->prepare("UPDATE news SET valid = '0' WHERE id = :id");
	$delete_q->execute(array(
			'id' => $id
	));
}

Comme vous pouvez le voir, j'ai éssayé avec un ''token'' mais si je marque ''if($login_q->fetchColumn() == 0) (ce qui devrait normalement être le cas? ça me redirige tout le temps à ma page connexion.php)


MySQL

table : users avec à l'intérieur : id clé primaire, login, pass, mail, token, token_date et valid

Comment je pourrais faire que quand je met un lien direct sans me connecter je sois rediriger vers connexion.php car je me suis pas connecté ?

Je précise que j'ai un session_start(); dans mon idents.php qui est la connexion à la base de donnée et si j'ajouter un session_start(); dans un seul de ces fichiers ça me mets qu'il l'ignore car il y a deja session_start();

D'avance merci !