Page 1 sur 1

Limité la $_SESSION avec les dates

Posté : 22 oct. 2020, 00:11
par Xotaz
Bonsoir,

Je viens vers vous pour un nouveau soucis.

J'aimerai limité la connexion sur le site avec un système de Date avec les $_SESSION
En gros, dans la base de donnée j'ai une colonne type "date" avec une date supérieur à la date d'aujourd'hui et le but c'est qu'une fois la date devenue antérieur à celle d'aujourd'hui, empêche l'utilisateur d’accéder au contenus tant que la date est antérieur.

Il faudrait ajouter une permission dans les $_SESSION ?

Merci de prendre le temps de m'aider.

Cordialement,

Re: Limité la $_SESSION avec les dates

Posté : 22 oct. 2020, 00:25
par @rthur
le but c'est qu'une fois la date devenue antérieur à celle d'aujourd'hui, empêche l'utilisateur d’accéder au contenus tant que la date est antérieur.
Pas besoin de session à priori, il te suffit juste de comparer au début de chacun de tes pages si la date du jour est inférieure ou supérieure à ta date stockée, et le cas échéant, afficher la page ou un message d'erreur

Re: Limité la $_SESSION avec les dates

Posté : 22 oct. 2020, 06:35
par Xotaz
Pas besoin de session à priori, il te suffit juste de comparer au début de chacun de tes pages si la date du jour est inférieure ou supérieure à ta date stockée, et le cas échéant, afficher la page ou un message d'erreur
Merci de venir en aide, j'ai oublié un détail. Chaque utilisateur à une date différentes (date d'inscription).
C'est quand même possible sans les fonctions $_SESSION ?

Re: Limité la $_SESSION avec les dates

Posté : 22 oct. 2020, 10:01
par @rthur
Tout dépend comment tu identifies tes visiteurs.
Si tu les identifies par une session, alors tu utiliseras une session, mais ce n'est pas pour faire ta vérification que tu as besoin de la session, c'est davantage pour gérer l'identification entre tes pages de ton visiteur.

Re: Limité la $_SESSION avec les dates

Posté : 22 oct. 2020, 18:31
par Xotaz
Tout dépend comment tu identifies tes visiteurs.
Si tu les identifies par une session, alors tu utiliseras une session, mais ce n'est pas pour faire ta vérification que tu as besoin de la session, c'est davantage pour gérer l'identification entre tes pages de ton visiteur.
D'accord, tu suggère quoi comme code du coup ?
Car je vois pas après différent essaie..

Re: Limité la $_SESSION avec les dates

Posté : 22 oct. 2020, 18:36
par @rthur
Qu'as-tu essayé ? Quels sont les messages d'erreur ?

Parce qu'à part un simple if() pour comparer 2 dates au format "Ymd" il n'y a normalement pas d'autres difficultés.

Re: Limité la $_SESSION avec les dates

Posté : 23 oct. 2020, 07:12
par Xotaz

Code : Tout sélectionner

<?php session_start(); if(!isset($_SESSION["auth"])){ header("Location: login.php"); exit(); } require('connect.php'); mysqli_select_db($con,"parametre"); $sql="SELECT abo FROM users"; $result = mysqli_query($con,$sql); while($row = mysqli_fetch_array($result)) { $date1 = date("NOW"); $date2 = $row["abo"]; if ($date2 > $date1) header("location:" . "index.php"); } ?>
Sauf que peux importe les dates que se sois inférieur ou supérieur sa m'affiche quand même le contenu de la page au lieu de le rediriger.

Merci de prendre du temps pour m'aider en tout cas :)


EDIT:
Et si je met le code comme ceci:

Code : Tout sélectionner

$date1 = date("Y-m-d");
Sa va me rediriger sur la page demander mais même si je suis supérieur ou inférieur à la date d’aujourd’hui.

Re: Limité la $_SESSION avec les dates

Posté : 23 oct. 2020, 11:37
par @rthur
Fais un var_dump() de tes variables $date1 et $date2 pour vérifier que leur format est identique et comparable.
A nouveau ma recommandation est d'utiliser le format Ymd, et pas Y-m-d

Par ailleurs, si la date est différente pour chaque utilisateur, il est étrange que dans ta requête SQL tu ne mettes pas une clause WHERE pour sélectionner l'utilisateur connecté.

Re: Limité la $_SESSION avec les dates

Posté : 23 oct. 2020, 19:04
par Xotaz
Fais un var_dump() de tes variables $date1 et $date2 pour vérifier que leur format est identique et comparable.
A nouveau ma recommandation est d'utiliser le format Ymd, et pas Y-m-d

Par ailleurs, si la date est différente pour chaque utilisateur, il est étrange que dans ta requête SQL tu ne mettes pas une clause WHERE pour sélectionner l'utilisateur connecté.
Du coup, j'ai réussi avec ce code:

Code : Tout sélectionner

require('connect.php'); mysqli_select_db($con,"parametre"); $sql="SELECT abo FROM users"; $result = mysqli_query($con,$sql); while($row = mysqli_fetch_array($result)) { $date1 = date("Y-m-d"); $date2 = $row["abo"]; } if ($date2 <= $date1){ header("location:" . "index2.php"); }
Merci de m'avoir diriger vers la solution :)

Re: Limité la $_SESSION avec les dates

Posté : 23 oct. 2020, 19:47
par @rthur
Comparer des dates au format "Y-m-d", c'est audacieux !

Tant mieux si ça fonctionne, le transtypage automatique de PHP me surprendra toujours (et dans le bon sens cette fois-ci ! ) :-D