webForumDet fria alternativet

Aspkod till inloggning för en mySQLdatabas

ASP

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 →
Medlem sedan jan. 20032 285 inlägg
#61
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
Medlem sedan juni 200032 967 inlägg
#62

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?

Medlem sedan mars 2003970 inlägg
#63

: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.

Medlem sedan mars 2003970 inlägg
#64

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!

Medlem sedan juni 200032 967 inlägg
#65

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?

Medlem sedan mars 20015 287 inlägg
#66

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å.

Medlem sedan mars 2003970 inlägg
#67

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">&nbsp;&nbsp;<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

Medlem sedan juni 200032 967 inlägg
#68

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

Medlem sedan mars 2003970 inlägg
#69

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?

Medlem sedan juni 200032 967 inlägg
#70

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

Medlem sedan mars 2003970 inlägg
#71

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.

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)