[ASP] [HELP] récupérer le session.id dans le global.asa ???

récupérer le session.id dans le global.asa ??? [ASP] [HELP] - Programmation

Marsh Posté le 11-05-2001 à 11:29:03    

la question peut paraitre débile, mais je n'ai rien trouvé la dessus.
 
je cherhce à récupérer le session.id générer à l'ouverture de la session (et valable toute la session) dans le global.asa, c'est quoi la syntaxe, j'ai essayé session.id mais ça ne marche pas.

 

[edit]--Message édité par duch--[/edit]


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-05-2001 à 11:29:03   

Reply

Marsh Posté le 11-05-2001 à 14:27:05    

allez les copains :D


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-05-2001 à 16:02:03    

youhou, y a quelqu'un ??


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-05-2001 à 16:26:14    

Non mais franchement, me dites pas qu'vous savez pas :eek2:


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-05-2001 à 16:35:03    

valeur = Session.SessionID
 
non ?

Reply

Marsh Posté le 11-05-2001 à 16:37:02    

le dieu de l'ASP m'aurait-il entendu, merci pour cette réponse guru, j'm'en vais essayer de ce pas.
 
PS : t'es sûr que c'est ou tu réponds pour me faire plaisir :D


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-05-2001 à 16:39:34    

bon ben ça marche, c'était pas compliqué pourtant, par contre il n'y a que 9 chiffres, c'est pas beaucoup pour individualiser les visiteurs.


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-05-2001 à 17:21:23    

duch a écrit a écrit :

bon ben ça marche, c'était pas compliqué pourtant, par contre il n'y a que 9 chiffres, c'est pas beaucoup pour individualiser les visiteurs.




c'est un nombre unique (redondance impossiblke à un instant 1) et créé seulement pendant la session du gars... donc je doute que tu puisses avoir autant de monde sur un site en même temps ;)
 
sinon, y'a les fonctions de site server, mais bon faut site server. là par contre, le numéro est unique (de toute la durée de vie du serveur et le numéro est comme ceux dans la bdr :))

Reply

Marsh Posté le 11-05-2001 à 17:23:45    

oui mais 2 types qui se connectent a 2 semaines d'intervalle peuvent avoir le même ID, c'est ça le hic, comment je sais lequel c'est?
remarque je pourrais comparer la date... si le dateDiff entre la date du jour et la date dans la base est <= 1 il y a des chances que ce soit le même gars.

 

[edit]--Message édité par duch--[/edit]


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-05-2001 à 17:27:45    

bah... tu met un cookie sur son PC...

Reply

Marsh Posté le 11-05-2001 à 17:27:45   

Reply

Marsh Posté le 11-05-2001 à 17:27:52    

Comme l'a indiqué MagicBuzz l'unicité du SessionID est garantie à un instant donné. Si tu veux disposer d'une ID qui soit valide dans le temps il faut soit comme l'indique MagicBuzz utiliser Site Server soit gérer toi même l'attribution d'une telle ID. Les ID utilisées par Site Server sont des GUID et donc garanties uniques.
 
Si tu veux du code pour générer une GUID fait moi signe.

Reply

Marsh Posté le 11-05-2001 à 17:28:15    

et tu veux en faire koi du sessionid après ?

Reply

Marsh Posté le 11-05-2001 à 17:30:06    

m'en servir pour ajouter des infos sur le gars dans la base, au fur et à mesure qu'il se promène, mais ça me ferais chier de ne pas mettre à jour les infos du bon gars.


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-05-2001 à 17:44:39    

Guru > je veux bien du code pour générer une GUID
 
moi j'avais bricoler un truc comme ça :  
 
Randomize
session ("myid" )=Day(Now)&Month(Now)&Year(Now)&Hour(Now)&Minute(Now)&Second(Now)&Int(1000*Rnd)
 
ça peut paraitre débile mais c'est grantie unique aussi.


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-05-2001 à 17:48:23    

Ok voici un morceau de code VB a partir duquel tu pourras facilement faire un objet COM.
 

Code :
  1. Public Type GUID
  2.     Data1 As Long
  3.     Data2 As Integer
  4.     Data3 As Integer
  5.     Data4(7) As Byte
  6. End Type
  7. Private Declare Function CoCreateGuid Lib "OLE32.DLL" (pGuid As GUID) As Long
  8. Private Const S_OK = 0
  9. Public Function GetGUID() As String
  10.     Dim lResult As Long
  11.     Dim lguid As GUID
  12.     Dim MyguidString As String
  13.     Dim MyGuidString1 As String
  14.     Dim MyGuidString2 As String
  15.     Dim MyGuidString3 As String
  16.     Dim DataLen As Integer
  17.     Dim StringLen As Integer
  18.     Dim i As Integer
  19.     On Error GoTo error_olemsg
  20.     lResult = CoCreateGuid(lguid)
  21.     If lResult = S_OK Then
  22.        MyGuidString1 = Hex$(lguid.Data1)
  23.        StringLen = Len(MyGuidString1)
  24.        DataLen = Len(lguid.Data1)
  25.        MyGuidString1 = LeadingZeros(2 * DataLen, StringLen) & MyGuidString1 'First 4 bytes (8 hex digits)
  26.        MyGuidString2 = Hex$(lguid.Data2)
  27.        StringLen = Len(MyGuidString2)
  28.        DataLen = Len(lguid.Data2)
  29.        MyGuidString2 = LeadingZeros(2 * DataLen, StringLen) & Trim$(MyGuidString2) 'Next 2 bytes (4 hex digits)
  30.        MyGuidString3 = Hex$(lguid.Data3)
  31.        StringLen = Len(MyGuidString3)
  32.        DataLen = Len(lguid.Data3)
  33.        MyGuidString3 = LeadingZeros(2 * DataLen, StringLen) & Trim$(MyGuidString3) 'Next 2 bytes (4 hex digits)
  34.        GetGUID = _
  35.           MyGuidString1 & MyGuidString2 & MyGuidString3
  36.        For i% = 0 To 7
  37.           MyguidString = MyguidString & _
  38.                Format$(Hex$(lguid.Data4(i%)), "00" )
  39.        Next i%
  40.        GetGUID = GetGUID & MyguidString
  41.     Else
  42.        GetGUID = "00000000"
  43.     End If
  44.     Exit Function
  45. error_olemsg:
  46.     MsgBox "Error " & Str(Err) & ": " & Error$(Err)
  47.     GetGUID = "00000000"
  48.     Exit Function
  49. End Function
  50. Private Function LeadingZeros(ExpectedLen As Integer, ActualLen As Integer) As String
  51.    LeadingZeros = String$(ExpectedLen - ActualLen, "0" )
  52. End Function

Reply

Marsh Posté le 11-05-2001 à 17:55:20    

c'est très joli Guru, j'vais l'imprimer et l'afficher au dessus de mon ordi :D
 
non sérieux, j'te remercie mais j'crois que je vais retourner à la bonne vieille méthode, c'est moins prise de tête, et ça marche à tous les coups :D


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-05-2001 à 17:59:53    

Ben le GUID aussi, je l'utilise souvent, et ca a l'avantage de te garantir toujours l'unicité des ID même dans le cas ou tu aurais une ferme de serveurs web qui exploite une unique base de données.

Reply

Marsh Posté le 11-05-2001 à 18:11:59    

OK merci les gars (encore une fois)


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-05-2001 à 18:55:30    

duch > ton système, je t'ai déjà dis qu'il ne garanti pas l'unticité.
 
non pas que deux personnes à la même seconde peuvent se connecter et avoir le même nombre aléatoire, loin de là (quoique... ;)) mais simplement parceque tu ne conserves pas les 0 non significatifs dans ta date :
 
imaginons un user qui se connecte le 1° janv 2001, à 13:42:24 ;)
 
2001 - 01 - 01 - 13 - 48 - 24 + nb aléatoire => 200111134224 + nb aléatoire
 
Maintenant, un autre gars, le 13 nov. 2001 à 04:22:04
2001 - 11 - 13 - 04 - 22 - 04 + nb aléatoire => 200111134224 + nb aléatoire
 
=> On vois que le cas de ton UID peut très bien se répéter et ce, près d'un an plus tard !!!
 
Et évidement, ce n'est pas le cas unique... Donc garde en mémoire que tu as une chance sur "pas si énromément que ça en fin de compte" à chaque cnx qu'il se produise une erreur fatale... :( au bout de quelques semaines, ça tombe en dessous d'un chance sur 1000 à certaines dates et certaines heures...
 
C'est pas cool. Surtout que 1 000 000 cnx à un site ça paraît énorme, mais ça peut très bien arriver... (et surtout y'a le facteur "chance" qui fait que ça peut planter au bout de 10 minutes :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed