Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1179 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  time out/champs/php/monnai-heur/blems

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

time out/champs/php/monnai-heur/blems

n°1299141
rut
Posté le 04-02-2006 à 19:38:57  profilanswer
 

bonsoir a vous tous,
 
voila , j'expose mes divers soucis.
Pour commencer , il s'agit plutot d'une question, voila sur mon site integralement php/mysql avec session , je desirais que l'internaute apres un laps de temps de fasse delloguer , il faut parametré le php.ini , j'ai chercher des renseignements mais ca ne fonctionne pas, tout d'abord est ce qu'en local cela marche ou pas? ensuite faut-il mettre un code sur les page php pour ce "deloguage"?.
 
ensuite , sur mon site , j'aimerais faire un style de diverses action qui neccesite de l "argent virtuel" que l'on acquerirai avec les connections au site, exemple 1heure de connection = 100credits . j'ai chercher , je ne trouve pas, est ce que ca se situe au niveau du php.ini ou dans les script avec un champs 'credits' creer?je ne demande pas un script tout fait qui m'avancerais a rien , a ne rien comprendre, si des personnes peuvent m'aidez je les remercierais du fond du coeur!
 
 
merci  
 
A+ :)

mood
Publicité
Posté le 04-02-2006 à 19:38:57  profilanswer
 

n°1299730
the_bigboo
Posté le 06-02-2006 à 12:37:33  profilanswer
 

ben je serais toi je créerai une variable de session qui serait le mktime() de la seconde d'acces au site... que je teste a chaque page,
 

Code :
  1. function CheckSession ()
  2.        {
  3.        $hour  = Date ("H" );
  4.        $minute = Date ("i" );
  5.        $second = Date ("s" );
  6.        $month  = Date ("n" );
  7.        $date  = Date ("j" );
  8.        $year  = Date ("Y" );
  9.        // On vérifie si la session est activée
  10.        if(isset($_SESSION['StartTime'])
  11.              {
  12.              // La session expire dans $TimeOut secondes
  13.              $TimeOut = 3600 ;
  14.              $ExpireTime = $_SESSION['StartTime'] + $TimeOut ;
  15.              // On teste
  16.              if(mktime ($hour, $minute, $second, $month, $date, $year) > $ExpireTime )
  17.                           {
  18.                           // Session expirée
  19.                           session_destroy();
  20.                           header("location:session_timeout.php" );
  21.                           }
  22.              }
  23.        else
  24.              {
  25.              // Le visiteur vient d'arriver sur le site
  26.              $_SESSION['StartTime'] = mktime ($hour, $minute, $second, $month, $date, $year);
  27.              }
  28.       }


Ca c'est pour le TimeOut de session :) A mettre en tete de chaque fichier PHP. Dans le cas ou evidemment tu utilises une identification par session :)
 
Meme principe pour ton chrono.... Mais au lieu de detruire la session au bout de $Timeout secondes, tu fais une requete SQL ;)


Message édité par the_bigboo le 06-02-2006 à 12:37:59
n°1299999
rut
Posté le 06-02-2006 à 17:48:00  profilanswer
 

merci  
 
j'ai tester , simplement en mettant se script que tu m'as donner , mais meme apres 20 minute (en prenant $timeout = 60 ), si je reactualise la page elle revien sans probleme.Est ce que je dois changer alors des parametres dans le ini?
 
Pour ce qui est des "credits" et du calcule temps , je dois remplacer "session_destroy(); par une requete sql , cest bien ca?alors il faudra creer un champs "credit" dans ma base de donnee?
 
merci a toi :)


Message édité par rut le 06-02-2006 à 17:48:56
n°1300070
the_bigboo
Posté le 06-02-2006 à 19:55:13  profilanswer
 

touche rien nulle part !

n°1300190
rut
Posté le 06-02-2006 à 21:54:59  profilanswer
 

ok , mais je desire que la session soit destroy apres 10 minutes d'inactivité jusqua la prochaine action ou refresh
 
par contre "Meme principe pour ton chrono.... Mais au lieu de detruire la session au bout de $Timeout secondes, tu fais une requete SQL " je ne comprend pas , si je ne peux toucher a rien?:s

n°1300291
the_bigboo
Posté le 07-02-2006 à 01:01:13  profilanswer
 

en disant touche a rien je parlais de la modification du PH.ini !!
 
la fonction tu l'adapte :)
 
10 minutes = 60 secondes ; tu mets $TimeOut = 600 ; dans la fonction et basta :)

n°1300309
Djebel1
Nul professionnel
Posté le 07-02-2006 à 04:55:52  profilanswer
 

pkoi dans ton script tu passes pas tout simplement part un time () ?  :??:  
y a 0 interet à stocker le jour, le mois, l'année .. le timestamp c'est fait pour ça

n°1300316
the_bigboo
Posté le 07-02-2006 à 08:46:28  profilanswer
 

Une mauvaise habitude, car apres quand j'utilise le mktime, j'utilise aussi ces attributs de date() , donc oui , time() suffit largement, j'ai mis mktime par habitude ;)

n°1300673
rut
Posté le 07-02-2006 à 17:40:48  profilanswer
 

salut
 
voila j'ai tester mais ca ne fonctionne pas , apres meme 1 heure , si on reactualise , la page revien sans probleme :s
 
pour se qui est du niveau , +100creds par heure de connection , je ne vois pas quel requete sql faire
 
:)

n°1300692
the_bigboo
Posté le 07-02-2006 à 18:30:06  profilanswer
 

c'est bête : nous non plus ! Pas de structure de table et on ne lis pas dans le marc de café ici :o

mood
Publicité
Posté le 07-02-2006 à 18:30:06  profilanswer
 

n°1300699
rut
Posté le 07-02-2006 à 18:43:38  profilanswer
 

je dois donc fournir plus d'info? je n'ai aucune table de creer pour ce qui est des "credits"

n°1300805
the_bigboo
Posté le 07-02-2006 à 22:22:58  profilanswer
 

Tu as une structure de projet au moins :??:

n°1300835
rut
Posté le 07-02-2006 à 22:59:53  profilanswer
 

oui , 1an et 2mois que je programme sur ce projet , mais la avant de le mettre en ligne , j'veux que mon site soit ok avant de louer un server dedie , ce serais bete de perdre du temps inutile si je n'ai pas fait tout mon site :)
 
par contre pour ce qui est du timeout , apres 10 minute d'inactiviter , j'aimerais envoyer l internaute sur la page de login , ce que j'ai assayer avec ton script qui ne donne guere de succes , ensuite pour les "credits" je n'ai rien fait ,puisque je n'ai sais comment faire pour que 1heur de connection est egal a Xcredits , je devrais certainement creer une table ou champ "credit" , mais je ne sais pas comment etablir 1heure=Xcredit qui ajouteront Xcredit dans le champs "credit" a l' 'id_user'  
 
:)

n°1300878
the_bigboo
Posté le 07-02-2006 à 23:52:05  profilanswer
 

comment marche ton systeme d'authentification ? Par session ?? Par cookie ??

n°1301322
rut
Posté le 08-02-2006 à 15:11:15  profilanswer
 

voila enfait l'internaute se connecte sur login.php , il y met son login+mdp le tout present dans la base de donnee et apres verification , il est rediriger sur une page x.php  
 
voici ce que j'ai a chaque page pour verifier si l'user est loguer:
 
session_start();  
if (session_is_registered("authentification" )){
}
else {
header("Location:index.php?erreur=intru" );  
}
 
donc en principe je pense que c'est par session non? car je n'utilise aucune fois $setcookie ou une de ces variantes
 
:)

n°1301524
the_bigboo
Posté le 08-02-2006 à 18:46:42  profilanswer
 

as tu commencé toutes tes pages par session_start() ????

n°1301534
rut
Posté le 08-02-2006 à 18:58:21  profilanswer
 

affirmatif

n°1301575
the_bigboo
Posté le 08-02-2006 à 19:50:05  profilanswer
 

adapte le script pour qu'il affiche le temps restant avant le timeout, ca te fera deja un bon debug, apres tout je ne vais pas le debugger , je vais te guider et tu arrangeras ca tout seul comme un grand !
 
pour savoir developper , il faut savoir faire des erreurs , et donc débuguer !

n°1301640
rut
Posté le 08-02-2006 à 21:06:27  profilanswer
 

oui , mais ce qui me semble bizarre c'est qu'il n'y a pas de champs a faire sur la base de donnee?

n°1301681
the_bigboo
Posté le 08-02-2006 à 21:49:01  profilanswer
 

non... pourquoi voudrait tu qu'elle intervienne ? Cette fonction est capable de stocker ta date d'arrivée sur le site, et celle actuelle... C'est tout ce dont on a besoin !
 
La redirection ne se fait pas. Donc soir les variables sont mal enregistrées , soit elles ne se metent pas a jour :) , affiche $ExpireTime et ce que vaut mktime ($hour, $minute, $second, $month, $date, $year), et tu compares, tu devrai avoir une idée plus précise du probleme

n°1301707
rut
Posté le 08-02-2006 à 22:37:42  profilanswer
 

quelque chose ainsi : select mktime ... mais puisqu il y a pas de table etc :s , je ne vois pas quoi faire.
 
l'internaute se connecte sur login.php , verif etc et rediriger sur buro.php sur lequel je mets ton script , je me demande si le probleme ne vient pas sur la page login.php , car sur celle si je declare toute les variable de session , genre :
   $_SESSION['nom'] = $row_verif['nom'];  
   $_SESSION['prenom'] = $row_verif['prenom'];  
   $_SESSION['login'] = $row_verif['login'];
peut etre que je devrais mettre un genre de :
$_SESSION['timeout'].... ?

n°1301711
the_bigboo
Posté le 08-02-2006 à 22:44:48  profilanswer
 

connais tu le principe de chacune des fonctions que j'ai utilisé dans ma fonction en haut ??

n°1301715
rut
Posté le 08-02-2006 à 22:48:22  profilanswer
 

Non , enfin je ne comprend pas exactement , je ne vois pas comment afficher le $expiretime

n°1301722
the_bigboo
Posté le 08-02-2006 à 23:00:24  profilanswer
 

echo $expiretime ;
 
Tout bettement , tu le rajoute a l'interieur de la fonction ;) juste apres l'attribution de sa valeur :)

n°1301726
rut
Posté le 08-02-2006 à 23:10:16  profilanswer
 

<?php
function CheckSession ()
{
$hour  = Date ("H" );
$minute = Date ("i" );
$second = Date ("s" );
 $month  = Date ("n" );
 $date  = Date ("j" );
 $year  = Date ("Y" );
 // On vérifie si la session est activée
 if(isset($_SESSION['StartTime']))
 {
 // La session expire dans $TimeOut secondes
 $TimeOut = 600 ;
 $ExpireTime = $_SESSION['StartTime'] + $TimeOut ;
 
 
 // On teste
 if(mktime ($hour, $minute, $second, $month, $date, $year) > $ExpireTime )
 {
 // Session expirée
 session_destroy();
 header("location:index.php" );
 }
 }
 else
 {
 // Le visiteur vient d'arriver sur le site
 $_SESSION['StartTime'] = mktime ($hour, $minute, $second, $month, $date, $year);
 }
 }  
echo " ".$ExpireTime." ";
 ?>
 
donne : Notice: Undefined variable: ExpireTime in c:\weblocal\test\buro.php on line 46
 
ligne 46 egale a echo...

n°1301728
the_bigboo
Posté le 08-02-2006 à 23:21:38  profilanswer
 

dans la fonction !!!!!!!!

Code :
  1. echo $ExpireTime ;


Avant l'accolade !


Message édité par the_bigboo le 08-02-2006 à 23:22:57
n°1301990
rut
Posté le 09-02-2006 à 13:26:42  profilanswer
 

j'ai essayer mais il n'affiche rien , si je fait echo "eee"; ca n'affiche rien aussi , enfin je ne sais pas , j'ai fait echo"eee"; histoire de voir si expirtime n'as pas de valeur ou si l'echo ne va pas

n°1302016
the_bigboo
Posté le 09-02-2006 à 13:41:52  profilanswer
 

regarde ce que je t'ai écris....

Code :
  1. function CheckSession ()
  2.        {
  3.        $hour  = Date ("H" );
  4.        $minute = Date ("i" );
  5.        $second = Date ("s" );
  6.        $month  = Date ("n" );
  7.        $date  = Date ("j" );
  8.        $year  = Date ("Y" );
  9.        // On vérifie si la session est activée
  10.        if(isset($_SESSION['StartTime'])
  11.              {
  12.              // La session expire dans $TimeOut secondes
  13.              $TimeOut = 3600 ;
  14.              $ExpireTime = $_SESSION['StartTime'] + $TimeOut ;
  15.              echo 'Ca vaut :'. $ExpireTime ;
  16.              echo var_dump($ExpireTime);
  17.              // On teste
  18.              if(mktime ($hour, $minute, $second, $month, $date, $year) > $ExpireTime )
  19.                           {
  20.                           // Session expirée
  21.                           session_destroy();
  22.                           header("location:session_timeout.php" );
  23.                           }
  24.              }
  25.        else
  26.              {
  27.              // Le visiteur vient d'arriver sur le site
  28.              $_SESSION['StartTime'] = mktime ($hour, $minute, $second, $month, $date, $year);
  29.              }
  30.       }


tu affiches apres l'attribution de la valeur ! Dis moi ce que ce t'écris...


Message édité par the_bigboo le 09-02-2006 à 13:43:08
n°1302134
omega2
Posté le 09-02-2006 à 15:11:45  profilanswer
 

T'as pensé à mettre un "session_start()" quelque part?

n°1302155
dwogsi
Défaillance cérébrale...
Posté le 09-02-2006 à 15:21:21  profilanswer
 

Un exit après le header ne serait pas plus judicieux??

n°1302192
the_bigboo
Posté le 09-02-2006 à 15:47:11  profilanswer
 

le header met fin a l'exécution de toute facon, ajouter un exit serait superflu ! :/

n°1302244
rut
Posté le 09-02-2006 à 16:40:07  profilanswer
 

@the_bigboo : si je mets ton code avec les echo , cela n'affiche rien :s
 
@omega2 : oui il y a un session_start , j'ai ceci avant le script de thebigboo :
 
 
session_start();  
if (session_is_registered("authentification" )){
}
else {
header("Location:index.php?erreur=intru" );  
}

n°1302255
the_bigboo
Posté le 09-02-2006 à 16:53:58  profilanswer
 

rut a écrit :


session_start();  
if (session_is_registered("authentification" )){
}
else {
header("Location:index.php?erreur=intru" );  
}


Ca c'est pas bien du tout !! :o caca beurk ! :vomi:
Fais plutot :

Code :
  1. if (!isset($_SESSION['authentification']))
  2.       {
  3.       header("Location:index.php?erreur=intru" ); 
  4.       }


Plus court, plus clair , juste l'essentiel ! mettre une condition qui ne fais rien , ca ne sert a rien !
ensuite s'il n'affiche rien c'est qu'une erreur a provoqué un exit , place des echo "gygy" un peu partout dans ton code pour savoir ou ca bloque.


Message édité par the_bigboo le 09-02-2006 à 16:56:50
n°1302280
rut
Posté le 09-02-2006 à 17:00:38  profilanswer
 

si je fait ca , apres avoir entrer le mot de passe et login , je ne suis meme pas ridiriger , mais j'ai droit a index.php?erreur=intru

n°1302289
rut
Posté le 09-02-2006 à 17:02:30  profilanswer
 

j'ai rajouter }  
else { , et la je suis bien rediriger sur la bonne page

n°1302432
the_bigboo
Posté le 09-02-2006 à 19:44:54  profilanswer
 

pourtant il n'y a aucune différence entre ton code et le mien :o
c'est normal , je l'ai pas rajouté c'est sous entendu mais rassure moi , tu as laissé ton session_start() en mettant mon code???


Message édité par the_bigboo le 09-02-2006 à 19:48:31
n°1302444
rut
Posté le 09-02-2006 à 20:10:58  profilanswer
 

j'ai ceci:
 
<?php
 
 
session_start();  
if (session_is_registered("authentification" )){  
}
else {
header("Location:index.php?erreur=intru" ); }
 
 
?>
...
<?php
function CheckSession ()
{
$hour  = Date ("H" );
$minute = Date ("i" );
$second = Date ("s" );
 $month  = Date ("n" );
 $date  = Date ("j" );
 $year  = Date  
... suite de ton code
 
je me rapele que j'avais rajouter un " )"  a la ligne 10 de ton code ,  peut etre qu'il y a une autre erreur aussi ?

n°1302592
the_bigboo
Posté le 10-02-2006 à 00:27:11  profilanswer
 

non , j'avais effectivement oublié une parenthese :) Tu as essayé de voir ou ca bloquait en faisant afficher des echo un peu partout ?

n°1303334
rut
Posté le 11-02-2006 à 01:31:03  profilanswer
 

ui j'ai tester a diverses endroit , ca n'indique que quand l'echo est mis apres l'accolade comme montrer plus haut

n°1303736
rut
Posté le 12-02-2006 à 15:34:55  profilanswer
 

petit up :$

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  time out/champs/php/monnai-heur/blems

 

Sujets relatifs
incrementer des champs NULL existants deja automatiquement ?VBA - Filtrer sur plusieurs champs
Comment gerer au mieux l'afichage de mes champsproblème avec le remplissage de champs
Actualiser les champs d'une BDD Access reliée via ADODC ?[resolu]pb requete sql sur des champs date et time
[SQL] Dupliquer un enregistrement en précisant un des champsvideo streaming avec WMP et Quick time
[RESOLU] sommes sur un meme champs?? 
Plus de sujets relatifs à : time out/champs/php/monnai-heur/blems


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR