Just nu i M3-nätverket
Gå till innehåll

Typblandningsfel i villkorsuttryck.


Sharingan

Rekommendera Poster

Micke_skane

Ja, det ser bra ut!

 

Hur blir det i länken på mainsidan när du för musen över den?

Vad står det då efter userID= ?

Finns det en 2 efter userID= ?

Såhär: userID=2

 

Om det nu står 2 efter userID så skriv ut Session-variabeln på userInfo-sidan.

Hämta även upp värdet i QueryStringen som du gjort innan och skriv ut värdet.

Såhär ska det vara:

Värde: [MÄRK]<%[/MÄRK]=[b]Session[/b]([GRÅ]"userID"[/GRÅ])[MÄRK]%>[/MÄRK]<br />
[MÄRK]<%[/MÄRK]
[color="#0000ff"]Dim[/color] qsID
qsID = [b]Request[/b].QueryString([GRÅ]"userID"[/GRÅ])
[b]Response[/b].Write qsID
[MÄRK]%>[/MÄRK]

 

Måste även ta i akt att säga tack så mkt för att du tar dig tid och ork att hjälpa mig, väldigt bussigt. ;D

Ville bara tacka för hjälpen då din hjälp till Sharingan även ger mig en positiv följd ;-)

Varsågoda!

Det kommer att komma en saftig räkning senare :)

Nä, det är bara kul att hjälpa om hjälpen uppskattas.

Det är bara att "banka" in poäng för varje inlägg :))

 

[inlägget ändrat 2006-04-18 20:18:30 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Okej, så här blev min resultat:

 

Vad står det då efter userID= ?

Finns det en 2 efter userID= ?

 

Nix, ingen 2:a efter, när jag höll musen över länken utan det ser ut så är:

http://localhost/community/userInfo.asp?userID=

 

Om det nu står 2 efter userID så skriv ut Session-variabeln på userInfo-sidan.

Hämta även upp värdet i QueryStringen som du gjort innan och skriv ut värdet.

 

Jag provade detta även fast det inte stod en 2 efter userID=

 

När jag trycker på länken får jag Värde: 2

 

Det tycker jag verkar skumt ? Är det alltså länken det är fel på:

 

<a href="userInfo.asp?userID="[color="#0000ff"]<%=Session("userID")%>[/color]">Din profil</a>

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Det är väl på mainsidan som länkarna är?

Inte userInfo!?

 

Såhär menar jag!

 

main.asp

Värde: [MÄRK]<%[/MÄRK]=[b]Session[/b]([GRÅ]"userID"[/GRÅ])[MÄRK]%>[/MÄRK]<br />
<a href=[GRÅ]"userInfo.asp?userID="[/GRÅ]<%=Session([GRÅ]"userID"[/GRÅ])%>">Din profil</a>

Vad blir det utskivet efter Värde: ?

Vad står det i länken när du för markören över den?

 

userInfo.asp

Värde: [MÄRK]<%[/MÄRK]=[b]Session[/b]([GRÅ]"userID"[/GRÅ])[MÄRK]%>[/MÄRK]<br />
[MÄRK]<%[/MÄRK]
[color="#0000ff"]Dim[/color] qsID
qsID = [b]Request[/b].QueryString([GRÅ]"userID"[/GRÅ])
[b]Response[/b].Write qsID
[MÄRK]%>[/MÄRK]

 

Det ska BARA vara detta på sidorna!

 

[inlägget ändrat 2006-04-18 20:37:51 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Det var iofs så jag gjorde förra gången. :P men men

 

Så här ser min main ut nu:

 

Värde: <%=Session("userID")%><br />
<a href="userInfo.asp?userID="<%=Session("userID")%>">Din profil</a>

 

När jag loggar in står det så här på main:

 

Värde: 2

 

Din profil

 

Håller jag mörkören över länken står det så här:

 

 http://localhost/community/userInfo.asp?[color="#0000ff"]userID=[/color] 

 

Alltså ingen siffra efter userID

 

Min userInfo.asp ser nu ut såhär:

 

Värde: <%=Session("userID")%><br />
<%
Dim qsID
qsID = Request.QueryString("userID")
Response.Write qsID
%>

 

Klickar jag på länken från main.asp, alltså Din Profil, så får jag upp en ny sida med detta på:

 

 

Värde: 2

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Såklart, det är jag som är trött i "päran".

Det är ju länken som visas :)

 

Vad händer om du lägger in Session("userID") i en variabel och sen hänger på den i din länk? Skriv även ut intId.

Såhär:

[MÄRK]<%[/MÄRK]
[color="#0000ff"]Dim[/color] intId
intId = [b]Session[/b]([GRÅ]"userID"[/GRÅ])
[b]Response[/b].Write intId&[GRÅ]"<br />"[/GRÅ]
[MÄRK]%>[/MÄRK]
<a href=[GRÅ]"userInfo.asp?userID="[/GRÅ]<%=Clng(intId)>">Din profil</a>

 

Vad blir det då för värde efter userId= ?

 

[inlägget ändrat 2006-04-18 21:09:41 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Hehe okej.

 

Jadu det blir ganska exakt likadant:

 

<%
Dim intId
intId = Session("userID")
Response.Write intId&"<br />"
%>
<a href="userInfo.asp?userID="<%=Clng(intId)>">Din profil</a>

 

Den skriver ut:

2

Din profil

 

Vad blir det då för värde efter userId= ?

 

http://localhost/community/userInfo.asp?[color="#0000ff"]userID=[/color]

 

Alltså inget värde :/

 

Länk till kommentar
Dela på andra webbplatser

Måste bara kasta in att jag tycker det verkar onödigt att skicka med usertID som querystring i länken om det ändå finns en sessionsvariabel som har detta värde. Räcker alltså att länka till userInfo.asp och där använda Session("userID").

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

Nu hänger jag inte riktigt med vad du menar.

 

Själva problemet i denna tråden är att userID inte hittar sitt unikvärde när man skall gå in på den personliga proflen.

 

Den gör det dock när man loggar in sig och i gästboken.

 

Har du ngt förslag på kod som kan prova så är du hemskt välkommen att säga den ;D

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane
det verkar onödigt att skicka med usertID som querystring i länken
Håller med dig men har inte vilja ta upp det ännu då det är märkligt varför värdet försvinner i länken med Session-variabeln.

Den borde ju ALLTID ha ett värde för att kunna använda den där man vill, annars vet man ju inte när det fungerar och inte.

 

Det verkar lite "skumt" så jag ska faktiskt testa att göra egna sidor med den koden du lagt i tråden.

Blir imorgon.

 

 

Länk till kommentar
Dela på andra webbplatser

Okej, tackar så mkt för all hjälp idag. Hoppas du kommer på ngt ;D

Ha det så bra, så hörs vi imorgon då kanske.

 

MVH//Pundus

 

Länk till kommentar
Dela på andra webbplatser

Ska villigt erkänna att jag inte nogrant läst alla inläggen men min poäng var att om du lyckas logga in samt sätta Session("userID") till korrekt värde så använder du framgent sessionsvariabelns värde för databasfrågor etc.

 

Eftersom jag inte läst all kod så vet jag inte hur du loggar in och hur Session("userID") får sitt värde men kolla på följande lilla exempel för hur jag menar:

 

login.asp[log]

<% IF Request("action")<>"login" THEN %>
<form method="post" action="?action=login">
 Användarnamn: <input name="username" type="text"><br>
 Lösenord: <input name="password" type="password"><br>
 <input type="submit" value="Logga In">
</form>
<%
IF Request("login")="error" THEN Response.Write("<strong>Felaktig inlogging!<strong>") END IF

ELSE
 Function sqlTxt(str)
   str=Trim(str)
   str=Replace(str, "'", "")
   str=Replace(str, ",", "")
   str=Replace(str, "&", "")
   str=Replace(str, "|", "")
   str=Replace(str, """", "")  
   sqlTxt=str
 End Function

 strUsername=sqlTxt(Request.Form(username))
 strPassword=sqlTxt(Request.Form(username))

 SET conn = Server.CreateObject("ADODB.Connection")
 connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("minDatabas.mdb")
 conn.open connStr

 SET RS=conn.execute("SELECT userID FROM tblUsers WHERE usrName='"&&"' AND usrPass='"&&"' ")
 IF NOT RS.EOF THEN
   Session("userID")=RS(0)
   strNextPage="default.asp"
 ELSE
   Session.Contents.Remove "userID"
   strNextPage="?login=error"
 END IF
 SET RS=Nothing

 conn.close
 SET conn=Nothing
END IF
%>

[/log]

 

default.asp[log]

<%
IF Session("userID")="" THEN
 Response.Redirect("login.asp")
ELSE
%>
Du är inloggad!<br>
<a href="userInfo.asp">Din profil</a>
<% END IF %>

[/log]

 

userInfo.asp[log]

<%
IF Session("userID")="" THEN
 Response.Redirect("login.asp")
ELSE
 SET conn = Server.CreateObject("ADODB.Connection")
 connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("minDatabas.mdb")
 conn.open connStr

 SET RS=conn.execute("SELECT userFullName FROM tblUsers WHERE userID="&Session("userID")&"")
 IF NOT RS.EOF THEN
   userFullName=RS(0)
 END IF
 SET RS=Nothing

 conn.close
 SET conn=Nothing  
%>
Profil för <%=userFullName%>
<% END IF %>

[/log]

 

 

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Han sätter värdet till Session-variabeln om han lyckas logga in på "samma" sätt som du gör i exemplet men när han sen stoppar in variabeln i en länk försvinner värdet.

Därför är man ju lite osäker på vad som händer i hans kod.

 

Värdet finns om han skriver ut variabel men inte om han sätter in den i en länk direkt efter :S

Har du varit med om något sådant någon gång?

[inlägget ändrat 2006-04-18 22:22:27 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Har du varit med om något sådant någon gång?
Nja, inte riktigt. För länge sedan hade en kollega problem med ett felkonfigurerat (fråga mig inte hur) webbhotell som ideligen tappade sessioner mellan sidbyten.

 

majkel, testa min exempelkod (i undermapp el. dyl) och se om du upplever samma problem fortfarande.

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Jag har inte heller varit med om det men det verkar lite märkligt.

 

Edit:

Har kommit på varför det inte finns ett värde i länken:

Jag som inte var riktigt uppmärksam igår.

Där finns ett "-tecken för mycket i länken:

Denna ska bort(rödmarkerad):

<a href=[GRÅ]"userInfo.asp?userID=[color="#ff0000"]"[/GRÅ][/color]<%=Session([GRÅ]"userID"[/GRÅ])%>">Din profil</a>

 

Nu ska Session-variabeln fungerar som den ska.

Nu vet jag inte riktigt vad som ska hända på resterande sidor men att använda Session-variabeln så som Cluster visade är att föredra.

 

Sen på inloggningssidan så stänger du databas Efter du använder:

Response.Redirect("main.asp")

vilket betyder att du inte stänger din databas eftersom Allt efter din Redirect aldrig körs.

Man kan lägga allra sist Response.Redirect sida där sida har fått sitt värde beroende om man lyckats eller inte.

 

Lycka till med resterande :)

 

[inlägget ändrat 2006-04-19 07:55:14 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Tjenare. Jag är ganska ny på asp, så jag hänger inte riktigt med på din kod. Är det meningen att jag skall göra en nya databas eller lägga in min gamla värden. Vore väldigt schysst om du kunde förklara koderna för mig lite.

 

MVH//pundus

 

Länk till kommentar
Dela på andra webbplatser

okej, jag skall göra dessa ändringarna. Du skall ha STORT tack för all hjälp jag har fått.

 

MVH//Pundus

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Varsågod!

 

Förklaringen av koden får han själv ta :)

Har inte tid att ta en "runda" till :)

Arbetsdagen har börjat.

 

Tack själv för poängen :thumbsup:

 

Du kan vara lugn, databasen behöver du inte ändra.

 

 

[inlägget ändrat 2006-04-19 08:41:35 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...