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

  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

  7. #7
    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
    Concernant les test c'est la redirection dans les deux cas Par contre comment faire la difference ? Dsl je suis pas super fort en php

  8. #8
    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
    ben je t'ai tout donnée tu fais un simple $time - time() et c'est tout

  9. #9
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <? 
    $time = isset($_GET['time'])?intval($_GET['time']):0; 
    if ( abs($time - time()) > 900 ) 
      echo"$time - time()";
    ?>
    J'obtiens :
    0 - time()

  10. #10
    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
    Alors je viens de tester et ca fonctionne parfaitement avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?
    echo $time = isset($_GET['time'])?$_GET['time']:0;
    echo "<br>";
    echo time();echo "<br>";
    echo abs(time() - $time);
    if (abs(time() - $time) > 900 )
      echo "Location: http://monsite.com/expire.php";
     
    ?>

  11. #11
    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
    Oki, de mon coté aussi, par contre avec ou sans time j'obtiens toujours un résultat et ne suis jamais redirigé, c'est normal ?

  12. #12
    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
    Ca c'est la suptilité de header..Pour en savoir plus : Comment faire une redirection ?
    Sinon il y a comme indiqué dans le sujet que je viens de te donner la solution javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<script language="javascript">document.location.href="http://monsite.com/expire.php";</script>';

  13. #13
    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
    En fait sur imode la java ne fonctionne pas, c'est possible d'afficher un message d'erreur si la redirection ne fonctionne pas ?

  14. #14
    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
    Ben tu fais un echo et ca devrait afficher le message d'erreur que tu souhaites afficher

  15. #15
    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
    Ok, je vais aller faire un ptit somm, en tout cas merci beaucoup, à demain ou plutot à toute à l'heure .
    Bonne nuit.

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