time out/champs/php/monnai-heur/blems - PHP - Programmation
Marsh Posté le 06-02-2006 à 12:37:33
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 :
|
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
Marsh Posté le 06-02-2006 à 17:48:00
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
Marsh Posté le 06-02-2006 à 21:54:59
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
Marsh Posté le 07-02-2006 à 01:01:13
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
Marsh Posté le 07-02-2006 à 04:55:52
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
Marsh Posté le 07-02-2006 à 08:46:28
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
Marsh Posté le 07-02-2006 à 17:40:48
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
Marsh Posté le 07-02-2006 à 18:30:06
c'est bête : nous non plus ! Pas de structure de table et on ne lis pas dans le marc de café ici
Marsh Posté le 07-02-2006 à 18:43:38
je dois donc fournir plus d'info? je n'ai aucune table de creer pour ce qui est des "credits"
Marsh Posté le 07-02-2006 à 22:59:53
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'
Marsh Posté le 07-02-2006 à 23:52:05
comment marche ton systeme d'authentification ? Par session ?? Par cookie ??
Marsh Posté le 08-02-2006 à 15:11:15
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
Marsh Posté le 08-02-2006 à 19:50:05
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 !
Marsh Posté le 08-02-2006 à 21:06:27
oui , mais ce qui me semble bizarre c'est qu'il n'y a pas de champs a faire sur la base de donnee?
Marsh Posté le 08-02-2006 à 21:49:01
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
Marsh Posté le 08-02-2006 à 22:37:42
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'].... ?
Marsh Posté le 08-02-2006 à 22:44:48
connais tu le principe de chacune des fonctions que j'ai utilisé dans ma fonction en haut ??
Marsh Posté le 08-02-2006 à 22:48:22
Non , enfin je ne comprend pas exactement , je ne vois pas comment afficher le $expiretime
Marsh Posté le 08-02-2006 à 23:00:24
echo $expiretime ;
Tout bettement , tu le rajoute a l'interieur de la fonction juste apres l'attribution de sa valeur
Marsh Posté le 08-02-2006 à 23:10:16
<?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...
Marsh Posté le 08-02-2006 à 23:21:38
dans la fonction !!!!!!!!
Code :
|
Avant l'accolade !
Marsh Posté le 09-02-2006 à 13:26:42
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
Marsh Posté le 09-02-2006 à 13:41:52
regarde ce que je t'ai écris....
Code :
|
tu affiches apres l'attribution de la valeur ! Dis moi ce que ce t'écris...
Marsh Posté le 09-02-2006 à 15:47:11
le header met fin a l'exécution de toute facon, ajouter un exit serait superflu !
Marsh Posté le 09-02-2006 à 16:40:07
@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" );
}
Marsh Posté le 09-02-2006 à 16:53:58
rut a écrit : |
Ca c'est pas bien du tout !! caca beurk !
Fais plutot :
Code :
|
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.
Marsh Posté le 09-02-2006 à 17:00:38
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
Marsh Posté le 09-02-2006 à 17:02:30
j'ai rajouter }
else { , et la je suis bien rediriger sur la bonne page
Marsh Posté le 09-02-2006 à 19:44:54
pourtant il n'y a aucune différence entre ton code et le mien
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???
Marsh Posté le 09-02-2006 à 20:10:58
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 ?
Marsh Posté le 10-02-2006 à 00:27:11
non , j'avais effectivement oublié une parenthese Tu as essayé de voir ou ca bloquait en faisant afficher des echo un peu partout ?
Marsh Posté le 11-02-2006 à 01:31:03
ui j'ai tester a diverses endroit , ca n'indique que quand l'echo est mis apres l'accolade comme montrer plus haut
Marsh Posté le 04-02-2006 à 19:38:57
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+