begin process at 2012 02 15 18:58:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Faire persister les sessions


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Faire persister les sessions

lundi 5 avril 2004 à 15:43:08 | Faire persister les sessions

Tomcube

Salut à tous,

Je suis confronté à un problème concernant les sessions.

Voici comment se présente mon site :

Mon site est composé d'un ensemble de site qui ont chacun leur nom de domaine. (on va prendre le site-principal.com qui regroupe site-1.com et site-2.com). Mais ces sites sont stockés sur le même serveur FTP :
- site-principal.com pointe sur www/
- site-1.com pointe sur www/1/
- site-2.com sur www/2
Et ils prennent leurs données sur la même base de données.

J'ai fait un système de membre :

Le problème c'est qu'une session démarrée sur site-principal.com n'existe plus sur site-1.com.

Ma question est simple :

Comment faire pour garder la session d'un site à l'autre ?

-------------------------------
Life is a game, Enjoy ! ^^
lundi 5 avril 2004 à 19:47:56 | Re : Faire persister les sessions

yafuka

je ne suis pas sure mais as tu essayer d'utiliser l'id de session d'un site à un autre.. !?

++

Le meilleur langage de programmation est un étudiant diplomé..
lundi 5 avril 2004 à 20:46:25 | Re : Faire persister les sessions

Tomcube

J'y ai pensé mais le seul moyen selon moi serait de le faire passer par l'URL, mais il faudrait que je change tous les liens ...
à moins que j'utilise la BDD mais par quel moyen ???

-------------------------------
Life is a game, Enjoy ! ^^
lundi 5 avril 2004 à 20:58:15 | Re : Faire persister les sessions

yafuka

//un code tres interressant ci dessous qui provient d'un de mes livres. il s'agit d'une gestion de session avec utilisation de la base de donee.




Listing 21.5 : Sessions PHP avec enregistrement dans une base de données MySQL
<?php
class mySession
{

private $dbLink;

public function open()
{
if(!($this->dbLink =
mysql_connect("localhost", "httpd", "")))
{
return(FALSE);
}

//Sélection de la base de données puis test de l'opération
if(!($dbResult =
mysql_query("USE test", $this->dbLink)))
{
return(FALSE);
}

return(TRUE);
}

public function close()
{
mysql_close($this->dbLink);
return(TRUE);
}

public function read($id)
{
$Query = "SELECT SessionData " .
"FROM session " .
"WHERE ID = '" . addslashes($id) . "'";
if(!($dbResult = mysql_query($Query, $this->dbLink)))
{
return(FALSE);
}
$dbRow = mysql_fetch_assoc($dbResult);

//Signale que l'enregistrement de la session a été accédé
$Query = "UPDATE session " .
"SET " .
"LastAction=NOW() " .
"WHERE ID='".addslashes($id)."' ";
if(!($dbResult = mysql_query($Query, $this->dbLink)))
{
return(FALSE);
}

return($dbRow['SessionData']);
}

public function write($id, $data)
{
//Crée la session si elle n'existe pas
$Query = "INSERT IGNORE " .
"INTO session (ID) " .
"VALUES ('".addslashes($id)."')";
if(!($dbResult = mysql_query($Query, $this->dbLink)))
{
return(FALSE);
}

//Actualise la session
$Query = "UPDATE session " .
"SET " .
"SessionData='".addslashes($data)."', " .
"LastAction=NOW() " .
"WHERE ID='".addslashes($id)."' ";
if(!($dbResult = mysql_query($Query, $this->dbLink)))
{
return(FALSE);
}

return(TRUE);
}

public function destroy($id)
{
$Query = "DELETE session " .
"WHERE ID='".addslashes($id)."' ";
if(!($dbResult = mysql_query($Query, $this->dbLink)))
{
return(FALSE);
}

return(TRUE);
}

public function garbage($lifetime)
{
$Query = "DELETE session " .
"WHERE (LastAction + $lifetime) < NOW() ";
if(!($dbResult = mysql_query($Query, $this->dbLink)))
{
return(FALSE);
}

return(TRUE);
}

}

$s = new mySession();

session_set_save_handler(
array($s, 'open'),
array($s, 'close'),
array($s, 'read'),
array($s, 'write'),
array($s, 'destroy'),
array($s, 'garbage')
);

//Démarrage de la session
session_start();

//Incrémente le compteur à chaque chargement d'une page
if(isset($_SESSION['Count']))
{
$_SESSION['Count']++;
}
else
{
//start with count of 1
$_SESSION['Count'] = 1;
}

//Connexion à la base de données
if(!($dbLink = mysql_connect("localhost", "httpd", "")))
{
print("Couldn't connect to database!<br>\n");
}

//Sélection de la base de données puis test de l'opération
if(!($dbResult = mysql_query("USE test", $dbLink)))
{
print("Couldn't use test database!<br>\n");
}

//Si l'utilisateur modifie l'ID invoice, mettre à jour
//la colonne et celle de la session
if(isset($_REQUEST['invoice']))
{
//Assure que les données invoice sont des entiers
$_REQUEST['invoice'] = (integer)$_REQUEST['invoice'];

if(!($dbLink = mysql_connect("localhost", "httpd", "")))
{
print("Couldn't connect to database!<br>\n");
}

//sélection de la base de données puis test de l'opération
if(!($dbResult = mysql_query("USE test", $dbLink)))
{
print("Couldn't use test database!<br>\n");
}

$Query = "UPDATE session " .
"SET Invoice={$_REQUEST['invoice']} " .
"WHERE ID = '" . session_id() . "' ";
if(!($dbResult = mysql_query($Query, $dbLink)))
{
print("Couldn't update invoice!<br>\n");
}

$Invoice = $_REQUEST['invoice'];
}
else
{
//récupération de la valeur invoice
$Query = "SELECT Invoice FROM session " .
"WHERE ID = '" . session_id() . "' ";
if(!($dbResult = mysql_query($Query, $dbLink)))
{
print("Couldn't get invoice!<br>\n");
}
$dbRow = mysql_fetch_assoc($dbResult);
$Invoice = $dbRow['Invoice'];
}
?>
<html>
<head>
<title>Listing 21-5</title>
</head>
<body>
<?php
print("You have viewed this page {$_SESSION['Count']}
times!<br>\n");
print("Current Invoice: $Invoice<br>\n");

//Affiche le formulaire de récupération du nom
print("<form " .
"action=\"{$_SERVER['PHP_SELF']}\" " .
"method=\"post\">" .
"<input type=\"text\" name=\"invoice\" " .
"value=\"\">\n" .
"<input type=\"submit\" value=\"set order number\"><br>\n" .
"</form>");

//Affichage d'un lien permettant de recharger cette page
print("<a href=\"{$_SERVER['PHP_SELF']}\">reload</a><br>\n");
?>
</body>
</html>




Le meilleur langage de programmation est un étudiant diplomé..
lundi 5 avril 2004 à 21:24:08 | Re : Faire persister les sessions

Tomcube

Mais à première vue ça ne résout pas mon problème ...

-------------------------------
Life is a game, Enjoy ! ^^
jeudi 9 février 2006 à 14:08:04 | Re : Faire persister les sessions

aureludo

Bonjour,

As tu trouvé une solution a ton problème car je suis exactement confronté au même problème moi cf le post http://www.phpcs.com/forum.v2.aspx?ID=658870

Merci d'avance pour ta réponse ?

@+
Auréludo


Cette discussion est classée dans : site, www, principal, sessions, persister


Répondre à ce message

Sujets en rapport avec ce message

Session peut être?? [ par asterixobelix ] François C.J'ai un problème :Code de membre.phpif($data['password'] != $pass) //Si il est différent faire...{ print("Mauvais mot de passe ou nom d'uti Opengl [ par nicolas66 ] Sur le site www.manucorp.com j'ai vu qu'il serait possible de rajouter l'extension OpenGl. G téléchargé le pack mé le pb c ke g installé ca sans trop Cherche personne pour faire site ésotérique [ par zzzzzz ] Salut J'aimerai savoir si quelqun serrai partant pour faire avec moi (et avoir les meme droit que moi cad admin) un site sur l'ésotérisme. Quelqun qui fin de fichier [ par morgandetoi06 ] hellole moteur de recherche du site par en sucette donc je pose ma question sur le forum meme si la solution doit etre deja expliquée dans le site...c Gestion sessions [ par elanspeech ] Je souhaiterais pouvoir gerer plusieurs utilisateurs sur mon site avec un systeme de session avec les contraintes : - Un "login" ne peut se logger qu' Script PHP URGENT !!!! [ par shaoling ] Salut, je suis a la recherche d'un script php permettant de lister un répertoire, mais pas n'importe quel script :un site : http://www.site.com/index. COMMENT RECUPERER L'URL SAISI SUR UN SYNONYME ? [ par djpardo ] Je souhaite connaitre le nom de l'URL saisi lorsque j'arrive sur la première page d'un site ayant 3 synonymes. (Le but est de tester l'origine et de r petit pb [ par naniekrea ] bonjour, j'ai un p'tit pb sur un site administré via base de donnéesur www.cdv88.com,j'ai un message d'erreur sur les diaporama administrés : Warning Nouveau site PHP : www.phpsources.net [ par LaurentKOogar ] Bonjour,Nouveau site PHP : www.phpsources.net dont l'objectif est d'être un outil pratique pour les webmasters avec de nombreux liens, scripts, téléch Empecher l'acces DIRECT à un fichier... [ par lavren ] Bonjour,je ne sais pas trop sur qu'elle site m'adressait car je n'ai aucune idée de la facon dont ce systeme fonctionne. En effet j'ai découvert un si


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales