Toon posts:

[asp.net] session problemen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi tweakers,

Ik heb een vreselijk raar wazig probleem met myn sessions.

Myn bestellingen die men op myn toekomstige site gaan plaatsen worden tijdelijk opgeslagen in een session. deze sessions lees ik uit in myn winkelmandje.

Als men op een produkt drukt in het winkelmandje komen ze weer in het overzichts scherm van het produkt waar ik de bestel gegevens onder heb gezet. Deze bestelgegevens lees ik ook uit de session zie hieronder:

code:
1
2
3
4
5
6
7
8
9
10
11
12
for each sessionname in Session.Contents
      if Sessionname = "special_"& specialid
            
      'variable aanmaken voor de session
      Dim Specialbestelgegevens() as string
            
      'speciaal aantal ophalen uit de session                     
      Specialbestelgegevens = Session(sessionname).split("|")   
      tb_bestelaantal.text = specialbestelgegevens(0)
      tb_Gravurtekst.text = specialbestelgegevens(1)
      end if                    
next


Nu veranderen ze de velden en drukken ze op de button
Dan wil ik de session eerst weggooien.
Ik weet de naam

code:
1
2
3
Session.Contents.remove("special_"& specialid )
            
Session("special_"& specialid) = aantal &"|"& gravuretekst


Na het verwijderen maak ik hem weer aan.
Misschien omslachtig maar ik merkte dat hij namelijk myn session niet automatisch meteen wijzigede in de andere bestelgegevens.
Heel vreemd naar myn weten

Maarr dit werkt ook niet :'(

Weten jullie misschien een manier hoe ik dit moet oplossen?
Ontzettend bedankt

Met vriendelijke groet
Hopeloze mcmally |:(

Verwijderd

Misschien omslachtig maar ik merkte dat hij namelijk myn session niet automatisch meteen wijzigede in de andere bestelgegevens.
Wat bedoel je hiermee? Wat zijn 'de andere bestelgegevens'? En wat werkt er niet aan deze methode? Krijg je foutmeldingen?

Verwijderd

Topicstarter
sorry misschien maar had het gisteren deze topic in hele grote haast geschreven en zie dat ik inderdaad een hoop vergeten ben. myn excuses hiervoor.
Zodoende hier nog wat aanvullende informatie.

Er komen geen foutmelding (haha jammer genoeg want anders had ik het misschien al opgelost).
Met 'andere bestelgegevens' bedoel ik het volgende.
Produkt1 wordt besteld door de klant en wordt netjes in de session weggeschreven.
Het wordt ook goed in het winkelmandje geplaats, zodra de klant het artikel aanklikt (naam in winkelmandje is link naar produkt overzicht met bestelformulier) wordt hij doorgelinkt naar het des betreffende produktoverzicht van produkt1 MET in het bestelformlier de al eerder ingevulden bestelgegevens.
Als hij deze gegevens wijzigt en opnieuw op bestel drukt om de bestelling in de session weg te schrijven, dan gebeurd er niets.

De session bevat nog steeds de eerst ingevulde bestel gegevens van produkt1 en niet de nieuwe bestelgevens van het produkt1, die er wel weggeschreven moeten worden in de session.

Het probleem is dus alsvolgt:
- Overschrijven van de session doet hij niet. waarom is me echt een raadsel.
- remove van de des betreffende session doet hij ook niet, deze constructie had ik bedacht om eerst de oude session te remove en nieuwe opnieuw aan te maken.

Hoe moet ik dit probleem oplossen??

thanks
mcmally

p.s. hoor het als er nog onduldelijkheden zijn over myn probleem.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Weet je wel zeker dat als je probeert te overschrijven of te verwijderen dat je dezelfde key gebruikt als bij het wegschrijven?

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • victorv
  • Registratie: Januari 2002
  • Laatst online: 17-02-2024

victorv

Locallost

[ik heb niet naar jouw code gekeken, dus daar kan ook nog een probleem in zitten, maar neem de volgende opmerking even ter harte]

Lijk ff naar jouw anti virus pakket. Het kan zijn dat deze de Web.config file verkeerd "aanraakt" (bijv tijd van bestand verandert).
ASP.NET reageert direct op wijzigingen in Web.Config file: de web applicatie wordt dan herstart met als gevolg dat sessies verdwijnen.

"Accomplishing the impossible means only that the boss will add it to your regular duties."


Verwijderd

Topicstarter
jeps absoluut zekers

De produkten waar ik gebruik van maak worden weggeschreven onder de volgende sessionname "special_1" waarvan 1 het id is van het produkt. "special_" staat altijd vast en het ID weet ik dus gaat goed.

En daar komt by dat ik de gegevens die de 1e keer in de session zijn gestopt de 2e keer in de tekstboxen plaats, zodat ze zien welke gegevens ze al eerder hebben in gevoerd.

Verwijderd

Topicstarter
Sonii maar dat is het hem dus hij gooit NIET de sessies weg.
deed die dat maar want dan kon ik gewoon die nieuwe gegevens opnieuw opslaan.

hij bewaard iedere keer juist de gegevens van de eerste aangemaakte sessie, tweede keer doet hij niet eens iets en heeft hij dus nog steeds de eerste sessie

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Weet je ook zeker dat het stukje code wordt uitgevoerd waar je het object uit je Session vervangt of verwijderd? Als je dat zeker weet zal er toch wat mis moeten zijn ergens anders in je code of in je instellingen. Ik heb namelijk nooit problemen met het wissen of wijzigen van objecten in mijn Session object

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
code:
1
Session.Contents.remove("special_"& specialid )

deze code voert die niet uit terwijl hij wel wordt aangeroepen

code:
1
Session("special_"& specialid) = aantal &"|"& gravuretekst


dit voert die de eerste keer keurig netjes uit.
Maar de tweede keer als ik hem dan aanroep dan doet deze coderegel dus helemaal niets.

beide regels worden uitgevoerd NA het klikken van een knop en die werkt toch echt goed want er staat na deze regels een REDIRECT

  • victorv
  • Registratie: Januari 2002
  • Laatst online: 17-02-2024

victorv

Locallost

specialid, aantal en gravuretext geen null of nothing?

"Accomplishing the impossible means only that the boss will add it to your regular duties."


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Weet je zeker dat hij de 2e keer ook dat stuk text berijkt? Maak anders even gebruik van tracing

hoezo doe je trouwens dit
Visual Basic .NET:
1
2
for each sessionname in Session.Contents
      if Sessionname = "special_"& specialid


is dit niet veel handiger dan hoef je tenminste niet de hele Session langs te lopen

C#:
1
string sessionname = Session[ "special_" + specialid ];


want ik mag toch aannemen dat ze een Session als iets van een Hashtable ofzo hebben geimplementeerd.

[ Voor 69% gewijzigd door Woy op 11-04-2003 12:44 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
dat is waar RWB
klopt helemaal

die for loop heb ik ook gecopie past uit myn winkelmandje daar heb ik die wel nodig.
hier niet

maik ga nu ff die tracing uit proberen

sonii: ik weet inderdaad heel zekers dat de beide velden ingevuld zijn, het specialid al helemaal

Verwijderd

Topicstarter
8)7 8)7 8)7 8)7 8)7 8)7 8)7 8)7 8)7 8)7

het lijkt wel alsof ik droom.
Ik heb niets veranderd. En doorloop alles nog een keer met een trace er onder en HIJ doet het nu gewoon.
What the fuck hier snap ik dus echt geen naad van he. |:(

Eerst doet hij geen flikker en nu opeens wel.:?

maar goed het werkt.
maar wat zou het dan geweest zijn waardoor het niet werkte???

Even goed bedankt voor jullie hulp
THANKS
Pagina: 1