Besoin d'aide Objet Session

cs_klinx Messages postés 12 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 16 décembre 2003 - 2 oct. 2003 à 11:59
cs_Rivrolin Messages postés 1 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 octobre 2003 - 16 oct. 2003 à 20:59
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

cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
5 oct. 2003 à 14:00
0
actu5394 Messages postés 41 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 16 octobre 2005
10 oct. 2003 à 14:21
Tu peux créer une variable Session hors du Global.Asa,
au moment ou tu en as besoin :
Session("variable") = ID_du_visiteur
:)
0
cs_klinx Messages postés 12 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 16 décembre 2003
11 oct. 2003 à 21:53
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
0
actu5394 Messages postés 41 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 16 octobre 2005
13 oct. 2003 à 10:31
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 ??

:)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_klinx Messages postés 12 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 16 décembre 2003
13 oct. 2003 à 12:04
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.
0
actu5394 Messages postés 41 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 16 octobre 2005
13 oct. 2003 à 14:27
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.
:)
0
cs_klinx Messages postés 12 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 16 décembre 2003
13 oct. 2003 à 23:41
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.
0
actu5394 Messages postés 41 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 16 octobre 2005
14 oct. 2003 à 10:39
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.

:)
0
cs_klinx Messages postés 12 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 16 décembre 2003
15 oct. 2003 à 13:52
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
0
actu5394 Messages postés 41 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 16 octobre 2005
15 oct. 2003 à 16:25
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.

:)
0
cs_klinx Messages postés 12 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 16 décembre 2003
15 oct. 2003 à 23:30
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
0
actu5394 Messages postés 41 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 16 octobre 2005
16 oct. 2003 à 14:54
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.

:)
0
cs_Rivrolin Messages postés 1 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 octobre 2003
16 oct. 2003 à 20:59
Cool !

Mathieu Rivrolin

Site de la SLE
0
Rejoignez-nous