14. januar 2008 - 11:38Der er
6 kommentarer og 1 løsning
msSQL sammenling IP med Request.ServerVariables(REMOTE_ADDR)
Jeg har gloet mig blind på et lille og formentligt simpelt problem...
Jeg kan ikke få udtrækket fra databasen til at se sammenligningen mellem rsR("hip") og Request.ServerVariables("REMOTE_ADDR") for at tildele admin rettighed på sittet (i den sidste elseif)... Såfremt jeg definere ip adressen manuelt går det fint... Kodesnip connHomeipStr = "DRIVER={SQL Server}; SERVER="&Servernavn&"; DATABASE="&databasenavn&"; UID="&uidnavn&"; PWD="&pwdnavn&"" rsSQLReadip = "SELECT * FROM "&tabel_ip&" WHERE hip = '"&Request.ServerVariables("REMOTE_ADDR")&"'" set conn = server.createobject("ADODB.connection") conn.Open connHomeipStr Set rsR = conn.execute(rsSQLReadip) do while not rsR.eof session("IP") = rsR("hip") rsR.movenext loop set rsR = nothing set conn = nothing if request.Form("username") = huser1 and request.Form("password") = huser1 then session("siteloggedin") = "ja" Session.Contents.Remove("admin") response.Redirect("?rum=toilet") elseif request.Form("username") = huser2 and request.Form("password") = hpass2 and Request.ServerVariables("REMOTE_ADDR") <> session("IP") then session("siteloggedin") = "ja" Session.Contents.Remove("admin") response.Redirect("?rum=toilet") elseif request.Form("username") = huser2 and request.Form("password") = hpass2 and Request.ServerVariables("REMOTE_ADDR") = session("IP") then session("admin") = "ja" session("siteloggedin") = "ja" response.Redirect("?rum=toilet") else response.Write("Der skete en fejl !!! Brugeren ikke fundet") end if snipslut
Men jeg tror jeg er nået frem til at det er MS SQL databasen der skaber problemet... Den indsætter en masse mellemrum i posten (der svare til det antal frie pladser der er i feltet)
Det er brugernavnet sammen med de(n) indkodede IP adresser der giver admin rettighederne på sitet... IP adresserne verificeres så via Request.ServerVariables("REMOTE_ADDR") og databasen, hvor de skal være ens for at administrator rettighederne kan opnås...
Feltet er et char felt der er 15 pladser langt.. men den IP adresse jeg sidder og tester fra er kun 10 karatere langt... ergo er der indlagt 5 blanktegn som jeg tror skaber baladen.. Det er ikke indsættelses koden der er noget galt med for den tager kun det der er skrevet i feltet og sætter ind via request.form("ip")
Jeg er for nylig hoppet over på MS SQL hvor jeg før brugte MySQL og der virkede det hele som det burde...
bruger tabellen og IP tabellen er ikke den samme... Det er login scriptet der kontrolere fra gang til gang... en bruger kan godt logge ind uden at have admin rettigheder men bare alm. bruger rettigheder såfremt han (M/K) er i byen, hos venner m.v.
Jeg fandt fejlen i databasen... Jeg havde brugt Char og skulle havde brugt VarChar i stedet da Char indsætter blanktegn for resten af postens maxlængde...
Så jeg lukker igen...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.