IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] problème avec time()


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut [PHP-JS] problème avec time()
    Bonjour à tous, je recherche un code qui me faciliterai grandement la vie, voila je fais un site sur imode et suis à la recherche d'un code php qui controle la valeur time() dans l'url, je m'explique sur la première page (index) je demarre la fonction time, (ca je sais faire) que je fais passer de pages en pages, en revanche ce que je ne sais pas faire c'est la controler, en effet je souhaiterai que lorsque que le time dans l'url est de plus de 900 secondes le visiteur sois redirigé vers une page d'erreur, cela empecherait les gens de sauvegarder en favoris des pages précises du site.
    Exemple concret, la page http://site.com/contact.php ne serait pas accessible directement il faudrait que le visiteur passe par l'index pour que l'url contienne un time valide et de moins de 900 secondes, la page de contact deviendrait alors http://site.com/contact.php?time=15143654353, passé 900 secondes http://site.com/contact.php?time=15143654353 ne serait plus valide et l'utilisateur devrait repasser par l'index..
    Certe ce n'est pas très sécurisé car n'importe qui (un webmaster par exemple) peut trouver que time correspondant à la date et heure en php...
    J'avais pensé à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <? 
    if (!isset($time)) $time=0; 
    $time = $time + 900; 
    LE CODE HTML 
    // si code expire, on redirige vers page expiration 
    if ($time < time()) header("Location: 
    http://monsite.com/expire.php"); 
    ?>
    Mais ca ne fonctionne pas, quelqu'un pourrait m'aider ?
    Merccccci

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Je te conseille de jetter un oeil sur ceci : Comment calculer le temps restants/écoulés entre deux heures ?

    Mais c'est vrai qu'il faut utiliser le timestamp pour faire la comparaison...

    de plus je dirais que c'est pas $time mais $_GET['time']

    Si la modification ne change rien, alors jettes un oeil au sujet donné plus haut

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut
    Je ne comprends pas trop ou faire la modif ?
    Ton lien me semble intéréssant, j'ai regarder mais c'est pas tout à fais ce que je recherche, en fait la le souci avec mon script actuel, c'est que : avec ou sans time (valide ou dépassé) dans l'url la page se charge
    Merci encore.

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <? 
    $time = isset($_GET['time'])?$_GET['time']:0;
    if ( abs($time - time()) > 900 ) 
      header("Location: http://monsite.com/expire.php"); 
    ?>
    Et comme ceci ??

    Sinon (si le time envoyé n'est pas pris comme un entier) peut etre qu'il faudrait faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $time = isset($_GET['time'])?intval($_GET['time']):0;

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut
    Merci de ta réponse, je viens de tester le premier script mais le problème est que même quand time est valide, il redirige vers la page d'expiration, vraiment si tu trouves le problème ca serait super cool, j'ai essayé pas mal de code php différent pour arriver à mes fins mais il y'a toujours eu un souci

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Fais deux tests

    1. avec un time expiré
    2. avec un time non expiré

    Et au lieu de faire la redirection affiche le calcul (la différence) avec un echo pour voir ce que l'on a vraiment

Discussions similaires

  1. [PHP-JS] Problème avec un script php d'un formulaire
    Par Dark DJ dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2006, 19h36
  2. [PHP-JS] Problème avec hidden ?
    Par samjung dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2006, 17h07
  3. [PHP-JS] Problème avec les $_GET J'en peux plus la
    Par schtek2 dans le forum Langage
    Réponses: 8
    Dernier message: 21/05/2006, 20h56
  4. [PHP-JS] Problème avec un menu déroulant
    Par grumly22 dans le forum Langage
    Réponses: 3
    Dernier message: 09/05/2006, 11h07
  5. [PHP-JS] problème avec le flush
    Par bat dans le forum Langage
    Réponses: 4
    Dernier message: 05/10/2005, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo