Avatar billede Slettet bruger
06. maj 2008 - 15:19 Der 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???

Mvh.
Henrik Nielsen
www.hyggestedet.dk
Avatar billede w13 Novice
06. maj 2008 - 15:24 #1
Ja, det skal ligge i databasen.
Kan du selv sætte en tabel op i databasen, som indeholder brugernavn og password?
Avatar billede fennec Nybegynder
06. maj 2008 - 15:26 #2
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.
Avatar billede 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?
Avatar billede fennec Nybegynder
06. maj 2008 - 15:39 #4
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
Avatar billede fennec Nybegynder
06. maj 2008 - 15:44 #5
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
Avatar billede 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?
Avatar billede w13 Novice
06. maj 2008 - 15:56 #7
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.
Avatar billede w13 Novice
06. maj 2008 - 15:56 #8
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...
Avatar billede fennec Nybegynder
06. maj 2008 - 16:12 #9
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>

<form method="Post" action="login.asp?mode=login">
<input type="Text" name="user" value=""><br>
<input type="Password" name="pass" value=""><br>
<input type="Submit" value="login">
</form>

</body>
</html>
Avatar billede Slettet bruger
06. maj 2008 - 18:43 #10
Mange tak! :-)
Jeg vil give det et forsøg i aften, så snart aftensmaden er overstået.. :-)
Avatar billede Slettet bruger
08. maj 2008 - 10:42 #11
Nu har jeg rodet lidt med det, men password er jo krypteret i SQL databasen fra mit forum, så kan jeg vel ikke bruge dem???
Avatar billede fennec Nybegynder
08. maj 2008 - 11:12 #12
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.
Avatar billede 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..
Avatar billede fennec Nybegynder
08. maj 2008 - 11:27 #14
Du kan lave et hurtigt tjek. Har alle passwords i database en fast længde? F.eks 36 tegn?
Avatar billede Slettet bruger
08. maj 2008 - 12:08 #15
Synes det ser ud til det er lidt blandet.. mellem 32 og 34
Avatar billede fennec Nybegynder
08. maj 2008 - 12:46 #16
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).
Avatar billede 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.

Er det noget man kan leje dig til at lave? :-)
Avatar billede fennec Nybegynder
08. maj 2008 - 13:17 #18
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.
Avatar billede 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);

echo "id: ".$result[id];
echo "<br>";

echo "brugernavn: ".$result[username];
Avatar billede fennec Nybegynder
08. maj 2008 - 14:13 #20
Det er en start ja :o)

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"])

der skal nok ikke meget mere til...
Avatar billede Slettet bruger
10. august 2008 - 19:32 #21
Hey Fennec, er du stadig på denne tråd?
Avatar billede fennec Nybegynder
25. august 2008 - 08:16 #22
Det er jeg nu. Har lige været på ferie.
Avatar billede Slettet bruger
26. august 2008 - 10:11 #23
Skønt, ja min er desværre overstået. Kan ikke vente til skiferie! :-)

Har du tid og energi til at hjælpe lidt mere med dette her? Er lidt lost..
Vil super gerne have det til at fungerer.
Avatar billede fennec Nybegynder
26. august 2008 - 10:24 #24
Selvføgelig :o)

Hvor langt er du kommet, og hvor sidder du fast?
Avatar billede Slettet bruger
20. november 2012 - 12:48 #25
svar
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester