Toon posts:

[CF] Sessie blijft plakken

Pagina: 1
Acties:
  • 149 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik werk met sessies maar als ik uitlog en weer inlog geeft hij lokaal een foutmelding: :(
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Error Diagnostic Information

An error occurred while evaluating the expression: 


"http://#session.server#/blaat/CMS/doorsturen.cfm?#session.URLtoken#&inlognaam=#session.loginnaam#"


Error near line 22, column 23.
--------------------------------------------------------------------------------

Error resolving parameter SESSION.URLTOKEN

The session variable URLTOKEN does not exist. 
The cause of this error is very likely one of the following things:


als hij online staat (andere server dus niet lokaal) dan gaat het wel altijd goed? Is dit een bekende fout of doe ik iets verkeerd?

het inloggen gaat zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<cfquery datasource="blaat" name="GetUserRecord">
            SELECT * 
            FROM gebruikers
            WHERE   Inlognaam = '#FORM.inlognaam#' AND  Wachtwoord= '#FORM.wachtwoord#'
        </cfquery>
        

            
<cflock scope="SESSION" timeout="1" type="EXCLUSIVE">
<cfset session.rechten = "true">
<cfset session.loginnaam = #getuserrecord.inlognaam#>
<cfset session.gebruikers_id = #getuserrecord.gebruikers_id#>
</cflock>
            
<cfoutput>
                
<cflock scope="SESSION" timeout="1" type="READONLY">
                    
<cflocation url="http://#session.server#/blaat/CMS/doorsturen.cfm?#session.URLtoken#&inlognaam=#session.loginnaam#" addtoken="YES">
</cflock>
</cfoutput>


het uitloggen gaat zo:
code:
1
2
3
<cflock  scope="SESSION" TimeOut="1">
    <cfset Structclear(session)>
</cflock>

[ Voor 12% gewijzigd door Verwijderd op 14-12-2002 12:13 ]


  • jochemd
  • Registratie: November 2000
  • Laatst online: 25-08 15:35
session.URLToken aan een link toevoegen en dan ook addtoken naar TRUE zetten is een beetje dubbelop, vindt je ook niet?
Het zou ook wel handig zijn als je even je cfapplication tag er bij zette. Verder even alle cookies van de desbetreffende domeinen verwijderen en opnieuw proberen.

En over de code in zijn algemeen: cfoutput verwijderen en cfqueryparam gebruiken, als je dit in productie draait legt iedere would-be script kiddy in 3 seconden je applicatie ondersteboven.

Verwijderd

Topicstarter
de application:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!--- Set de tijd wanneer de sessie variabelen verlopen --->
<CFSET dag = 0>
<CFSET uur = 0>
<CFSET min = 0>
<CFSET sec = 10>

<!---Session application--->
<CFAPPLICATION 
SESSIONTIMEOUT = #CreateTimeSpan(dag,uur,min,sec)# 
SESSIONMANAGEMENT="Yes"  
SETCLIENTCOOKIES="No"
NAME="egpnApp">

<cflock scope="SESSION" timeout="1" type="EXCLUSIVE">
    <CFSET session.server = CGI.http_host>
</cflock>

<!--- Zet de sessie verlooptijd op..sec --->
<cflock scope="session" type="EXCLUSIVE" timeout="1">
    <CFSET session.sessie_verlopen_sec=1+sec+min*60+uur*3600+dag*86400>
</cflock>


cfqueryparam kom ik nie tuit, maar eerst maar zorgen dat het script werkt, het anti-hacken komt later wel. addtoken was foutje: gekopieerd uit oud bestand maar code is verder nu dus zo:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<cflock scope="SESSION" timeout="1" type="EXCLUSIVE">
                <cfset session.rechten = "true">
                <cfset session.loginnaam = #getuserrecord.inlognaam#>
                <cfset session.ImagePath = "egpn_nieuw/home/images">
                <cfset session.gebruiker = #getuserrecord.idnr#>
            </cflock>
            
            <cfoutput>
                <cflock scope="SESSION" timeout="1" type="READONLY">
<CFLOCATION ADDTOKEN="No" URL="home.cfm?#session.URLtoken#">

                </cflock>
            </cfoutput>

  • jochemd
  • Registratie: November 2000
  • Laatst online: 25-08 15:35
Doe in plaats van een StructClear(session) eens een structDelete(session,"key") voor elke key, er zit een subtiel verschil tussen.

Verwijderd

Topicstarter
Oh ik had eerst alles structDelete(session,"key") en toen werkte het niet maar ik ga het nog wel proberen.
Ameout op 20 deconde zet en de sessie loopt vanzelf af dan gaat het goed (kan ik gelijk inloggen) dus het is idd alleen als je eerst op uiltloggen drukt en dan weer inlogt.

Verwijderd

Topicstarter
structDelete(session,"key")


Ik heb geprobeerd:

code:
1
2
3
4
5
6
7
8
9
<cflock  scope="SESSION" TimeOut="1">

    <CFSET structDelete(session,"#session.gebruiker#")>

    <CFSET structDelete(session,"#session.loginnaam#")>

    <CFSET structDelete(session,"#session.rechten#")> 

</cflock>



IPV <cfset Structclear(session)>


Maar dat wrekt voor geen meter: hij logt gewoon niet uit. Waarschijnlijk maak ik een hele domme fout maar goed ik kom er niet uit :)

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 26-08 07:51

mulder

ik spuug op het trottoir

Zonder pounds, nu prop je de inhoud van de variable erin, niet de naam

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
<cflock scope="SESSION" TimeOut="1">
<CFSET structDelete(session,"session.gebruiker")>
<CFSET structDelete(session,"session.loginnaam")>
<CFSET structDelete(session,"session.rechten")>
</cflock>

zo dus? bij de Help functie van Cold Fusion stond het met haakjes maar ik zal het uitproberen

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 26-08 07:51

mulder

ik spuug op het trottoir

In het voorbeeld van CF wil men het veld met de naam verwijderen dat in die waarde staat.

oogjes open, snaveltjes dicht


  • Defspace
  • Registratie: Mei 2000
  • Laatst online: 11:17

Defspace

Administrator

jochemd schreef op 14 december 2002 @ 13:31:
En over de code in zijn algemeen: cfoutput verwijderen en cfqueryparam gebruiken, als je dit in productie draait legt iedere would-be script kiddy in 3 seconden je applicatie ondersteboven.
Kan je dit nader toelichten. Want ik maak in mijn apps vrij veel gebruik van CFOUTPUT ?

Even ervan uitgaande dat je cfoutput alleen gebruikt voor gecontroleerde/gevalideerde of statische output ?

  • jochemd
  • Registratie: November 2000
  • Laatst online: 25-08 15:35
De cfoutput rondom de cflocation is alleen overbodig, maar niet gevaarlijk. Het niet gebruiken van cfqueryparam kan gevaarlijk zijn.

Verwijderd

Topicstarter
Ik snap niet veel van jullie ge parameter enzo, maar die sessieplak van mij heeft te misschien te maken met de instellingen van de server? Als ik hem namelijk online zet schijnt het wel te werken maar lokaal op mijn server dus niet? zeggen jullie van : ja dat zou kunnen of meer iets van : dit is de druppel plukvandepetteflat, jij snapt er ECHT geen ene zak van :O :'( :+ :z O-)

  • jochemd
  • Registratie: November 2000
  • Laatst online: 25-08 15:35
Ik moet toegeven dat ik inderdaad absoluut niet snap waar jij mee bezig bent. Als je gewoon het cflogin voorbeeldje uit de handleiding had gepakt was je volgens mij al lang klaar geweest, en waarschijnlijk is het dan ook nog een stuk veiliger.
Pagina: 1