webForumDet fria alternativet

Värva medlemmar

ASP

20 svar · 487 visningar · startad av Qimen

Medlem sedan juni 20015 009 inlägg
Frågan#1

Hej

Om man har en registrerings sida speciellt för värvning. Kan man då genom att t.ex. skriva http://addre.se/regga.asp?varva=Qimen
Om man då följer den länken och blir medlem så vill jag att den personen som står i länken får ett visst antal poäng (plus 20 i fältet "status" i tabellen members).

Funderade på att när man reggar sig och den för in uppgifterna i db:n så uppdaterar den även användaren ifrån querystringen eller ngt liknande.

Hur löser man detta bäst?

:)

Medlem sedan aug. 2000378 inlägg
#2

Man tar o lägger in ett type="hidden" fält i reggaformuläret och sedan på den sidan då du lägger till den nya användaren så kollar du först om personen finns i databasen o sedan lägger du till 20p på denna.
Det är väl typ basic lr?

Medlem sedan nov. 20017 144 inlägg
#3

Lägg in Qimen i en input hidden field

<input type="hidden" name="strVarva" value="<%=request.querystring("varva")%>"

Och när man subittar detta forumulär så uppdaterar du dennes post med ett förutbestämt antal poäng.

Medlem sedan juni 20015 009 inlägg
#4

Mjo så långt hade jag kommit själv. Det svåra är hur jag först ska lägga till de nya koderna och sedan uppdatera.

Använder följande kod för att lägga till:

<%
SQL = "SELECT * FROM anvandare WHERE Namn = '"&Request.Form("username")&"' "
RecSet.Open SQL, Connect, 3,3

If Not RecSet.Eof Then
	Session("fel") = "Användarnamnet är upptaget"
	Response.Redirect("registrera.asp")
End If
SQL = "Select * From anvandare"

	RecSet.AddNew
                ....
	RecSet("namn") = Request.Form("username")

	RecSet("ip") = Request.ServerVariables("REMOTE_ADDR")
	RecSet("status") = "0"
                ....
	RecSet("besok") = "0"

	RecSet.Update
	RecSet.Close

If not Request.Form("username") = admin Then
SQL = "Select * From meddelanden"
RecSet.Open SQL, Connect, 3,3
	
	RecSet.AddNew

	RecSet("datum") = Now
	RecSet("rubrik") = "Välkommen!"
                ....
	RecSet("ip") = Request.ServerVariables("REMOTE_ADDR")

	RecSet.Update
	RecSet.Close

End If
Connect.Close
	Set RecSet = nothing
	Set Connect = nothing
%>

Har byttat ut vissa saker mot ... för att spara lite plats.

Hur/var ska jag lägga till updateringen?

Medlem sedan juni 20015 009 inlägg
#5

Försökte att slänga in detta:

SQL = "Select * From anvandare WHERE namn = '" & Request.Form("strVarva")
RecSet.Open SQL, Connect, 3,3
    
	RecSet("status") = RecSet("status") + 30

	RecSet.Update
	RecSet.Close

Mellan det första som läggs till och där ett meddelande läggs till. Men jag får bara:

Syntaxfel i sträng i frågeuttrycket 'namn = 'Qimen'.
/pixelworld/varva_registrerad.asp, line 46

och rad 46 är:

RecSet.Open SQL, Connect, 3,3

Någon som vet vad som är fel?

Medlem sedan nov. 20017 144 inlägg
#6
 SQL = "Select * From anvandare WHERE namn = '" & Request.Form("strVarva") &"'"
Medlem sedan juni 20015 009 inlägg
#7

Tack funkar klockrent.
Kanske lite off-topic men hur gör man så att man inte kan ändra i ett textfält?
Man kan ju använda type="hidden"
Kan ju vara bra så att användaren ser vem man blir värvad av men inte kan ändra det :e

Medlem sedan nov. 20017 144 inlägg
#8

<input type="text" disabled>
Men då får du lägga till detta utöver ditt hiddenfield.
Det smartaste kanske är att bara skriva ut namnet utan ett fält.

Medlem sedan aug. 2000378 inlägg
#9

Finfint att det löste säg hann inte svara för jag satt o kollade på "Den Gröna milen" <--- mkt off-Topic...

Är det bästa sättet att spara felmess på genom sessions?

Medlem sedan nov. 20017 144 inlägg
#10

Lite förändring/effektivicering av din kod:
Byt ut detta:

SQL = "Select * From anvandare WHERE namn = '" & Request.Form("strVarva")
RecSet.Open SQL, Connect, 3,3
    
	RecSet("status") = RecSet("status") + 30

	RecSet.Update
	RecSet.Close

mot detta:

Connect.execute "update anvandare set status = status + 30 where namn =  '" & Request.Form("strVarva") &"'",,128
Medlem sedan nov. 20017 144 inlägg
#11

Korta felmess brukar jag lägga i en querystring.

response.redirect "fel.asp?felmess=Fel på användarnamn

Ett annat sätt är att lägga en felkod i querystringen som du hämtar upp på sidan:

response.redirect "fel.asp?felkod=2"
Och på sidan "fel.asp"
Dim mess
select case request("felkod")
case "1"
mess="Fel 1"
case "2"
mess="Fel 2"
case else
mess="Fatal Error!"
end select
response.write mess
Medlem sedan juni 20015 009 inlägg
#12

Vad menar du det med felmeddelandena?

Medlem sedan nov. 20017 144 inlägg
#13

Är det ett kort felmeddelande kan du kanske lägga det direkt i en querystring.
Är det långa felmeddelanden kan du skapa en case-sats

Medlem sedan juni 20015 009 inlägg
#14

ok

Medlem sedan aug. 2000378 inlägg
#15

Chansen finns ju att man får ett antal felmess... då funkar väl inte en select case då man kanske vill skriva ut flera...
Kom o tänka på att lägga dom i en Session o sedan skriva ut sessionen... man kan ju bygga på den sessionen med lite mer text o så... nån begränsning på hur många teckan man ska lagra i en session?
Session(namn) = Nothing dödar den?

Medlem sedan dec. 20003 887 inlägg
#16
[blue]'ASP 3.0[/blue]
Session.Contents.Remove(Name | index)
Session.Contents.RemoveAll()
Medlem sedan juni 20015 009 inlägg
#17

Men alltså pillar användaren i länken så får han skylla sig själv §e

Medlem sedan nov. 20017 144 inlägg
#18

Ceeron skrev:

Chansen finns ju att man får ett antal felmess... då funkar väl inte en select case då man kanske vill skriva ut flera...
Kom o tänka på att lägga dom i en Session o sedan skriva ut sessionen... man kan ju bygga på den sessionen med lite mer text o så... nån begränsning på hur många teckan man ska lagra i en session?
Session(namn) = Nothing dödar den?

Varför skulle inte det funka?
Men det är klart, istället för att lägga in felmesset i variabler så kan man anropa subbar med selectsatsen i stället.
Session.Contents.Remove("sessionsnamnet")
eller
Session.abandon

Medlem sedan aug. 2000378 inlägg
#19

Alltså jag menar om jag både vill skicka med felmess1 och felmess2. Case kan ju inte plocka ut flera samtidigt lr?

Medlem sedan nov. 20017 144 inlägg
#20

Nej, det är ju klart.

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