Session qui marche en local et pas chez hebergeur

Signaler
Messages postés
11
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
1 février 2005
-
Messages postés
3
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
4 novembre 2005
-
Bonjour,

Je gère mon panier en ASP (via FP) avec une variablesession (dans le global.asa) et tout fonctionne très bien en local (ajout et suppression de produit sans pb). Ca ne fonctionne plus correctement sur le serveur distant (hosteur.com). (J'ai publié ce weekend)

Si quelqu'un avait une piste je lui en serais extrêment reconnaissant.

Merci d'avance pour vos réponses.

David.

24 réponses

Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Tu pourrais nous donner plus de précision ?
Qu'est ce qui ne marche pas correctement ? T'as des messages d'erreur ?

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
11
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
1 février 2005

Salut,


Alors j'en suis à faire des tests sur mon site mais mon problème persiste. J'ai donc maintenant uniquement un formulaire qui alimente un tableau. Comme ça je peux voir si les champs de mon fomulaire (2 champs) viennent bien les uns sous les autres:


Exemple: je tape dans le formulaire:


tata tonton résultat sur ma seconde page : tata tonton


papa maman résultat sur ma seconde page : tata tonton


papa maman

etc.....

Là ma session tient (elle conserve les 2 1ères données)
Ca ne marche que de mon poste. Ailleurs, la session ne tient pas !!!!

Je commence à me demander si j'aurais un fichier sur mon disque dur qui permette que ça marche et que je n'aurais pas envoyé sur le serveur !!?? Mais je ne pense pas c'est très simple: Définition dans session_onstart d'un tableau et de la session dans le global.asa et ensuite je reprends ma session dans ma seconde page !!!!
Evidemment en local ça marche très bien.
Le but de ses tests bien sûr c'est de mettre en place un panier !!
Voilà. Merci.
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
La session ne tient pas c'est à dire ?
Quand par exemple tu tappe "papa maman" après avoir tapé "tata tonton", il y a quoi dans la variable à la fin ? Il a remplacé "tata tonton" par "papa maman" ou il n'a pas voulu ajouter "papa maman" ?

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
11
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
1 février 2005

Alors ce qui se passe chez certaines personnes: les lignes écrasent les précedentes. Sur d'autre rien ne se passe, uniquement le transfert sur la seconde page et aucun champs du formulaire n'a été transféré.

Je répète que ça marche très bien depuis mon poste. !!?? Etrange.

Est-ce que sinon, ça ne viendrait pas dû fait que j'ai paramétré l'IIS de mon poste pour développer en local, et ce n'est pas le cas de tout le monde ???
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
C'est étrange...
Je ne vois pas comment résoudre ça...
Mais si tu veux faire un panier, pourquoi tu ne stock pas les mots qui ont été entré dans une base de donnée, ça pourrais éviter ce genre de problèmes : plus besoin de variable dans le global.asa, et pas de problème de sessions...!

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
11
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
1 février 2005

En effet je trouve ça un peu perturbant. Mais il y a bien une raison pour laquelle ça marche bien depuis le poste qui publie !!!
Ta solution sera peut-être envisagée mais pour l'instant je ne sais pas faire. Il faudrait stoker dans une base de donnée mais pouvoir aller reprendre ses données, que le client puisse supprimer les lignes qu'il ne veut plus, pouvoir identifier le client (avec le sessionID, mais il n'est pas stable sinon j'aurais pas de pb!). Non je ne me sens pas encore suffisamment au point pour mettre en place un tel système.
Là j'ai utilisé une solution que j'ai vu à plusieurs endroits (ici même d'ailleurs), le classique
1 fichier ajouter, 1 fichier panier, 1 fichier supprimer. Chacun agit sur la session et le panier affiche tout bien.

Ha je suis fou que ça ne marche pas, je vais tester chez Fidji qui propose 15jours gratuit. Pour l'instant je suis chez hosteur.com et le support ne m'est pas d'un grand secours pour l'instant !!!

Merci beaucoup en tout cas de t'être intéressé au pb.
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

As-tu essayé avec plusieurs navigateurs ? sur IE, les parametres de sécurité Intenet et Intranet (local) sont différents et tu as peut-être des parametres de sécurité internet trop élevés ?

Cordialement
Roro webDev
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Tu pourrais nous montrer le bout de code où tu rajoute le contenu du formulaire à la variable de session : il se pourrait tout simplement que la version d'IIS que tu as en local n'est pas la même que celle du serveur.

@+

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
11
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
1 février 2005

DEFINITION DE LA SESSION :Fichier global.asa


<SCRIPT LANGUAGE=VBScript RUNAT=Server>


Sub Session_OnStart




Redim Caddy (4,100) ‘ tableau qui va créé le panier (4colonnes et 100lignes)


Session("MonCaddy")=Caddy ‘définition de la variable session


Session("Item")=0 ‘il y a 0 ligne dans le caddie


Session("MaxItem")=100 ‘ 100 lignes max


End Sub


</SCRIPT>


FICHIER AJOUTERPANIER.ASP :


<%


Temp=Session("MonCaddy")


Temp(0,Session("Item"))=Request.QueryString("Nom") ‘récupération des champs provenant des produits commandés


Temp(1,Session("Item"))=Request.QueryString("Quantite")


Temp(2,Session("Item"))=Request.QueryString("Prix")


Temp(4,Session("Item"))=Request.QueryString("RefProduit")





Session("MonCaddy")=Temp ‘ on écrit le résultat dans la variable de la session « MonCaddy »


Session("Item")=Session("Item")+1 ‘on passe à la ligne suivante du tableau


%>


<%response.redirect "panier.asp" %> ‘redirection automatique vers le panier


<html>


<title>ajouterpanier</title>





<head>


<meta name="Microsoft Border" content="tlb, default">


</head>







&nbsp;





</html>


PANIER.ASP :


Avant les bornes html :


<%Temp=Session("MonCaddy")%>


<%


Total=0


For i=0 to session("Item")-1


Total=Total+Temp(1,i)*Temp(2,i)


next


%>


‘ j’ai supprimé ici le code pour la mise en page




<%For i=0 to Session("Item")-1%> ‘boucle pour afficher toutes les lignes du tableau


<%Response.Write(Temp(0,i))%> <%Response.Write(Temp(1,i))%> ‘affichage des champs


<%Response.Write(Temp(2,i))%>&nbsp;?


<%


if Temp(3,i)="gramme" then ‘condition pour le total de la ligne


Response.Write(Temp(2,i)*Temp(1,i)/100)


else Response.Write(Temp(2,i)*Temp(1,i))


end if


%>&nbsp;?</td>


[supprpanier.asp?ligne=<%=i%> suppr] ‘lien pour supprimer la ligne (le code est donc dans le fichier supprpanier.asp)


<%next%>





<%=Total%> ?




SUPPPANIER.ASP :


<%


Temp=Session("MonCaddy") ‘on duplique le tableau


%>


<%


ligne=request.querystring("ligne")


for i=ligne to session("Item")-2 ‘ on démarre de la ligne i (spécifiée dans le lien du fichier panier.asp <%=i%>)


Temp(0,i)=Temp(0,i+1) ‘donc la ligne du dessus vient écraser la ligne i et celle du dessus etc…


Temp(1,i)=Temp(1,i+1)


Temp(2,i)=Temp(2,i+1)


Temp(4,i)=Temp(4,i+1)


next


Session("MonCaddy")=Temp ‘on réécrit le tableau


Session("Item")=Session("Item")-1 ‘on diminue le nombre de ligne


%>


<% response.redirect "panier.asp" %> ‘redirection automatique vers panier.asp


<head>


<title>supprpanier</title>


<meta name="Microsoft Border" content="tlb, default">


</head>




&nbsp;


</html>
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
C'est superbe tout ça...
Mais il y a un truc que je comprends pas :
Tu as un tableau à 4 colonnes :


Temp(0,Session("Item"))= Request.QueryString("Nom")

Temp(1,Session("Item"))=Request.QueryString("Quantite")


Temp(2,Session("Item"))=Request.QueryString("Prix")


Temp( 4 ,Session("Item")) =Request.QueryString("RefProduit")

Pourquoi 4 et pas 3 tout simplement ?

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
11
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
1 février 2005

Il y a un 3 en effet que j'ai enlevé (mais c'est bien vu). Qui représente si la quantité est exprimée en gramme ou à la pièce. J'ai trouvé non pertinent de le mettre et j'ai uniquement simplifié de se côté.





Sinon, qu'est ce que tu en penses, le code parait correct ? Mais ton histoire de paramétrage d'IIS me parait un bonne piste....dis m'en un peu plus.
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Le code est bon, je vois pas de problème à ce que ça marche...
En fait je vois pas comment des données du tableau peuvent "se perdre en route".
Normalement, quelque soit la configuration de...ce qu'on veut...on ne peut pas perdre un truc comme ça.
Ce qu'il faut voir c'est si tu perd : - la variable Session("MonCaddy")
- juste une donnée du tableau
- toute une ligne
- tout le tableau

Tu devrais essayer de débugger tout ça : tu peux essayer d'afficher le contenu de Session("MonCaddy") (sans tableau, juste tout à la suite) à différent endroits dans tes pages.
Comme ça tu peux regarder ce qui a disparu et où est le bout de code responsable.
je te conseil de tester au moins :
- Au début de ajouterpanier.asp, et à la fin de la page (tu enlève le response.redirect)
- Au début de panier.asp, juste avant le tableau et juste après aussi.
- tu peux essayer dans supppanier.asp, mais je crois pas que ça vienne de là.
Avec ça du devrais pouvoir isoler l'endroit où il y a le problème.

Bonne chance...@+

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
11
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
1 février 2005

Le problème c'est que depuis mon poste ça marche donc je ne peux pas faire de test (et je n'ai qu'un poste à la maison !).
De toute façon je pense sérieusement que j'ai un truc (un fichier, je ne sais pas ??) sur mon pc qui permette que ça marche de chez moi et pas ailleurs. Mais qu'est ce que ça peut être ???
Y'a pas d'autres raisons pour laquelle ça ne marche pas ailleurs !!??
Et pour répondre à roro86, oui j'ai testé sur des navigateurs sans restrictions de cookies etc....pas de pb de ce côté là.

Mais vous pouvez aller voir sur www.touslesthes.com password : "davelo" (en bas de la page)
on arrive sur un formulaire avec 2 champs, on y saisit ce que l'on veut (mots, chiffres) et en cliquant sur go on arrive sur une page (le panier) qui reprend (normalement) les données saisies on renouvelle la saisie et les nouvelles données sont sensés s'incrémenter en dessous. Mais chez tout le monde ça ne fonctionne pas.
Le numero au dessus, c'est le sessionID (qui donc n'est pas stable, sauf chez moi).
Voilà.
Merci pour vos commentaires
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Tu peux essayer un truc :

tu tape par exemple "tata tonton" et tu fais go !
tu vas avoir avoir l'ID s'afficher. Retourne au formulaire, laisse le vide, et refais Go, l'ID va changer, retourne au formlaire...jusqu'à être revenu à l'ID de départ : tu vas retrouver tes données bien rangés dans le tableau !
J'ai pas encore compris ce qui se passe. J'ai jamais vu ça.
En tout cas on retrouve toujours la même suite d'ID en haut. Quand tu tape un truc, tu vas bien voir l'ID s'afficher. note la bien. Maintenant retape autre chose : tu va avoir un autre ID. Maintenant refais Go plusieurs fois jusqu'à revenir à l'ID de départ : tu verras ce que tu y as mis, retourne au 2e ID : tu verras ce que tu as entré la deuxième fois.
C'est une suite logique : ça a l'air aléatoire mais ça ne l'est pas. Ce qu'il faudrait c'est qu'on ne retombe que sur la bonne SessionID après avoir fait Go.
Mais c'est quand même étrange.
Regarde dans le global.asa...
Mais là je suis à cours d'idées !

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
11
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
1 février 2005

Ok je vais voir du côté du global.asa
Merci énormément.
Je te tiens au courant.
Messages postés
11
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
1 février 2005

Bonjour,

Je baisse les bras.
Voilà, marre de me prendre la tête avec ce pb (très surprenant). Mais je ne me laisse pas faire, et avant d'acheter un logiciel (il me reste 2 mois), je vais me lancer dans le PHP. J'ai fait un test et la session tient en PHP !!!!!!
Alors je recommence tout à zéro.

Désolé pour les défenseurs de l'ASP (sauf s'il trouve la solution, ce qui m'évitera beaucoup de travail) mais le plus dépité ça reste moi.

Merci pour ceux qui m'ont aidé.

A+

David.
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Ok.
Mais ce problème m'intéresse : je vais continuer à chercher et je te dirais si je trouve...

Je regrette que tu ais été dégouté de l'ASP...mais bon, le PHP reste bien quand même.
Bonne chance pour tout recommencer en php...

à+

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
11
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
1 février 2005

Oula ça change tout si j'ai un soutient comme le tient.
Parce que pour être honnête j'aime autant conserver l'ASP. J'ai tout mon catalogue construit sur l'ASP et mon panier fonctionne dans certaines conditions (en local, et sur le serveur distant depuis mon poste) et il me fournit tout ce dont j'ai besoin.
D'autant que je suis un peu perdu entre les array PHP, les classes PHP etc... qui semblent être des solutions pour les paniers en PHP (mais ce n'est pas le propos ici).
Ecoute, de toute façon je conserve ce que j'ai fait en ASP.
Si tu veux aller plus loin dans mon pb de sessions ASP (d'une part merci beaucoup) et d'autre part je peux t'envoyer mes scripts, par mail le mien c'est : davelo1@free.fr.
On postera un message ici si tu trouves la solution (moi je suis au taquet de mes compétences).
Merci.
A+
Messages postés
16
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
14 novembre 2005

Bonjour,

J'ai, on dirait, le même problème et j'aimerais donc savoir si tu l'a résolu et si oui comment ?

Un seul message d'erreur apparaît en ligne :


Microsoft OLE DB Provider for ODBC Drivers error '80040e0c'
Command text was not set for the command object.
recherche/rech_assiste.asp, line 657

La ligne 657 correspond à la requête SQL sur la variable de session contenant la requête à exécuter qui est donc vide en ligne mais pas en local.

Merci pour ta réponse.
Messages postés
3
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
4 novembre 2005

Bonjour,

vérifier s'il n'y a pas plusieurs ASPSESSIONID dans le cookie (à l'aide d'une page test remontant les items de Request.ServerVariables)

Si oui, vérifier s'il n'y a pas plusieurs répertoires virtuels d'installer dans IIS, car c'est de là que peut venir le problème, notamment dans les imbrications de répertoires virtuels...

A+