Besoin d'aide Objet Session

Signaler
Messages postés
12
Date d'inscription
samedi 16 août 2003
Statut
Membre
Dernière intervention
16 décembre 2003
-
Messages postés
1
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 octobre 2003
-
Je dois faire des statistiques pour un site et je sais pas comment utiliser une varible de Session dans le global.asa ou comment faire autrement??

En fait je dois j'aimerais pouvoir mettre une ID sur chaque visiteur??

Merci de votre aide

13 réponses

Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
6
Messages postés
41
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
16 octobre 2005

Tu peux créer une variable Session hors du Global.Asa,
au moment ou tu en as besoin :
Session("variable") = ID_du_visiteur
:)
Messages postés
12
Date d'inscription
samedi 16 août 2003
Statut
Membre
Dernière intervention
16 décembre 2003

En fait j'ai mis sur chaque page de mon site un include qui me permet de stocker l'IP date....etc (pleins de renseignements) dans une base access.

Sauf que maintenant j'aimerais pouvoir compter le nombre de visite plus precisement ,car chaque personne qui clique sur une de mes pages ça enregistre son IP, ensuite je dois faire des graphes sous excel et faudrait faire une variable de session pour compter le nombre de visite precis. Donc je voudrais insérer dans ma base access une colonne ID et jsais pas comment faire sans le global.asa??

QQ'un aurait un cours exemple??

merci pour l'aide
Messages postés
41
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
16 octobre 2005

Ta variable de Session, tu l'initialises dans ton global.asa, si tu veux, mais c'est tout.
Au fait, si la meme personne clique sur toutes tes pages, est-ce que cela compte ??
Si c'est le cas, tu veux donc savoir combien de fois tes pages de ton site, ont-elles
ete visitees et par qui ??
Si c'est le cas, entre chaque lien et sa page de destination, il te faut creer une page
"fantome" qui va contenir du code ASP avec un "Response.Redirect("vers_ta_page")" a la fin
de ton script.
Dans cette page, tu vas pouvoir :
=> recuperer les infos dont tu as besoin,
puis au choix :
=> incrementer un fichier texte (c'est surement le plus rapide)
=> ou incrementer directement une base Access (ou autre)
"INSERT INTO ma_base(champ1,champ2) VALUE(ip,date)"

Ta variable de Session c'est bien, mais a quel moment vas-tu la vider ??
Par contre, elle peut contenir les parametres de ta connection.
Est-ce cela repond un peu a ta question ??
Veux-tu un exemple des deux ??

:)
Messages postés
12
Date d'inscription
samedi 16 août 2003
Statut
Membre
Dernière intervention
16 décembre 2003

Merci de ta réponse,

Je me demandais si au lieu de faire des includes sur chaque page je pouvais tout mettre dans le fichier global.asa ( insertion de Ip Referer date...etc) + la variable de session.

Mais je me demande si je met uniquement dans le fichier global.asa ça fonctionne pour toutes les pages??

Sinon je devrais pas vider automatiquement la base de donnee.

Si t'as un exemple qui pourrait fonctionner avec le global.asa en y inserant la varaible de session avec ip, referer, date ..etc ça serait cool d'avoir un exemple.

Pour les visites si une personne clique sur plusieurs lien ça fait une visite c'est pour cela que j'ai besoin de la variable session.

Si tu peux me montrer un exemple avec le fichier global.asa ça m'aiderait enormement merci d'avance.
Messages postés
41
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
16 octobre 2005

Désolé, je n'ai pas d'exemple avec le fichier "global.asa".
Dans mon site, le "global.asa" est inactif.
Toutes mes variables de Session sont crées au moment
ou j'en ai besoin.
Meme ma connection a ma base est initialisée en dehors du
"global".
Mon compteur est généré par un "include" et stocké dans un
fichier texte et idem pour mes statistiques.
:)
Messages postés
12
Date d'inscription
samedi 16 août 2003
Statut
Membre
Dernière intervention
16 décembre 2003

Alors si tu as quand meme un exemple de variable de session sans le global .asa ça m'intéresse de voir comment tu gères les statistiques avec tes variables.

Si tu peux me montrer ton exemple ça serait sympa merci bcp pour ton aide.
Messages postés
41
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
16 octobre 2005

Le script ci-apres est un compteur "texte" qui me permet de savoir combien de
gens font des requetes sur la base de données. C'est une statistique qui est faite
au moment de la validation du formulaire de recherche.

Dim fso
Set fso = Server.CreateObject ("Scripting.FileSystemObject")
filePath = Server.MapPath ("requete.txt")
Application("requeteFilePath") = filePath
Set fich = fso.OpenTextFile(filePath, 1)
valeur = fich.ReadLine()
fich.Close
Set fich = fso.OpenTextFile(filePath, 2)
modif = fich.Write(valeur + 1)
fich.Close

Le script ci-apres sont des statistiques sur la provenance de l'intranaute. Elles sont
prélevées sur la premiere page. Enore une fois c'est du texte, mais je pourrais très bien
alimenter une base de données

Dim navigateur
Set navigateur = Request.ServerVariables ("HTTP_USER_AGENT")
Dim ip_visiteur
Set ip_visiteur = Request.ServerVariables("REMOTE_HOST")
Dim fso
Set fso = Server.CreateObject ("Scripting.FileSystemObject")
Set fic = fso.OpenTextFile("c:\Inetpub\wwwroot\Mon_site\visiteurs.txt", 8)
Dim date_heure
date_heure = Now()
fic.WriteLine(ip_visiteur) & " " & " " & FormatDateTime(date_heure, 0) & " " & " " & (navigateur)
fic.Close
Set fso = Nothing

Ma seule variable de Session est celle qui contient le résultat de la requete (Recordset).
Elle me permet de retrouver mon recordset de page en page.
J'ai aussi un "vrai compteur" qui lui est situé en premiere page.

:)
Messages postés
12
Date d'inscription
samedi 16 août 2003
Statut
Membre
Dernière intervention
16 décembre 2003

Merci pour ces reponses mais j'aurais encore 2 questions.

1) Je voulais savoir avec le global.asa il prend en compte juste dans la base de donnee la premiere page que visite la personne qui vient sur mon site. Il est pas possible de suivre le visiteur pour savoir ou il a navigué dans mon site ça prend juste par quel page il entre??

2) pour les sessions ID mon visiteur aura toujours un autre numéro de session meme si il a le meme IP?? Ou bien si il arrete pas son navigateur et il change de page et il revient sur mon site il aura le meme ID??

Merci pour ton aide
Messages postés
41
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
16 octobre 2005

1 ) Le global.asa est lu lorsqu'un internaute arrive sur la premiere page.
Quelque soit son contenu, le code s'execute pour tout nouvel arrivant.
Si tu veux pister un internaute, il faut que tu lui donnes une identité,
par exemple "visiteur & index_compteur".
A partir de ce moment là, à chaque page visitée, il faut alimenter
ta BDD ou ton fichier texte avec l'adresse de ta page et l' identité
du visiteur.
( Celà n'est valable que si le surfer passe par la premiere page )

2) Tant que le visiteur ne quitte pas ton site, il garde la meme identite
durant la visite.
Si il s'en va et qu'il revient, c'est un nouveau visiteur.
Si tu veux le "marquer définitivement", il faut un cookie.

:)
Messages postés
12
Date d'inscription
samedi 16 août 2003
Statut
Membre
Dernière intervention
16 décembre 2003

Merci j'ai 2 questions encore si tu peux me repondre ça m'aiderait beaucoup

1) Alors j'ai finalement pas utilisé le fichier global.asa mais j'ai fait des include d'un fichier qui recupere les donnees mais j'aimerais récupérer le nom du jour (lundi, mardi....) et il existe une fonction WeekDayName(WeekDAy(Now)). Elle fonctionne quand je veux afficher le jour dans une page en ASP mais quand je veux insérer dans ma base de donnee ça marche pas??

Exemple :<%jour=WeekDayName(WeekDAy(Now)) %>
Ensuite connexion a ma base et Rs.addnew

Rs("jour")=jour

rs.update

et ça me plante que je mets ça tu saurais pourquoi??

2)comme je te l'ai demandé plus haut je voulais savoir ou allait mon visiteur alors quand j'ajoute des éléments j'ai mis la condition suivante:

<%
Set oSRS = Server.CreateObject("ADODB.RecordSet")

strSConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb")
strSQL = "SELECT * FROM bd"
oSRS.CursorType = adOpenKeyset
oSRS.LockType = adLockOptimistic
oSRS.Open strSQL, strSConn

If Instr(Request.ServerVariables("HTTP_REFERER")
, "site.com") =0 then
oSRS.AddNew
oSRS("referer") = referer

oSRS.Update

else

oSRS.AddNew

oSRS("URL") = vURL

oSRS.Update
oSRS.Close
Set oSRS = Nothing

End if
%>

Dans le If Instr(Request.ServerVariables("HTTP_REFERER")
, "site.com") =0 then

je dis que lorsque je trouve le nom de mon site faut ajouter ça sinon faut ajouter autre chose. J'ai testé et ça marche mais je comprends pas trop la condition comment elle fonctionne car moi j'aurais dit l'inverse si je trouve l'adresse de mon site c'est vURL qui devrait s'insérer dans ma base de donnée.
Alors si tu peux juste m'expliquer comment marche cette instruction ça serait sympa.

ET encore un grand MERCI a toi
Messages postés
41
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
16 octobre 2005

Désolé, je ne sais absolument pas pourquoi car je ne travaille pas avec
des recordsets pour la mise a jour.
Je travaille directement avec des INSERT et ma base est initialisee
dans un Data Source Name que j'ouvre avec ma connection :
ma_connection.Open "DSN=ma_base", "log", "pwd"
log et pwd sont a renseigner pour un acces a une base oracle et
j'utilise aussi bien une base Oracle que Acces2000.

Il me semble que "HTTP_REFERER", c'est le document referant, c a d
le nom de la page sur laquelle tu te trouves, et comme tu lui demandes
de chercher la chaine "site.com" et qu' il ne la trouve pas, la condition
est donc vraie.

:)
Messages postés
1
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 octobre 2003

Cool !

Mathieu Rivrolin

Site de la SLE