par
Nostar81 » 27 nov. 2016, 18:06
Bonjour à tous, voici mon problème :
Je suis en train de faire une partie admin sur mon site.
Lorsque le bon identifiant et mdp a été rentré, ca ouvre une session, créé la variable $_SESSION['connect'] et l'initialise à 1.
Jusque la tout va bien. lorsque l'utilisateur retourne à l'index du site (c'est un one page) la sesison est censé être détruite grâce au session_destroy en haut de la page html. Sauf que lorsque j'essai d'atteindre une page de la partie admin directement depuis l'index via l'url et bien la variable $_SESSION['connect'] vaut toujours 1. Je ne comprend pas pourquoi. j'ai mis ça en haut de mon index, j'ai essayé sans le session_start aussi.
<?php
// On appelle la session
session_start();
// On écrase le tableau de session
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// On détruit la session
session_destroy();
?>
Et si quand je suis sur l'index je tente d'aller manuellement à une page php telle que celle ci :
<?php
session_start();
if (isset($_SESSION['connect']))
{
$connect = $_SESSION['connect'];
if ($connect == 1)
{
if (isset($_GET['supprimer'])) {
$id = $_GET['supprimer'];
if (is_numeric($id))
{
if (isset($_GET['supprimer']))
{
require('festival_connect.php');
$nbr = $bdd->query('DELETE FROM `participation` WHERE `id` ='.$id.'');
include 'supr_valid.php';
}
}
else
{
include 'acces_refuse.php';
}
}
else {
include 'acces_refuse.php';
}
}
else {
include 'acces_refuse.php';
}
}
else
{
echo 'lol';
}
?>
et bien l'utilisateur y a accès directement sans problème (il se heurte juste au fait qu'il n'a pas mis de variable dans l'url).
Je ne comprend pas vu que la session est détruire a chaque fois quand l'utilisateur est sur l'index il devrait bloquer au premier if ! :'(
ps : j'ai mis echo lol au else du premier if pour tester si ça bloque bien au premier if.
Merci d'avance !
