If rn.EOF
Session("logged_status") = FALSE
Response.redirect("errorpass.asp")
Else
Session("inloggad") = 1
Session("alias") = rn("name")
Response.redirect("hangoutr.asp")
End If
Aspkod till inloggning för en mySQLdatabas
70 svar · 802 visningar · startad av BulletBoyCrime · sida 4 av 4
Frågan, av BulletBoyCrime
Nu ber jag ännu en gång välgörarna på wF efter hjäklp, och denna gången gäller det en motsvarighet för RecSet i SQL queryn. Kort och gott, hur skall man göra för att fixa en inloggningskod som länkar till en mySQLdatabas på datorn och kikar igenom databasens pass respektive namn för att starta en session? Tack så otroligt mycket för all hjälp ;)
Läs frågan i sin helhet →Jag är inte säker på vad du menar. Eftersom du säger att man loggas in som den som är längst ner, så måste du ju ha den koden som sätter någon sorts variabel någonstans. Annars förstår jag inte alls vad du menar...
Hur ser du att man är inloggad som "fel" person?
:e
Snällt!
Tack!
/r Förresten, @nders, detta är lite av ett spel jag gör, så man ser det rätt så snabbt, redan på startsidan.
Men då.....
Det funkar faktiskt inte ändå, är det nåt jag ska lägga till?
Förresten, Tack för att ni hjälper till så mycket!
BulletBoyCrime skrev:
/r Förresten, @nders, detta är lite av ett spel jag gör, så man ser det rätt så snabbt, redan på startsidan.
Jo, men koden för det då? Du måste sätta ett värde, någonstans, som du läser av på startsidan. Var, när, hur?
Hur hämtar du informationen att visa på startsidan?
En liten parentes, det är väl inte helt optimalt att skicka alias o pass i en querystring?
Fast iofs, är det ett spel så kanske inte säkerheten behöver vara bättre än så.
Ok, det får väl bli lite kod då....
hangoutr.asp:
<%
Dim Cn, Rs, arrRecs, i, Name, Title, Race, Religion, Perk, Honor, Cash, Helth, Enercur, Enermax, Titel, Ras, Relle, Perko
Set Cn = Server.CreateObject("ADODB.Connection")
Cn.Open "Driver={mySQL ODBC 3.51 Driver};Server=localhost;Option=16834;Database=crimea;"
Set Rs = Cn.Execute("Select name, title, race, religion, perk, honor, cash, curhealth, energycur, energymax From players")
If Rs.EOF Then
Rs.Close : Set Rs = Nothing
Cn.Close : Set Cn = Nothing
Else arrRecs = Rs.GetRows()
Rs.Close : Set Rs = Nothing
Cn.Close : Set Cn = Nothing
For i = 0 To UBound(arrRecs,2)
Name = arrRecs(0,i)
Title = arrRecs(1,i)
Race = arrRecs(2,i)
Religion = arrRecs(3,i)
Perk = arrRecs(4,i)
Honor = arrRecs(5,i)
Cash = arrRecs(6,i)
Helth = arrRecs(7,i)
Enercur = arrRecs(8,i)
Enermax = arrRecs(9,i)
Next
End If
If Title = "1" Then
Titel = "Hitman"
Elseif Title = "2" Then
Titel = "Spy"
Elseif Title = "3" Then
Titel = "Assassin"
Elseif Title = "4" Then
Titel = "Pimp"
Elseif Title = "5" Then
Titel = "Survivor"
Elseif Title = "6" Then
Titel = "Driver"
Elseif Title = "7" Then
Titel = "Lawyer"
Elseif Title = "8" Then
Titel = "Explosives Expert"
End If
If Race = "1" Then
Ras = "Aryan"
Elseif Race = "2" Then
Ras = "Nigger"
Elseif Race = "3" Then
Ras = "Latino"
Elseif Race = "4" Then
Ras = "Chinese"
Elseif Race = "5" Then
Ras = "Dego"
Elseif Race = "6" Then
Ras = "Irish"
Elseif Race = "7" Then
Ras = "Mulatto"
Elseif Race = "8" Then
Ras = "Japanese"
End If
If Religion = "1" Then
Relle = "Atheist"
Elseif Religion = "2" Then
Relle = "Protestant"
Elseif Religion = "3" Then
Relle = "Catholic"
Elseif Religion = "4" Then
Relle = "Jew"
Elseif Religion = "5" Then
Relle = "Muslim"
Elseif Religion = "6" Then
Relle = "Buddhist"
End If
If Perk = "1" Then
Perko = "A Natural"
Elseif Perk = "2" Then
Perko = "Discipline"
Elseif Perk = "3" Then
Perko = "Martial Arts Fanatic"
Elseif Perk = "4" Then
Perko = "Energized"
Elseif Perk = "5" Then
Perko = "Technical Genius"
Elseif Perk = "6" Then
Perko = "Been in the Business"
Elseif Perk = "7" Then
Perko = "Speaker"
Elseif Perk = "8" Then
Perko = "Low Bait"
Elseif Perk = "9" Then
Perko = "Agent"
End If
%>
check.asp:
<%
userform = Request.Querystring("alias")
passform = Request.Querystring("pass")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={mySQL ODBC 3.51 Driver};Server=localhost;Option=16834;Database=crimea;"
list = "SELECT * FROM players WHERE name='" & userform & "' AND password='" & passform & "' "
Set rn = Connect.Execute(list)
If rn.EOF Then
Session("logged_status") = FALSE
Response.redirect("errorpass.asp")
Else
Session("inloggad") = 1
Session("alias") = rn("name")
Response.redirect("hangoutr.asp")
End If
%>
inloggformuläret:
<form method="get" action="check.asp">
<SPAN ID="text">
<B>Criminal Alias:</B>
<input type="text" size="15" name="alias"><BR><BR>
<B>Password:</B>
<input type="password" size="15" name="pass"> <input type="image" src="login.jpg" value="submit" class="noborder" STYLE="position: relative; top: 6px;">
</SPAN></form>
Nu har jag lagt upp all kod skulle jag tro......
Vet att ni antagligen är trötta på mig och mitt tjafs men kan någon snälla peka ut var jag tänkt fel nånstans.
tack!
P.S min syster hälsar D.S
Du hämtar ju alla spelare från tabellen (du har ju ingen where-sats i SQL-frågan). Du loopar sedan igenom hela resultatet och för varje spelare sätter du om variabelvärdena (vilket innebär att efter loopen innehåller variablerna värden från den spelare som ligger sist i recordsetet.)
Maskinen kan inte gissa vilka värden du vill hämta, bara för att det någonstans finns en session som innehåller någonting. Du måste säga: "Snälla, kan jag få veta var Pelle bor", och inte "Snälla, kan jag få veta var det bor någon snubbe". ;)
Lägg till en wheresats.
Set Rs = Cn.Execute("Select name, title, race, religion, perk, honor, cash, curhealth, energycur, energymax From players [b]WHERE name = '" & Session("alias") & "'[/b]")
Jag utgår ifrån att du lade till alias-sessionen efter Sebbes förslag.
(Personligen hade jag dock använt en sessionsvariabel som innehåller ett numeriskt ID istället. Det är helt enkelt lättare att hantera.)
Mvh
Jag har faktiskt en idtabell i min databas....
hur kan man lägga up någon sådan kod då?
jag drar upp flödet jag tänker mig här:
Jag lägger in idtabellen i en variabel, och använder den som sessionsvariabel och anväder wheresatsen du skrev upp fast med det nya aliaset.
Funkar det?
Du menar ett id-fält i din tabell?
Det jag tänkte, var att istället för att lägga in alias i en sessionsvariabel enligt Sebbes exempel, så lägger man in ID istället.
If rn.EOF
Session("logged_status") = FALSE
Response.redirect("errorpass.asp")
Else
Session("inloggad") = 1
[b]Session("userid") = rn("ID")[/b]
Response.redirect("hangoutr.asp")
End If
Och sedan SELECT-frågan så här:
Set Rs = Cn.Execute("Select name, title, race, religion, perk, honor, cash, curhealth, energycur, energymax From players WHERE ID = " & Session("userid"))
Helst skulle man hoppa över loopen också, eftersom man alltid får en post returnerad, men vi kan börja med det här.
Mvh
Jag skulle gärna skippa loopen jag med, men det var den exempelkod jag fick för hur man lägger in databasvärden i variabler. Jag vet, patetiskt, men jag är inte så duktig på detta ;) som du nog märker. Hur gör man det tro, utan loop?
Ja, jag menar idfält ;) visste inte vad det hette på svenska bara.
