Fermer une session l'utilisateur lorsque le tronquer la table de séances
- Bogey
- Bogey


- Inscription: Juil 14, 2005
- Messages: 8211
- Loc: USA
- Status: Offline
Quoi de GI essaie de faire dans l'écriture de GI du système se connecter l'utilisateur hors lorsque les informations des utilisateurs de la table de séances sont supprimées...ou déconnecter tout le monde une fois que la table est étant complètement tronquée.
Je comprends ce que je dois faire et pense que je l'ai fait, mais elle ne fonctionne pas...sur chaque page, il vérifie pour l'activité des utilisateurs et de vérifier si l'utilisateur est connecté, et lorsqu'il vérifie si l'utilisateur est connecté il vérifie si les données des utilisateurs sont à la base de données et si non, alors l'utilisateur est connecté dans le fichier PHP, mais il ne le reflète pas dans les tests de temps réel. Voici ce que j'ai :
N'importe quelle aide ?
Je comprends ce que je dois faire et pense que je l'ai fait, mais elle ne fonctionne pas...sur chaque page, il vérifie pour l'activité des utilisateurs et de vérifier si l'utilisateur est connecté, et lorsqu'il vérifie si l'utilisateur est connecté il vérifie si les données des utilisateurs sont à la base de données et si non, alors l'utilisateur est connecté dans le fichier PHP, mais il ne le reflète pas dans les tests de temps réel. Voici ce que j'ai :
PHP Code: [ Select ]
<?php
public function logged()
{
global $db;
// Checking if session is set
if(!isset($_SESSION['u_logged_in']))
{
return false;
}
// Checking if the user is logged in the session table
$sql = $db->build_key_query(array('SELECT' => 'userID',
'FROM' => SESSION_TABLE,
'WHERE' => array('userID' => $this->user_id)));
// Checking if any entries exist
if($db->num_rows($sql) == 0)
{
// Logging the user out
$this->logout();
return false;
}
return $_SESSION['u_logged_in'];
}
public function logout($userID = null, $_redirect = true)
{
global $db;
// Making sure we log out the correct user
$user_id = (is_numeric($userID)) ? $userID : $this->user_id;
// Getting the correct group ID for the user
$group_id = $db->_get_('groupID', USER_TABLE, array('userID' => $user_id));
// Generating the SQL
$sql = $db->build_remove(SESSION_TABLE, array('userID' => $user_id,
'groupID' => $group_id));
// Removing the user session from the session table
$db->resource($sql);
// Removing the session arrays
$_SESSION = array();
// Regenerating the session ID
session_regenerate_id();
// Destroying current session
session_destroy();
// Checking if we are redirecting the user
if($_redirect)
{
// Default redirection page
$redirect = 'index.php';
// Checking if they came from another page
if(!empty($_GET['page']) && !strpos('..', $_GET['page']))
{
$redirect = $_GET['page'];
}
// Sending the user to the main page
header("LOCATION: {$redirect}");
}
}
?>
public function logged()
{
global $db;
// Checking if session is set
if(!isset($_SESSION['u_logged_in']))
{
return false;
}
// Checking if the user is logged in the session table
$sql = $db->build_key_query(array('SELECT' => 'userID',
'FROM' => SESSION_TABLE,
'WHERE' => array('userID' => $this->user_id)));
// Checking if any entries exist
if($db->num_rows($sql) == 0)
{
// Logging the user out
$this->logout();
return false;
}
return $_SESSION['u_logged_in'];
}
public function logout($userID = null, $_redirect = true)
{
global $db;
// Making sure we log out the correct user
$user_id = (is_numeric($userID)) ? $userID : $this->user_id;
// Getting the correct group ID for the user
$group_id = $db->_get_('groupID', USER_TABLE, array('userID' => $user_id));
// Generating the SQL
$sql = $db->build_remove(SESSION_TABLE, array('userID' => $user_id,
'groupID' => $group_id));
// Removing the user session from the session table
$db->resource($sql);
// Removing the session arrays
$_SESSION = array();
// Regenerating the session ID
session_regenerate_id();
// Destroying current session
session_destroy();
// Checking if we are redirecting the user
if($_redirect)
{
// Default redirection page
$redirect = 'index.php';
// Checking if they came from another page
if(!empty($_GET['page']) && !strpos('..', $_GET['page']))
{
$redirect = $_GET['page'];
}
// Sending the user to the main page
header("LOCATION: {$redirect}");
}
}
?>
- <?php
- public function logged()
- {
- global $db;
- // Checking if session is set
- if(!isset($_SESSION['u_logged_in']))
- {
- return false;
- }
- // Checking if the user is logged in the session table
- $sql = $db->build_key_query(array('SELECT' => 'userID',
- 'FROM' => SESSION_TABLE,
- 'WHERE' => array('userID' => $this->user_id)));
- // Checking if any entries exist
- if($db->num_rows($sql) == 0)
- {
- // Logging the user out
- $this->logout();
- return false;
- }
- return $_SESSION['u_logged_in'];
- }
- public function logout($userID = null, $_redirect = true)
- {
- global $db;
- // Making sure we log out the correct user
- $user_id = (is_numeric($userID)) ? $userID : $this->user_id;
- // Getting the correct group ID for the user
- $group_id = $db->_get_('groupID', USER_TABLE, array('userID' => $user_id));
- // Generating the SQL
- $sql = $db->build_remove(SESSION_TABLE, array('userID' => $user_id,
- 'groupID' => $group_id));
- // Removing the user session from the session table
- $db->resource($sql);
- // Removing the session arrays
- $_SESSION = array();
- // Regenerating the session ID
- session_regenerate_id();
- // Destroying current session
- session_destroy();
- // Checking if we are redirecting the user
- if($_redirect)
- {
- // Default redirection page
- $redirect = 'index.php';
- // Checking if they came from another page
- if(!empty($_GET['page']) && !strpos('..', $_GET['page']))
- {
- $redirect = $_GET['page'];
- }
- // Sending the user to the main page
- header("LOCATION: {$redirect}");
- }
- }
- ?>
N'importe quelle aide ?
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
- Anonymous
- Bot


- Inscription: 25 Feb 2008
- Messages: ?
- Loc: Ozzuland
- Status: Online
Juin 22nd, 2011, 12:19 am
- Nightslyr
- Proficient


- Inscription: Sep 21, 2005
- Messages: 274
- Status: Offline
ID de faire quelque chose comme ceci :
...maintenant que je regarde elle rapproche, vous reçoivent des erreurs db dans votre deuxième méthode ? Si userID est par défaut null, alors ce serait $ce-> user_id equal ? Serait-ce une valeur utilisable dans une requête db ? Vous travaillez avec des erreurs PHP activés ?
Enfin, une fois de plus, vous utilisez « global » et cette fois dans un objet. Je ne sais pas pourquoi vous sont tellement concentrée sur l'utilisation de « global ». Il n'y a jamais une bonne raison d'utiliser « global ». Jamais. OOP particulier, vous vous cassez encapsulation. Si votre objet nécessite une référence à un objet db afin de travailler, alors composer les deux. Utilisez l'injection de dépendance et faire droit.
À la longue, vous font pas beaucoup bon à l'aide d'objets des types de données simplement comme abstraites. Sa programmation procédurale avec des objets, pas de POO. Si vous voulez jouer avec des objets, vous devez apprendre que certains de la théorie derrière elle et commun des habitudes de consommation. Obtenez Zandstras livre et obtenir le livre de Gang de Fours pour voir comment faire correctement.
PHP Code: [ Select ]
public function logged()
{
// Note, no 'global'. Why? Because our user object should
// have a reference to the db. 'Global' breaks
// encapsulation, one of the main components of OOP
// Checking if the user is logged in the session table
$sql = $this->db->build_key_query(array('SELECT' => 'userID',
'FROM' => SESSION_TABLE,
'WHERE' => array('userID' => $this->user_id)));
if($this->db->num_rows($sql) == 0 || !isset($_SESSION['u_logged_in']))
{
$this->logout();
return false
}
return $_SESSION['u_logged_in'];
}
{
// Note, no 'global'. Why? Because our user object should
// have a reference to the db. 'Global' breaks
// encapsulation, one of the main components of OOP
// Checking if the user is logged in the session table
$sql = $this->db->build_key_query(array('SELECT' => 'userID',
'FROM' => SESSION_TABLE,
'WHERE' => array('userID' => $this->user_id)));
if($this->db->num_rows($sql) == 0 || !isset($_SESSION['u_logged_in']))
{
$this->logout();
return false
}
return $_SESSION['u_logged_in'];
}
- public function logged()
- {
- // Note, no 'global'. Why? Because our user object should
- // have a reference to the db. 'Global' breaks
- // encapsulation, one of the main components of OOP
- // Checking if the user is logged in the session table
- $sql = $this->db->build_key_query(array('SELECT' => 'userID',
- 'FROM' => SESSION_TABLE,
- 'WHERE' => array('userID' => $this->user_id)));
- if($this->db->num_rows($sql) == 0 || !isset($_SESSION['u_logged_in']))
- {
- $this->logout();
- return false
- }
- return $_SESSION['u_logged_in'];
- }
...maintenant que je regarde elle rapproche, vous reçoivent des erreurs db dans votre deuxième méthode ? Si userID est par défaut null, alors ce serait $ce-> user_id equal ? Serait-ce une valeur utilisable dans une requête db ? Vous travaillez avec des erreurs PHP activés ?
Enfin, une fois de plus, vous utilisez « global » et cette fois dans un objet. Je ne sais pas pourquoi vous sont tellement concentrée sur l'utilisation de « global ». Il n'y a jamais une bonne raison d'utiliser « global ». Jamais. OOP particulier, vous vous cassez encapsulation. Si votre objet nécessite une référence à un objet db afin de travailler, alors composer les deux. Utilisez l'injection de dépendance et faire droit.
À la longue, vous font pas beaucoup bon à l'aide d'objets des types de données simplement comme abstraites. Sa programmation procédurale avec des objets, pas de POO. Si vous voulez jouer avec des objets, vous devez apprendre que certains de la théorie derrière elle et commun des habitudes de consommation. Obtenez Zandstras livre et obtenir le livre de Gang de Fours pour voir comment faire correctement.
- Bogey
- Bogey


- Inscription: Juil 14, 2005
- Messages: 8211
- Loc: USA
- Status: Offline
Le rôle que $userID joue la fonction n'est pas complète. Si son jeu sur null puis il consigne l'utilisateur actuel hors (l'utilisateur qui a lancé cette fonction)...$ si cela-> user_id est que les utilisateurs ID.
Si l'identificateur d'utilisateur $ pour un certain nombre il supprime le $ ID utilisateur info de la table de la session et cet utilisateur (pas l'utilisateur qui a lancé cette fonction) pourrait être connecté.
Ci-dessous est ce que je crois pour être une fonction logout() finis
Et j'ai une question sur la fonction...est ok, ou il est mal vu d'avoir une fonction dans un opérateur ternaire ?
Motifs utiliser globals, c'est que beaucoup de mes classes utilise une fonction à une classe différente.
J'ai un fichier PHP global comprennent toutes les pages et ce fichier PHP global comprend et initie les classes importantes afin que je pourrais utiliser leur dans le système. Sinon chaque classe aurait lancer ces classes et je pense qui examinerait kind of laid.
Si l'identificateur d'utilisateur $ pour un certain nombre il supprime le $ ID utilisateur info de la table de la session et cet utilisateur (pas l'utilisateur qui a lancé cette fonction) pourrait être connecté.
Ci-dessous est ce que je crois pour être une fonction logout() finis
PHP Code: [ Select ]
<?
/*
* public function log_out([ int $userID [, bool $_redirect])
* @integer $userID = The ID of the user we want to log out
* @boolean $_redirect = True if we are redirecting, false if not
*
* Logging the user out
*/
public function logout($userID = null, $_redirect = true)
{
global $db;
// Making sure we log out the correct user
$user_id = (is_numeric($userID)) ? $userID : $this->user_id;
// Getting the correct group ID for the user
$group_id = (is_numeric($userID)) ? $db->_get_('groupID', USER_TABLE, array('userID' => $user_id)) : $this->group_id;
// Generating the SQL
$sql = $db->build_remove(SESSION_TABLE, array('userID' => $user_id,
'groupID' => $group_id));
// Removing the user session from the session table
$db->resource($sql);
if(!is_numeric($userID))
{
// Removing the session arrays
$_SESSION = array();
// Regenerating the session ID
session_regenerate_id();
// Destroying current session
session_destroy();
// Checking if we are redirecting the user
if($_redirect)
{
// Default redirection page
$redirect = 'index.php';
// Checking if they came from another page
if(!empty($_GET['page']) && !strpos('..', $_GET['page']))
{
$redirect = $_GET['page'];
}
// Sending the user to the main page
header("LOCATION: {$redirect}");
}
}
}
?>
/*
* public function log_out([ int $userID [, bool $_redirect])
* @integer $userID = The ID of the user we want to log out
* @boolean $_redirect = True if we are redirecting, false if not
*
* Logging the user out
*/
public function logout($userID = null, $_redirect = true)
{
global $db;
// Making sure we log out the correct user
$user_id = (is_numeric($userID)) ? $userID : $this->user_id;
// Getting the correct group ID for the user
$group_id = (is_numeric($userID)) ? $db->_get_('groupID', USER_TABLE, array('userID' => $user_id)) : $this->group_id;
// Generating the SQL
$sql = $db->build_remove(SESSION_TABLE, array('userID' => $user_id,
'groupID' => $group_id));
// Removing the user session from the session table
$db->resource($sql);
if(!is_numeric($userID))
{
// Removing the session arrays
$_SESSION = array();
// Regenerating the session ID
session_regenerate_id();
// Destroying current session
session_destroy();
// Checking if we are redirecting the user
if($_redirect)
{
// Default redirection page
$redirect = 'index.php';
// Checking if they came from another page
if(!empty($_GET['page']) && !strpos('..', $_GET['page']))
{
$redirect = $_GET['page'];
}
// Sending the user to the main page
header("LOCATION: {$redirect}");
}
}
}
?>
- <?
- /*
- * public function log_out([ int $userID [, bool $_redirect])
- * @integer $userID = The ID of the user we want to log out
- * @boolean $_redirect = True if we are redirecting, false if not
- *
- * Logging the user out
- */
- public function logout($userID = null, $_redirect = true)
- {
- global $db;
- // Making sure we log out the correct user
- $user_id = (is_numeric($userID)) ? $userID : $this->user_id;
- // Getting the correct group ID for the user
- $group_id = (is_numeric($userID)) ? $db->_get_('groupID', USER_TABLE, array('userID' => $user_id)) : $this->group_id;
- // Generating the SQL
- $sql = $db->build_remove(SESSION_TABLE, array('userID' => $user_id,
- 'groupID' => $group_id));
- // Removing the user session from the session table
- $db->resource($sql);
- if(!is_numeric($userID))
- {
- // Removing the session arrays
- $_SESSION = array();
- // Regenerating the session ID
- session_regenerate_id();
- // Destroying current session
- session_destroy();
- // Checking if we are redirecting the user
- if($_redirect)
- {
- // Default redirection page
- $redirect = 'index.php';
- // Checking if they came from another page
- if(!empty($_GET['page']) && !strpos('..', $_GET['page']))
- {
- $redirect = $_GET['page'];
- }
- // Sending the user to the main page
- header("LOCATION: {$redirect}");
- }
- }
- }
- ?>
Et j'ai une question sur la fonction...est ok, ou il est mal vu d'avoir une fonction dans un opérateur ternaire ?
PHP Code: [ Select ]
$group_id = (is_numeric($userID)) ? $db->_get_('groupID', USER_TABLE, array('userID' => $user_id)) : $this->group_id;
Motifs utiliser globals, c'est que beaucoup de mes classes utilise une fonction à une classe différente.
J'ai un fichier PHP global comprennent toutes les pages et ce fichier PHP global comprend et initie les classes importantes afin que je pourrais utiliser leur dans le système. Sinon chaque classe aurait lancer ces classes et je pense qui examinerait kind of laid.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
- Bogey
- Bogey


- Inscription: Juil 14, 2005
- Messages: 8211
- Loc: USA
- Status: Offline
Nightslyr a écrit:
ID de faire quelque chose comme ceci :
...maintenant que je regarde elle rapproche, vous reçoivent des erreurs db dans votre deuxième méthode ? Si userID est par défaut null, alors ce serait $ce-> user_id equal ? Serait-ce une valeur utilisable dans une requête db ? Vous travaillez avec des erreurs PHP activés ?
Enfin, une fois de plus, vous utilisez « global » et cette fois dans un objet. Je ne sais pas pourquoi vous sont tellement concentrée sur l'utilisation de « global ». Il n'y a jamais une bonne raison d'utiliser « global ». Jamais. OOP particulier, vous vous cassez encapsulation. Si votre objet nécessite une référence à un objet db afin de travailler, alors composer les deux. Utilisez l'injection de dépendance et faire droit.
À la longue, vous font pas beaucoup bon à l'aide d'objets des types de données simplement comme abstraites. Sa programmation procédurale avec des objets, pas de POO. Si vous voulez jouer avec des objets, vous devez apprendre que certains de la théorie derrière elle et commun des habitudes de consommation. Obtenez Zandstras livre et obtenir le livre de Gang de Fours pour voir comment faire correctement.
PHP Code: [ Select ]
public function logged()
{
// Note, no 'global'. Why? Because our user object should
// have a reference to the db. 'Global' breaks
// encapsulation, one of the main components of OOP
// Checking if the user is logged in the session table
$sql = $this->db->build_key_query(array('SELECT' => 'userID',
'FROM' => SESSION_TABLE,
'WHERE' => array('userID' => $this->user_id)));
if($this->db->num_rows($sql) == 0 || !isset($_SESSION['u_logged_in']))
{
$this->logout();
return false
}
return $_SESSION['u_logged_in'];
}
{
// Note, no 'global'. Why? Because our user object should
// have a reference to the db. 'Global' breaks
// encapsulation, one of the main components of OOP
// Checking if the user is logged in the session table
$sql = $this->db->build_key_query(array('SELECT' => 'userID',
'FROM' => SESSION_TABLE,
'WHERE' => array('userID' => $this->user_id)));
if($this->db->num_rows($sql) == 0 || !isset($_SESSION['u_logged_in']))
{
$this->logout();
return false
}
return $_SESSION['u_logged_in'];
}
- public function logged()
- {
- // Note, no 'global'. Why? Because our user object should
- // have a reference to the db. 'Global' breaks
- // encapsulation, one of the main components of OOP
- // Checking if the user is logged in the session table
- $sql = $this->db->build_key_query(array('SELECT' => 'userID',
- 'FROM' => SESSION_TABLE,
- 'WHERE' => array('userID' => $this->user_id)));
- if($this->db->num_rows($sql) == 0 || !isset($_SESSION['u_logged_in']))
- {
- $this->logout();
- return false
- }
- return $_SESSION['u_logged_in'];
- }
...maintenant que je regarde elle rapproche, vous reçoivent des erreurs db dans votre deuxième méthode ? Si userID est par défaut null, alors ce serait $ce-> user_id equal ? Serait-ce une valeur utilisable dans une requête db ? Vous travaillez avec des erreurs PHP activés ?
Enfin, une fois de plus, vous utilisez « global » et cette fois dans un objet. Je ne sais pas pourquoi vous sont tellement concentrée sur l'utilisation de « global ». Il n'y a jamais une bonne raison d'utiliser « global ». Jamais. OOP particulier, vous vous cassez encapsulation. Si votre objet nécessite une référence à un objet db afin de travailler, alors composer les deux. Utilisez l'injection de dépendance et faire droit.
À la longue, vous font pas beaucoup bon à l'aide d'objets des types de données simplement comme abstraites. Sa programmation procédurale avec des objets, pas de POO. Si vous voulez jouer avec des objets, vous devez apprendre que certains de la théorie derrière elle et commun des habitudes de consommation. Obtenez Zandstras livre et obtenir le livre de Gang de Fours pour voir comment faire correctement.
Aussi, je ne peux pas utiliser la fonction...lors de la session n'est pas définie, l'utilisateur n'est simplement pas connecté, puis il n'y a aucune raison de lui fermer une session. Mais si la vérification de la fonction obtient la vérification de la base de données puis la session doit être définie (signifie l'utilisateur n'est connecté), et s'il n'y a rien dans la base de données (moyens, l'utilisateur est effectivement connecté à...la base de données prend position dominante) et puis j'ai besoin de déconnecter l'utilisateur.
De cette façon, Id être rediriger l'utilisateur de vous déconnecter lorsque l'utilisateur n'est pas connecté et lorsque l'utilisateur obtient à la fonction de déconnexion, le système vérifie son statut de connexion et découvre que la session n'est pas définie (qui signifie, selon le code, nous devons lui déconnexion) nous rediriger l'utilisateur vers la fonction de déconnexion et ses une boucle sans fin...
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
- Bogey
- Bogey


- Inscription: Juil 14, 2005
- Messages: 8211
- Loc: USA
- Status: Offline
Page 1 sur 1
Pour répondre à ce sujet, vous devez vous connecter ou vous enregistrer. Il est gratuit.
Afficher de l'information
- Total des messages de ce sujet: 5 messages
- Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 208 invités
- Vous ne pouvez pas poster de nouveaux sujets
- Vous ne pouvez pas répondre aux sujets
- Vous ne pouvez pas éditer vos messages
- Vous ne pouvez pas supprimer vos messages
- Vous ne pouvez pas joindre des fichiers
