06. maj 2008 - 15:19Der er
24 kommentarer og 1 løsning
Brugernavn og database
Jeg har en hjemmeside med sjove filmklip og også et debatforum på siden. Jeg er blevet nød til at lukke ned for at folk kunne ligge en kommentar til filmklip da det blev spammet alt for vildt.
Jeg kunne vildt godt tænke mig at bruge brugernavnene fra mit debatforum, så folk skal logge ind med deres adgangskode som de har lavet i forumet, før de kan smide en kommentar til et filmklip... Det er et phhBB3 forum og en SQL database mit forum kører og min hjemmeside er lavet i ASP, så ved ikke helt om det kan spille sammen? Men man burde vel kunne hive brugernavn og kode ud fra databasen???
Det burde ikke være noget problem at hive ud. Har du ikke direkte adgang til databasen så du kan se hvilke tabeller/data der ligger deri??
Vi bliver nød til at kende DB strukturen inden vi kan gøre noget.
Synes godt om
Slettet bruger
06. maj 2008 - 15:32#3
jo, jeg har adgang til det hele.. det er min egen server. Har bare to forskellige servere, en der kører ASP og en der kører PHP. Det er pga. måden min side er bygget op på (Med forum på den ene med PHP og alt andet på den anden, hvor det kører ASP).... Men kan jeg godt hive brugernavn og adgangskode ud når databasen ligger på en anden server? Det skal ikke ligge på samme server?
Det kan du sagtens, hvis database serveren tilladere forbindelser som ikke er localhost. Det er bare at skrive den rigtige connectionstring. Nu siger du det er en SQL server, så bruger du bare sådan en forbindelse i ASP
strDB = "Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open strDB
Du skal bare rette: myServerAddress: Databasenserverens adresse. Det kan være servernavn eller IP. myDataBase: Databasen du vil bruge myUsername: Brugernavnet til at connecte med myPassword: Passwordet
Synes godt om
Slettet bruger
06. maj 2008 - 15:46#6
Super, jamen så er jeg da et skridt på vejen når det kan lade sig gøre :-)
Nu er det første gang jeg arbejder med brugernavne, men siden skal vel checke om en bruger er logget ind, ellers komme med login form? Kan man finde nogle eksempler et sted på nettet om hvordan man laver det?
Når brugeren logges ind, skal brugernavnet/id'et gemmes i en session, fx.: Session("login")="flx666"
Så kan du indsætte dette på alle sider: If Session("login")="" Then Response.Redirect "login.asp"
Dvs. hvis Session("login") er lig med tom, så er man ikke logget ind, og så ryger man direkte til siden "login.asp" - man kan derved ikke komme til at se siden, før man er logget ind.
Koden skal selvfølgelig ikke sættes på "alle sider", men på de sider, som skal beskyttes. :) F.eks. har du et problem, hvis du sætter den på login.asp...
Et simpel login script: <% if request.querystring("mode") = "login" then user = replace(request.form("user"),"'","''") pass = replace(request.form("pass"),"'","''") set rs = conn.execute("select * from brugerTabel where user='"& user &"' and pass='"& pass &"'") if rs.eof then 'Forkert login response.redirect("login.asp") else 'Login OK session("loginID") = rs("ID") response.redirect("enSide.asp") end if end if %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Login</title> </head> <body>
Det kommer an på hvordan de er krypteret. Det må du kunne se i PHP koden. Det er måske bare en MD5 kryptering, også er det bare at lave den samme kryptering i ASP.
Synes godt om
Slettet bruger
08. maj 2008 - 11:21#13
Hehe, der er jeg lost... :-) Jeg må lige prøve at finde ud af det i et phpBB3 forum..
Har undersøgt det. Det lader til at de brugte MD5 før i tiden man har ændret det til en anden. Koden til den kan eftersigende findes i: /includes/functions.php
Funktionen hedder phpbb_hash
Det lader ikke til at være en standard kryptering, så du bliver nød til at oversætte den til ASP. Har ikke kunne finde en oversættelse online. Evt. kan du lade ASP kalde en PHP fil via ServerXMLHTTP objektet, men så skal du have lavet en php fil som modtagere et brugernavn og udskriver det krypteret (burde ikke være så svært).
Synes godt om
Slettet bruger
08. maj 2008 - 12:51#17
Wow, det lyder lidt advanceret må jeg nok indrømme. Er knap så erfaren i ASP, så det er vist over min viden desværre.
Selve ASP delen er faktisk meget nem. Det vil ikke bestå af meget mere end:
post = "pass=password" url = "http://dinSide.dk/getCryptPass.php" set XmlReq = Server.CreateObject("Msxml2.ServerXMLHTTP") XmlReq.open "POST", URL, False XmlReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" XmlReq.Send Post KrypPassword = XmlReq.responseText
post variablen skal så have de informationer som php krypteringsfunktionen har brug for, så der kan evt være et par stykker mere der skal på.
Derefter skal getCryptPass.php siden laves. Den skal bare samle post værdierne op, sende igennem krypteringsfunktionen og tilsidst udskrive værdien. PHP delen kunne jeg sikkert have klaret for 2 år siden, men jeg har ikke programmeret php længe, så jeg kan ikke huske det længere.
Der bliver du nok nød til at spørge i php kategorien. Henvis evt til dette spørgsmål, så de kender baghistorien.
Synes godt om
Slettet bruger
08. maj 2008 - 13:59#19
Fik lige en kammerat til at kigge på det PHP:
Var det nedenståene til at starte med?
$query = mysql_query("SELECT id, username FROM users WHERE id='$_GET[id]'"); $result = mysql_fetch_array($query);
I skal have fundet phpbb_hash funktionen og se hvad den tager af parametre. Derefter skal functions.php (som indeholder funktionen) inkludeses på jeres side, så den kan kaldes. Også udskriver I bare resultatet. Bliver noget ala:
include "/includes/functions.php" echo phpbb_hash($_POST["pass"])
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.