webForumDet fria alternativet

Nu funkar det...men nåt annat strular....

ASP

110 svar · 1 504 visningar · startad av BulletBoyCrime · sida 3 av 6

Frågan, av BulletBoyCrime

JA! Nu funkar min connection till databasen :e Skrev in {MySQL ODBC 3.51 Driver} i driver="" Tack! Men nu strular detta......... Set RecSet = Server.CreateObject("ABODB.Recordset") Borde inte detta funka? :q

Läs frågan i sin helhet →
Medlem sedan mars 2003970 inlägg
#41

Det blir nog lite svårt att lägga upp en länk....
Jag kan inte vara inne på mycket på nätet och ipadressen byts varje gång jag loggar ut/in och den ligger på min PWS.
Däremot kan jag lägga upp hela koden....men det blir rejält mycket kod.
Here goes;

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Now you are registered! -- Crimea Bay </TITLE>
</HEAD>
<%
Function SQLSafe(strText)
     SQLSafe = Replace (strText, "'", "''")
End function

Set Connect = Server.CreateObject("ADODB.Connection")
  Connect.Open "driver={MySQL ODBC 3.51 Driver}; server=localhost; uid=root; password= ; database=crimea"
  Addera = "SELECT * FROM players"

  Connect.Open Addera, Connect
   
   Dim Name, Password, Title, Perk, Realname, Phone, Country, Cash, Health, Curhealth, wski, eski, pski, sski, cski, hski, dski, duski, lski, enmax, encur, honor

   Name = Request.Form("name")
   Password = Request.Form("password")
   Title = Request.Form("title")
   Perk = Request.Form("perk")
   Realname = Request.Form("persname")
   Phone = Request.Form("phone")
   Country = Request.Form("country")
   Cash = 15000
   Health = 100
   Curhealth = 100

   If Request.Form("perk") = 1 Then
   wski = 1
   eski = 1
   pski = 1
   sski = 1
   cski = 1
   hski = 1
   dski = 1
   duski = 1
   lski = 1
   enmax = 100
   encur = 75
   honor = 20
   Elseif Request.Form("perk") = 2 Then
   wski = 3
   eski = 0
   pski = 0
   sski = 0
   cski = 0
   hski = 0
   dski = 3
   duski = 0
   lski = 0
   enmax = 100
   encur = 75
   honor = 23
   Elseif Request.Form("perk") = 3 Then
   wski = 0
   eski = 0
   pski = 0
   sski = 0
   cski = 6
   hski = 0
   dski = 0
   duski = 0
   lski = 0
   enmax = 100
   encur = 75
   honor = 23
   Elseif Request.Form("perk") = 4 Then
   wski = 0
   eski = 0
   pski = 0
   sski = 0
   cski = 0
   hski = 0
   dski = 0
   duski = 0
   lski = 0
   enmax = 125
   encur = 100
   honor = 20
   Elseif Request.Form("perk") = 5 Then
   wski = 0
   eski = 5
   pski = 0
   sski = 0
   cski = 0
   hski = 0
   dski = 4
   duski = 0
   lski = 0
   enmax = 100
   encur = 75
   honor = 20
   Elseif Request.Form("perk") = 6 Then
   wski = 2
   eski = 0
   pski = 3
   sski = 0
   cski = 0
   hski = 0
   dski = 2
   duski = 2
   lski = 0
   enmax = 100
   encur = 75
   honor = 20
   Elseif Request.Form("perk") = 7 Then
   wski = 0
   eski = 0
   pski = 0
   sski = 0
   cski = 0
   hski = 0
   dski = 0
   duski = 0
   lski = 9
   enmax = 100
   encur = 75
   honor = 20
   Elseif Request.Form("perk") = 8 Then
   wski = 0
   eski = 0
   pski = 0
   sski = 0
   cski = 0
   hski = 5
   dski = 0
   duski = 4
   lski = 0
   enmax = 100
   encur = 75
   honor = 20
   Elseif Request.Form("perk") = 9 Then
   wski = 0
   eski = 0
   pski = 0
   sski = 9
   cski = 0
   hski = 0
   dski = 0
   duski = 0
   lski = 0
   enmax = 100
   encur = 75
   honor = 20

   strSQL = "INSERT INTO players (name, password, title, perk, realname, phone, country, cash, health, curhealth, wepskill, expskill, protect, spyskill, ccskill, hokskill, driskill, druskill, lawskill, energymax, energycur, honor) VALUES ('" & SQLSafeName & "', '" & SQLSafePassword & "', " & SQLSafeTitle & ", " & SQLSafePerk & ", '" & SQLSafeRealname & "', '" & SQLSafePhone & "', '" & SQLSafeCountry & "', " & Cash & ", " & Health & ", " & Curhealth & ", " & wski & ", " & eski & ", " & pski & ", " & sski & ", " & cski & ", " & hski & ", " & dski & ", " & duski & ", " & lski & ", " & enmax & ", " & encur & ", " & honor & ")" 
   Connect.Execute (strSQL)
   
%>
<BODY bgcolor=#000000 text=#FFFFFF Link=#FFFFFF Alink=#FFFFFF VLINK=#FFFFFF>
<TABLE>
<TR>
	<TD width=333 height=100></TD>
	<TD width=333 height=100></TD>
	<TD width=333 height=100></TD>
</TR>
<TR>
	<TD></TD>
	<TD valign=top align=center><FONT SIZE="" COLOR=""><H1>Done!</H1></FONT><BR><BR>
	Your Criminal Alias is:<% =Request.Form("name") %><BR><BR>
	Your password is:<% =Request.Form("password") %><BR><BR>
    <%
	If Request.Form("title") = 1 Then
	Response.Write  "Your Title is: Hitman"
	ElseIf Request.Form("title") = 2 Then
	Response.Write  "Your Title is: Spy"
	ElseIf Request.Form("title") = 3 Then
	Response.Write  "Your Title is: Nailer"
	ElseIf Request.Form("title") = 4 Then
	Response.Write  "Your Title is: Pimp"
	ElseIf Request.Form("title") = 5 Then
	Response.Write  "Your Title is: Dealer"
	ElseIf Request.Form("title") = 6 Then
	Response.Write  "Your Title is: Survivor"
	ElseIf Request.Form("title") = 7 Then
	Response.Write  "Your Title is: Driver"
	ElseIf Request.Form("title") = 8 Then
	Response.Write  "Your Title is: Lawyer"
	ElseIf Request.Form("title") = 9 Then
	Response.Write  "Your Title is: Explosives Expert"
	Else
	Response.Write  "You didn´t pick a title."
	End If
	Connect.Close
	%>
	<P>Log in <A HREF="crimea.asp">HERE</A></P>
	</TD>
	<TD></TD>
</TR>
<TR>
	<TD></TD>
	<TD></TD>
	<TD></TD>
</TR>
</TABLE>
</BODY>
</HTML>

Phew........Tack och lov för kopiera/klistra in :e
Var ligger felet nu då :q

Medlem sedan mars 20015 287 inlägg
#42

Tror du ska peta in en:
End If

Precis ovanför din SQL-sats.

Medlem sedan mars 20015 287 inlägg
#43

Sen tror jag du kan kapa i allafall några rader kod genom att ändra din poäng(?)grej till detta:

   wski = 0
   eski = 0
   pski = 0
   sski = 0
   cski = 0
   hski = 0
   dski = 0
   duski = 0
   lski = 0
   enmax = 0
   encur = 0
   honor = 0

If Request.Form("perk") = 1 Then
   wski = 1
   eski = 1
   pski = 1
   sski = 1
   cski = 1
   hski = 1
   dski = 1
   duski = 1
   lski = 1
   enmax = 100
   encur = 75
   honor = 20
   Elseif Request.Form("perk") = 2 Then
   wski = 3
   dski = 3
   enmax = 100
   encur = 75
   honor = 23
   Elseif Request.Form("perk") = 3 Then
   cski = 6
   enmax = 100
   encur = 75
   honor = 23
   Elseif Request.Form("perk") = 4 Then
   enmax = 125
   encur = 100
   honor = 20
   Elseif Request.Form("perk") = 5 Then
   eski = 5
   dski = 4
   enmax = 100
   encur = 75
   honor = 20
   Elseif Request.Form("perk") = 6 Then
   wski = 2
   pski = 3
   dski = 2
   duski = 2
   enmax = 100
   encur = 75
   honor = 20
   Elseif Request.Form("perk") = 7 Then
   lski = 9
   enmax = 100
   encur = 75
   honor = 20
   Elseif Request.Form("perk") = 8 Then
   hski = 5
   duski = 4
   enmax = 100
   encur = 75
   honor = 20
   Elseif Request.Form("perk") = 9 Then
   sski = 9
   enmax = 100
   encur = 75
   honor = 20
End If
Medlem sedan nov. 20017 144 inlägg
#44

En annan sak du skulle kunna göra är att skippa dessa variabler:

   wski = 0
   eski = 0
   pski = 0
...osv.

Och istället göra en splitt av Request.Form("perk"). ex.

 <input type="radio" name="perk" value="0|0|0|9|0|0|0|0|0|1|0|0|75|20">

och på andra sidan:
Dim perk
perk=split(Request.Form("perk"),"|")
'sqlkoden
...." & perk(0) & ", " & perk(1) & ", " & perk(2) & ", " & perk(3) osv..
Medlem sedan mars 2003970 inlägg
#45

Ojjj..............den Ifen glömde jag............ :r
Hur fungerar den här splitten då?
Jag förstår inte riktigt :r ;)
Så man kan skippa alla "tomma" variabler?
Det var ju bra :e
Fast först måste jag testa att lägga in End If till den långa ifen :birp
Tack!

Medlem sedan mars 2003970 inlägg
#46

*suck* tillbaka på ruta ett..........
Nu kommer detta felmeddelandet:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[MySQL][ODBC 3.51 Driver]Can't connect to MySQL server on 'localhost' (10061)

/crimea bay/registered.asp, line 12

Vad är det nu för fel x(
Jag blir lite smått förbannad på den himla mySQLconnectionen......

Medlem sedan nov. 20017 144 inlägg
#47

Måste bara fråga, varför vill du öppna databasen och göra en select?

Medlem sedan mars 20015 287 inlägg
#48

Det vill han nog inte..
Addera-raden samt den under ska väl bort va?

Jag skulle nog även passa på att flytta ner hela databaskopplingen till precis innan Executen sker, även stänga direkt efter.

Medlem sedan nov. 20017 144 inlägg
#49

Presajs!
Databaser skall öppnas så sent som möjligt samt stängas så fort som möjligt. Basta!

Medlem sedan mars 2003970 inlägg
#50

Fixat! ;)
Men kan ni hjälpa mig med felmeddelandet, det förändras inte(fast nu är det line 144:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[MySQL][ODBC 3.51 Driver]Can't connect to MySQL server on 'localhost' (10061)

/crimea bay/registered.asp, line 144

Måste jag ange ipnummer eller vad är fel :q

Medlem sedan nov. 20017 144 inlägg
#51

har du tagit bort detta:
Addera = "SELECT * FROM players"
Connect.Open Addera, Connect
?

Medlem sedan mars 2003970 inlägg
#52

Jupp.

Medlem sedan nov. 20017 144 inlägg
#53

Det verkar vara något databasstrul då. Har du fått databasen att rulla överhuvudtaget?

Medlem sedan mars 2003970 inlägg
#54

Jag vet inte riktigt hur du mnar med rulla..... :r
Men jag har dragit upp mySQL Front och skapat databasen, om det är det du menar.
Håll i spakarna.........jag kanske vet vad som är fel...........
En sekund.

Medlem sedan mars 2003970 inlägg
#55

Buuuuuuuuuhuuuuuuuu........
Jag fattade vad som var fel, jag hade inte min mySQL server igång.Men nu är det nåt SQLstrul.....usch.
Ta en titt:

uschliga felmeddelandet skrev:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.12]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' , '', '', '', 15000, 100, 100, , , , , , , , , , , , )' at lin

/crimea bay/registered.asp, line 147

Bläää.........jag kan knappt ett dyft om SQL, hur tusan ska jag kunna hitta felet :q

Medlem sedan jan. 20032 285 inlägg
#56

Jag antar att det beror på att du inte kan ha null som ett värde i databasen. Hur ser SQL-satsen ut?

Medlem sedan mars 2003970 inlägg
#57

Här kommer den:

 strSQL = "INSERT INTO players (name, password, title, perk, realname, phone, country, cash, health, curhealth, wepskill, expskill, protect, spyskill, ccskill, hokskill, driskill, druskill, lawskill, energymax, energycur, honor) VALUES ('" & SQLSafeName & "', '" & SQLSafePassword & "', " & SQLSafeTitle & ", " & SQLSafePerk & ", '" & SQLSafeRealname & "', '" & SQLSafePhone & "', '" & SQLSafeCountry & "', " & Cash & ", " & Health & ", " & Curhealth & ", " & wski & ", " & eski & ", " & pski & ", " & sski & ", " & cski & ", " & hski & ", " & dski & ", " & duski & ", " & lski & ", " & enmax & ", " & encur & ", " & honor & ")" 
   Connect.Execute (strSQL)

Har ingen aning om var jag ska börja........ :r
Tack för att ni hjälper till så mycket :birp

Medlem sedan jan. 20032 285 inlägg
#58

Se till så att alla variabler som SQL-satsen innehåller inte är null (alltså, de måste innehålla ett värde, inte vara tomma)!

Medlem sedan mars 2003970 inlägg
#59

Ah.....så ingen SQLinsertvariabel får vara = 0?
För då måste saker ändras.........

Medlem sedan nov. 20017 144 inlägg
#60

0 får de väl vara men inte null

270 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)