Du har ingen inlogging eller?
Då får du sätta en cookie med ett unikt tal i som du sedan får lägga in i db och sedan jämföra med när personen ifråga vill redigera.
24 svar · 338 visningar · startad av saw
Nu tror jag att jag bara har en fråga kvar om mitt forum.
Jag skulle vilja ha möjligheten att låta den person som har skrivit inlägget redigera inlägget också.
Dvs Ett enlägg har gjorts, efter någon tid (timmar eller dagar) så kommer samma person tillbaka och vill redigera sin egen (bara den) text.
Att det måste vara någon form av "kaka" förstår jag, men hur??
Någon som vet?
Du har ingen inlogging eller?
Då får du sätta en cookie med ett unikt tal i som du sedan får lägga in i db och sedan jämföra med när personen ifråga vill redigera.
Nej jag har inte det.
Mina tankar har gått mot att ha en kaka med ID:t, men frågan är hur.
Vad tror ni om någonting åt detta hållet?
Response.kaka("redigera")("id") = RS("id")
Och sedan lägga den där man stoppar in informationen i databasen.
Skulle det fungera tros?
Men ifall man skriver 2 inlägg då? Borde det inte bli lite fel då...
Hehe, jo det är därför som jag frågar, jag kom inte förbi det.
Men allting liger ju i samma tabell, inlägg som uppföljare så id är ju unikt.
Problemet, om han har skrivit mer än ett inlägg, hur skall man lagra det?
Du skulle kunna tilldela namnet på kakan dynamiskt:
Response.kaka("redigera")(RS("id")) = 1
Sedan när du hämtar just det inlägget så kollar du bara om kakan finns (du har ju kaknamnet i ID:t) och om den är satt till 1.
If Request.kaka("redigera")(RS("id")) = 1 Then
'Du får redigera
End If
Ett bättre sätt skulle vara att lagra all ID:n i samma kaka... Det skulle gå till så att du först kollar om kakan finns, finns den så plockar du ut värdet, lägger till det nya värdet tillsammans med det gamla och stoppar tillbaks det igen... förslagsvis i en kommaseparerad lista...
kaka = Request.kaka("redigera")
kaka = kaka & ","&RS("id")
Självklart måste du modifiera lite och och göra lite extra kontroller för att det skall fungera på ett bra sätt...
Lycka till!
Tack Vidde men det blev patrull med en gång.
ERROR:
Cookies-objekt, ASP 0105 (0x80004005)
Ett matrisindex ligger utanför intervallet.
/Cossacks/Forum/Index.asp, line 150
och det är just den här snutten:
If Request.kaka("redigera")(RS("id")) = 1 Then
'Du får redigera
End If
Sen måste jag fråga, vilka extra kontroller tänkte du på?
Just den kontrollen som du visar nu skall du ju köra när du hämtat ett inlägg... alltså MÅSTE det finnas ett värde i RS("id") vid tillfället... Möjligtvis kan du testa att konvertera till sträng när du lägger till kakan:
Response.kaka("redigera")(Cstr(RS("id"))) = 1
Extra kontroller kan vara att inte lägga till ett komma i kakan om det inte finns ett värde ifrån början...
Mvh, Vide
Jag kanske började lite bakvänt, men jag använde din kodsnut för att visa (trots att det inte finns någon kaka än) och det var ju där det första felet kom. Nu räckte det tydligen med den justeringen.
Nästa fråga, jag måste ju fånga upp det nya ID:t.
Vilken metod är då bäst? Ny SQL med SELECT TOP1 ID ?
Eller så lägger du in ett unikt slumpnummer i varje post som du sedan kan använda för att hämta ID:t...
Eller så använder du ett RecordSet (var det jag som sa det? ) för att lägga till...
Om du använder Acecss 2000(Jet 4.0) eller SQL server så är det bättre att använda
select @@identity
för att få tag på räknarens värde för din senast inlagda post.
Nja, jag måste ju rätta mig efter den serverns programvara, där filerna ligger. Vad jag förstår så utesluter det select @@identity.
Slumpnummer, innebär att jag måste lägga till flera fält, kanske.
Recordset, då är jag väl där som jag skrev om sist? Select top 1 ID?
Nu står jag här helt handfallen.
Jag jobbar med:
SQLStmt = "SELECT TOP 1 ID"
Response.write SQLStmt
Connection.Execute(SQLStmt)
kaka = Request.Cokies("redigera")
kaka = kaka & ","&RS("id")
Men borde det inte stå:
Request.Cokies("redigera")=Request.Cokies("redigera")
Request.Cokies("redigera")=Request.Cokies("redigera") & ","&RS("id") eller är jag helt ute och flyger?
SQLStmt = "SELECT TOP 1 ID From tabell"
Connection.Execute(SQLStmt)
kaka = Request.Cokies("redigera")
kaka = kaka & ","&RS("id")
Response.Cokies("redigera") = kaka
Om livet ändå hade varit så enkelt:
Inkompatibla typer
/Cossacks/Forum/Newinsert.asp, line 47
Error pekar på denna rad:
kaka = kaka & ","& RS("id")
Jag försökte att lägga Cint runt ID:t men samma fel.
Vad göra?
Appropå ingenting: Vide, är du nöjd med IE6-betan?
Jodå, IE-betan fungerar bra... men vissa säkerhetssajter släpper inte in mig ännu...
saw, testa att skriva ut kakans värde och RS("id")-värdet till HTML och se vad du får...
Jag är fortfarande ganska så konfundersam. Så här är det nu (inga fel)
SQLStmt = "SELECT TOP 1 ID From Forum"
SET RS = Connection.Execute(SQLStmt)
strID = RS("id")
kaka = Request.Cokies("redigera")
kaka = kaka & ","& strID
Response.Cokies ("redigera") = kaka
Vilket gör att här kan jag skriva ut cokiesen:
Response.Write "<BR>Cookies: " & Request.Cokies("redigera")
Jag får då följande resultat:
ID: 1
Cokies: ,,1
Detta är ju galet också det skulle visa nr 34, jag kanske skulle använda mig av MAX?
Just nu så finns alltså två kommatecken i cociesens redigera.
Bör jag inte ha en undernyckel? Var skall jag lägga till 1?
Jag har svårt att inse att jag skall få fram någonting med detta:
If Request.Cokies("redigera")(Cstr(RS("id"))) = 1 Then
Vad göra?
Jag chansar villt här nu.
Nu fungerar denna biten:
SQLStmt = "SELECT Max(Forum.Id) AS MaxförId FROM Forum"
SET RS = Connection.Execute(SQLStmt)
strID = RS("MaxförId")
kaka = Request.Cokies("redigera")
kaka = kaka & ","& strID
Response.Cokies ("redigera") = kaka
Response.Cokies ("redigera")("id")=1
(är det rätt att tilldela så här?)
PROBLEM:
Jag kan inte förstå hur jag skall hämta upp det på annat vis än:
IfRequest.Cokies("redigera") = (Cstr(RS("id"))) AND Request.Cokies("redigera")("id")=1 THEN
Men här stöter jag på patrull igen.
Kompileringsfel i Microsoft VBScript (0x800A0401)
Slut på programsats förväntas.
/Cossacks/Forum/Index.asp, line 147, column 89
IfRequest.Cokies("redigera") = (Cstr(RS("id"))) AND Request.Cokies("redigera")("id")=1 THEN
Jag ser ingenting som ser mer fel ut än det andra...