Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Faire persister les sessions [ Archives / AU SECOURS !!! ] (Tomcube)

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é 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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.