[ASP/VBScript] Tijdelijk opslaan variabelen

Pagina: 1
Acties:

  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
Ik ben een formulier aan het implementeren wat uit verschillende pagina's bestaat. Normaal zou ik de ingevoerde waarden van de vorige pagina's steeds opslaan in sessie-variabelen en op het einde alle ingevoerde data vanuit die sessie-variabelen in de database opslaan.

Ik was me nu aan het afvragen omdat een session-object eigenlijk een cookie is (als ik het tenminste goed begrepen heb). Dan zou deze methode dus niet werken bij mensen die cookies disabled hebben.

Nu vroeg ik me af, als ik er vanuit ga dat mijn verhaal klopt, of er betere manieren zijn om deze data tijdelijk op te slaan.

*blup*


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 26-05 00:01

Janoz

Moderator Devschuur®

!litemod

Een sessie is niet gelijk aan een cookie. Bij een sessie wordt wel vaak gebruik van een cookie gemaakt, maar dit is alleen zodat de server kan weten bij welke sessie deze bezoeker hoort. Deze zogenaamde sessie ID kan ook op andere manieren doorgegeven worden waneer cookies niet worden geaccepteerd.

Een betere manier bestaat eigenlijk niet. Waneer je zelf een andere oplossing zou gaan maken ben je uiteindelijk gewoon bezig om je eigen implementatie van een sessionhandler te maken. Het is misschien wel erg leerzaam om te doen, maar je schiet er niks mee op. Veel beter dan het al aanwezige session object kun je het niet maken.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Dukey
  • Registratie: November 2000
  • Laatst online: 24-05 12:14

Dukey

Ik heb dit getypt hier -->

Je gebruikt sessies voor formulieren?

Volgens mij snap je het formulier niet helemaal icm vbscript.

code:
1
2
3
<form action="index.asp?content=text" method="post" name="form5">
<input type="bla">
</form>


In de volgende vbscript request.form doen.

Vervolgens gewoon opslaan in een session array (is onafhankelijk van cookie setting).

[ Voor 27% gewijzigd door Dukey op 17-03-2004 10:35 ]

Ook wel de allergrootste _ _ _ _ _ (vul in met blokletters)


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Er is verschil tussen 'echte' cookies en cookies die gebruikt worden voor sessies. Voor sessies worden 'temporary cookies' gebruikt, je kunt dit apart aan en uitzetten in je browser of je deze accepteerd.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
Djoekie schreef op 17 maart 2004 @ 10:33:
Je gebruikt sessies voor formulieren?

Volgens mij snap je het formulier niet helemaal icm vbscript.
volgens mij snap jij mijn probleem niet helemaal :)


Maar bedankt voor de snelle reacties allemaal. Dus ik kan in principe dus wel sessie-variabele gebruiken zonder dat ik problemen krijg met "cookies-disabled-pc's"?

[ Voor 3% gewijzigd door sjink op 17-03-2004 10:39 ]

*blup*


  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
ik vond net dit artikel met google
If you disable cookies, ASP session variables do not work either.

ASP session variables use cookies and cannot exist without setting a cookie for your ASP session id. The whole reason they stay persistent in memory for a certain amount of time is because the server does not watch for a particular network connection as they are not (by default) persistent. Therefore, it has to set a cookie that has a unique asp session id. All server side session variables are related back to the cookie-id as passed by the browser. If the browser has cookies turned off the ASP session id cannot be passed.

The only way to avoid the cookie / session issue is to encode a session id in the query string. Avoid using asp session variables if possible.
http://webdesign.ittoolbox.com/documents/document.asp?i=2587

*blup*


  • purge
  • Registratie: November 2000
  • Niet online
Kan je niet alle variabelen in een tweede tabel in je database opslaan. Wanneer iemand alle vragen heeft beantwoord dat je deze in de huidige tabel in een database opslaat. Indien je formulier(en) ook een aanmelding vereisen kan je een gebruiker ook verder laten gaan waar hij/zij gebleven was.
Het bijhouden van een (session-)id laat is dan verder eenvoudig.

  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
Was ik idd ook al aan het denken, maar dit word een behoorlijk 'vervuilde' tabel dan, vooral als er mensen zijn die maar half formulier invulle e.d.
Opzich wel een oplossing lijkt me alleen niet de 'netste' ;)

*blup*


  • purge
  • Registratie: November 2000
  • Niet online
sjink schreef op 17 maart 2004 @ 10:46:
...
Opzich wel een oplossing lijkt me alleen niet de 'netste' ;)
Je hebt hier een punt ;)
Vaak is het zo dat een oplossing voor een bepaald probleem een nieuw probleem creeërd. Indien je de vervuiling tegen wilt gaan kan je bijv. denken om verouderde gegeven te verwijderen. (bijv. 1 dag na de laatste wijziging van de gegevens van een formulier; ook leuk om in het achterhoofd te houden dat je geen gegeven verwijderd waarmee iemand net bezig is.)
Het doel dat je 'tijdelijk' gegevens opslaat heb je hiermee bereikt. Verder rest de vraag of je inderdaad onvolledig ingevulde formulieren wilt bewaren.
Suc6 verder

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
je zou ook het application object kunnen gebruiken....

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

4of9 schreef op 17 maart 2004 @ 13:48:
je zou ook het application object kunnen gebruiken....
Als je die gebruikt, zorg dan alleen dat je geen leaks krijgt door data niet te verwijderen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
4of9 schreef op 17 maart 2004 @ 13:48:
je zou ook het application object kunnen gebruiken....
Denk dat dat lastig wordt als er meerdere gebruikers tegelijkertijd het formulier aan het invullen zijn. Tenminste ik dacht tocht dat het application-object in tegenstelling tot het session-object maar 1 keer voorkomt en dan zou je elkaars data overschrijven als er door 2 users tegelijkertijd gebruik van wordt gemaakt

*blup*


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
waarom sja de ingevoerde waarden niet gewoon als hidden values op in het formulier

dus:
formulier 1 post naar pagina met
formulier 2, waarin de waarden van formulier 1 als hidden staan ingevuld, post naar formulier 3
etc...

zo krijg je ook geen vervuiling van je database omdat je waarden niet in de db komen voordat het formulier volledig is ingevuld...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

sjink schreef op 17 maart 2004 @ 14:23:
[...]


Denk dat dat lastig wordt als er meerdere gebruikers tegelijkertijd het formulier aan het invullen zijn. Tenminste ik dacht tocht dat het application-object in tegenstelling tot het session-object maar 1 keer voorkomt en dan zou je elkaars data overschrijven als er door 2 users tegelijkertijd gebruik van wordt gemaakt
Daarom moet je ook met keys gaan werken? Application heeft een global (application) scope en kan je als soortement van Singleton beschouwen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
waarom sja de ingevoerde waarden niet gewoon als hidden values op in het formulier
Omdat ik ook nog terug wil kunnen gaan naar vorige pagina's/formulieren
Daarom moet je ook met keys gaan werken? Application heeft een global (application) scope en kan je als soortement van Singleton beschouwen.
Heb dat singleton ooit wel eens horen langskomen op school, maar ik snapte er geen bal van :D was dat niet iets met 'klonen' van object ofzo

*blup*

Pagina: 1