[RESOLU] Limité la $_SESSION avec les dates

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Limité la $_SESSION avec les dates

Re: Limité la $_SESSION avec les dates

par @rthur » 23 oct. 2020, 19:47

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

Re: Limité la $_SESSION avec les dates

par Xotaz » 23 oct. 2020, 19:04

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

par @rthur » 23 oct. 2020, 11:37

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

par Xotaz » 23 oct. 2020, 07:12

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

par @rthur » 22 oct. 2020, 18:36

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

par Xotaz » 22 oct. 2020, 18:31

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

par @rthur » 22 oct. 2020, 10:01

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

par Xotaz » 22 oct. 2020, 06:35

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

par @rthur » 22 oct. 2020, 00:25

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

Limité la $_SESSION avec les dates

par Xotaz » 22 oct. 2020, 00:11

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,