Avatar billede gabi Novice
19. august 2007 - 00:41 Der er 48 kommentarer og
1 løsning

Upload billede til database

Fortsættelse af tidligere spørgsmål
http://www.eksperten.dk/spm/792094

Jeg har en medlemsliste, hvor en bruger har ønsket mulighed for at tilknytte et foto.

Fennec skrev sådan til mig:

Går ud fra du allerede har et upload script, som gemmer billeder i databasen. Det script skla vi have ændret til at gemme i en folder i stedet.

Kan du vise os den kode? Det behøver kun være selve ASP delen. Altså der hvor du kalder dit upload komponent og gemme i databasen.


Start med at tage et kik i manualen til ASPupload. De har rigtige gode kode eks.
Specielt denne side som kombinere fil og form felter. Der er det nemt at smide en database indsættelse ind i:
http://www.aspupload.com/manual_simple.html

Her har de et fuldt eks med den opbygning du har nu. Altså filerne gemmes binært i databasen, men også hvor de bare gemme filnavnet:
http://www.aspupload.com/manual_db.html

Jeg har kigget på de anbefalede link og har også fået lavet en formular og en asp-fil som uploader en billedfil til en mappe: upload, men jeg kan godt nok ikke finde ud af at få billedet ind i databasen.

Jeg har også lavet en database: db/aspupload.mdb

Column - Type - Description
id - Autonumber - Unique record ID
image_blob - OLE Object - Stores file BLOB
filename - Text (50) - Stores file name
filesize - Number - Stores file size
description - Text (255) - Stores file description
hash - Text (50) - Stores one-way hash value of file

Skal jeg bruge den også?

Koden i asp-filen ser sådan ud:

<%
    Set Upload = Server.CreateObject("Persits.Upload.1")

    Upload.OverwriteFiles = False
    On Error Resume Next

    Upload.SetMaxSize 1048576    ' Limit files to 1MB
    Count = Upload.Save(Server.MapPath("/upload"))
%>
<HTML>
<link href="file:///e|/Hjemmesider/Dreamweawer/TOENDER%20LIVE/stylesheet/iframe.css" rel="stylesheet" type="text/css">

<CENTER>

<% If Err <> 0 Then %>

   
    <H3>Følgende fejl opstod:</h3>
   

   
    <h2>"<% = Err.Description %>"</h2>
   

   
    <A HREF="uploadform.asp" class="link">prøv igen</A>
    <% Else %>

<h1>Tillykke! - dit billede er blevet uploaded</h1>



<TABLE BORDER=1 CELLPADDING=3 CELLSPACING=0>
<TH class="bg_raekke">Billede</TH>
<TH class="bg_raekke">Størrelse</TH>
<TH class="bg_raekke">Original størrelse</TH>
<TR>
<% For Each File in Upload.Files %>
    <% If File.ImageType = "GIF" or File.ImageType = "JPG" or File.ImageType = "PNG" Then %>
        <TD ALIGN=CENTER>
            <IMG SRC="/upload/<% = File.FileName%>"><BR><B><% = File.OriginalPath%></B><BR>
            (<% = File.ImageWidth %> x <% = File.ImageHeight %> pixels)
       
        </TD>
    <% Else %>
        <TD><B><% = File.OriginalPath %></B></TD>
    <% End If %>
    <TD ALIGN=RIGHT VALIGN="TOP"><% =File.Size %> bytes</TD>
    <TD ALIGN=RIGHT VALIGN="TOP"><% =File.OriginalSize %> bytes</TD><TR>
<% Next %>
</TABLE>

<P>

<% End If %>
Avatar billede weis Nybegynder
19. august 2007 - 12:52 #1
1. Du giver ikke brugeren tiladelse til at overskrife sit billed, hvilket vil sige hvis de vil ændre det, så får du en masse gamle billeder liggende på serveren!

jeg vil forslå at du gemmer dit billed med et filnavn svarende til brugerens id, så handler det bare om at omdøbe dit billed ved upload og så gemme det.

et lille eks:

<%
Set Upload = Server.CreateObject("Persits.Upload")
On Error Resume Next

Upload.SetMaxSize 1048576
Upload.save

Conn = Server.CreateObject("ADODB.Connection");
Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("xxx.mdb"));

Set rsAdd = Server.CreateObject("ADODB.RecordSet")               
AddSQL = "select * from brugere where id = " & 'evt. session("id")
rsAdd.Open AddSQL, Conn, 3, 3

for each file in Upload.Files

filsti = "d:\web\localuser\domain.dk\upload\"
filnavn = "profil_" & session("id") & "File.Ext

rsAdd.Update
    rsAdd("img") = filnavn
rsAdd.Update

rsAdd.close
set rsAdd = nothing
conn.close
set conn = nothing

file.saveAs (filsti & filnavn)

next
%>

det er ikke testet bare skrevet direkte, så skriv endelig hvis der er fejl
Avatar billede gabi Novice
19. august 2007 - 13:23 #2
weis

Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("xxx.mdb"));


xxx.mdb - er det = navnet på den database hvori billederne skal gemmes (den jeg har beskrevet ovenfor): hvis ja, er det så nok at udskifte xxx.mdb med aspupload.mdb når asp-filen ligger i en anden mappe?

Jeg har 3 mapper:
db (der hvor databasen aspupload.mdb ligger)
Avatar billede gabi Novice
19. august 2007 - 13:27 #3
hov kom til at trykke på send. Prøver lige igen

Jeg har 3 mapper:
db (der hvor databasen ligger: aspupload.mdb ligger)
aspupload (der hvor aspfilen og ligger: aspupload.asp)
upload (der hvor billedfilerne ligger: xxx.jpg)

En ting er asp-filen, men hvordan får jeg så lavet et felt i min formular, hvor brugeren indtaster personlige oplysninger, som kan bruges til at uploade billedet med.

Jeg tester lige dit forslag
Avatar billede gabi Novice
19. august 2007 - 13:51 #4
Jeg tror jeg har rodet med lidt for mange koder på en gang, da jeg forsøgt alt muligt med koderne fra de link jeg er blevet henvist til.

Og da jeg absolut ikke er nogen "ørn" til det, kan det være jeg lige skal tage den her forfra, så jeg har mulighed for at få den rigtige hjælp.

Formularen er det første mine brugere stifter bekendskab med, og det er den der sender data videre til min database. Det virker som det er nu, men en bruger har udtrykt ønske om muligheden for også at kunne sende/uploade et billede ved samme lejlighed, så man på spilleroversigten kan se dette billede.

Bare for at gøre historien kort, så hedder min formular: Spillerliste_tilmeld.htm og ligger i mappen asp. Det er i denne formular jeg ønsker mulighed for at kunne uploade et billede også.

Formularen har følgende felter: (som sendes til modtag.asp - og det virker)

formular / database

-/Nummer (= id autonummering)
navn / Navn
adresse / Adresse
postnr /Postnummer
by / Town
telefon / Telefonnummer
mail / Mailadresse
alder / Alder
brugernavn / Brugernavn
ingame / Ingame
karakter / Karakter
altkarakter / Altkarakter
pass / Password

Sig til hvis du/i har brug for koden i modtag.asp - jeg kunne forestille mig at den skulle rettes til hvis det skal hænge sammen - eller det kan man måske ikke.

Det er vist noget af en opgave der er blevet ønsket her....
Avatar billede weis Nybegynder
19. august 2007 - 13:53 #5
skal det være sådan at man vælger et billed når man opretter sig og så man ikke kan ændre det igen, eller skal det være sådan at man først kan tilføje et billed når man har tilmeldt sig - og på den måde kan ændre det når man vil?
Avatar billede gabi Novice
19. august 2007 - 13:54 #6
PS - skal jeg bruge den ekstra database (aspupload.mdb), eller er det nok med den jeg har med medlemmernes oplysninger (medlemmer.mdb)
Avatar billede gabi Novice
19. august 2007 - 13:55 #7
Man må gerne kunne skifte billedet ud, hvis man senere måtte ønske det (hvis det kan lade sig gøre)
Avatar billede weis Nybegynder
19. august 2007 - 13:55 #8
du skal bare bruge den med medlemmernes info i, du skal bare tilføje et felt der fx. hedder "img" og så gemmer man filnavnet i det felt
Avatar billede weis Nybegynder
19. august 2007 - 13:56 #9
det vil kræve du har en login funtion på din side, hvor en bruger kan logge ind til sine informationer!
Avatar billede gabi Novice
19. august 2007 - 13:57 #10
Jeg har en login funktion
Avatar billede gabi Novice
19. august 2007 - 13:58 #11
du skal bare tilføje et felt der fx. hedder "img"

Skal være et tekstfelt ikke sandt?
Avatar billede gabi Novice
19. august 2007 - 13:59 #12
Har nu tilføjet et tekstfelt der hedder Img
Avatar billede weis Nybegynder
19. august 2007 - 14:02 #13
okay, her er en side som skulle virke hvis du under dit login laver en session der hedder -- session("id") -- som kobles sammen med brugerens id i databasen, du skal bare ændre stierne ind til databasen og mappen med billeder og så rette table navnet til, men jeg har skrevet nogle kommentare i koden:

<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then

    Set Upload = Server.CreateObject("Persits.Upload")
    Upload.SetMaxSize 2000000
   
    Upload.save
   
    'hvis du allerede i toppen af dine sider har en databaseforbindelse til din bruger database, så skal du bare slette denne
    dim Conn

    function OpenConn( DBPath )
   
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath
   
    end function
   
    ' her skal hele stien indtil din database være
    OpenConn("d:/web/localuser/domain.dk/upload/db.mdb")
    ' ### her slutter database forbindelsen
   
    Set rsAdd = Server.CreateObject("ADODB.RecordSet")                   
    AddSQL = "select * from medlemmer where id = " & session("id")
    rsAdd.Open AddSQL, Conn, 3, 3

    for each file in Upload.Files
   
    ' her skal hele stien indtil den mappe hvori filerne skal ligge være
    filsti = "d:\web\localuser\domain.dk\upload\"
    ' billedet kommer fx. til at hedde "profil_4.jpg"
    filnavn = "profil_" & session("id") & File.Ext
   
        rsAdd.Update
            ' lav et felt i din bruger database som hedder "img" og det skal være tekst
            rsAdd("Img") = filnavn
        rsAdd.Update

    file.saveAs (filsti & filnavn)
   
    next
   
    conn.close
        set conn = nothing
end if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Upload</title>
</head>

<body>
<form name="img" method="post" action="" ENCTYPE="multipart/form-data">
<input name="fil" type="file" />
<input type="submit" name="button" value="Upload" />
</form>
</body>
</html>
Avatar billede gabi Novice
19. august 2007 - 16:13 #14
Undskyld, men jeg skal vist have det ind med "skeer"

Hvor skal jeg lige indsætte din kode? skal den indsættes i den fil hvor jeg har formularen (spillerliste_tilmeld.htm) eller.....

Jeg har endnu ikke fået lavet det sådan at den enkelte bruger kan rette/opdatere de oplysninger der allerede er givet. Mit login er endnu kun lavet sådan at de kan slette deres egen tilmelding.

Min modtag.asp ser sådan ud:

<%
'Validering af felterne alder og karakter
'Hvis feltet alder ikke indeholder et tal
'Hvis felterne navn ingame karakter og password er blanke
If Not isNumeric(Request.Form("alder")) Then Response.Write "<p>Du skal vælge en alder!</p>"
If Request.Form("navn")="" Then Response.Write "<p>Du skal skrive dit navn!</p>"
If Request.Form("ingame")="" Then Response.Write "<p>Du skal skrive dit navn ingame. Hvis du ikke har et skriver du bare: Ingen!</p>"
If Request.Form("karakter")="" Then Response.Write "<p>Du skal vælge en karakter. Hvis du ikke har valgt en karakter endnu, skal du vælge: Andet!</p>"
If Request.Form("brugernavn")="" Then Response.Write "<p>Du skal skrive et brugernavn!</p>"
If Request.Form("pass")="" Then Response.Write "<p>Du skal skrive et password!</p>"
Response.Write "<p><a href='java script:history.go(-1)' class='link'>Prøv igen</a></p>"
%>

<%
'Hvis det indtastede i felterne opfylder kravene så
If isNumeric(Request.Form("alder")) And Not Request.Form("karakter")="" And Not Request.Form("navn")="" And Not Request.Form("ingame")="" And Not Request.Form("pass")="" Then

'Databaseforbindelse
set conn = server.createobject("ADODB.connection")
conn.Open "DBQ=" & server.mappath("../db/medlemmer.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"

'Kontrollerer om brugernavn findes i forvejen
Set rs=Conn.Execute("SELECT [brugernavn] FROM [medlemmer] WHERE [brugernavn]='"&Request.Form("brugernavn")&"'")
If rs.EOF Then

' Tilføj data i database
strSQL = "Insert into Medlemmer (Navn, Ingame, Karakter, Altkarakter, Adresse, Postnummer, Town, Telefonnummer, Mailadresse, Alder, Brugernavn, Password) values('"&Request.Form("navn")&"', '"&Request.Form("ingame")&"', '"&Request.Form("karakter")&"', '"&Request.Form("altkarakter")&"', '"&Request.Form("adresse")&"', '"&Request.Form("postnr")&"', '"&Request.Form("by")&"', '"&Request.Form("telefon")&"','"&Request.Form("mail")&"','"&Request.Form("alder")&"','"&Request.Form("brugernavn")&"','"&Request.Form("pass")&"')"

' SQL sætning eksekveres
Conn.Execute(strSQL)

'Sender en til kvittering
    response.Redirect("tilmeld_kvittering.htm")

'Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

<%
'Hvis brugernavn findes i forvejen
Else
  Response.Write "Dette brugernavn findes allerede!"
End If
%>

<%
'Slut
End If
%>
Avatar billede weis Nybegynder
19. august 2007 - 16:31 #15
den kode jeg sendte er en fil du fx kan kalde upload.asp og så kan den "stå alene".

For at teste den kan du lave et link til siden "upload.asp" når man er logget ind og så prøv at uploade et billed der!
Avatar billede gabi Novice
19. august 2007 - 16:37 #16
okay så - det nørkler jeg lige med så
Avatar billede gabi Novice
19. august 2007 - 17:30 #17
' her skal hele stien indtil den mappe hvori filerne skal ligge være
    filsti = "d:\web\localuser\domain.dk\upload\"

Det forstår jeg ikke helt:
http://www.toenderlive.dk/upload - kan se at der er \ i din filsti

skal der så blot stå filsti = "\upload\"
Avatar billede weis Nybegynder
19. august 2007 - 17:42 #18
det er fordi jeg altid bruger hele stien indtil mappen (det er stien på serveren), du kan sikkert se hvordan den ser ud hos din udbyder, men ellers hvis mappen upload ligger i den mappe scriptet ligger i kan du bare bruge:

filsti = Server.MapPath("/upload/")
Avatar billede gabi Novice
19. august 2007 - 18:36 #19
hmm - det virker ikke helt.

Jeg får fint nok reg. profil_1.jpg i feltet Img i min database, men jeg kan ikke se billedet i mappen upload- kan du se hvorfor?

' her skal hele stien indtil den mappe hvori filerne skal ligge være
    Upload.SetMaxSize 1048576    ' Limit files to 1MB
    filsti = Server.MapPath("/upload/")
    ' billedet kommer fx. til at hedde "profil_4.jpg"
    filnavn = "profil_" & session("id") & File.Ext
Avatar billede weis Nybegynder
19. august 2007 - 18:44 #20
måske man ikke kan bruge Server.MapPath("/upload/") her så...! kan du ikke finde hele stien til din mappe hos din udbyder, kan være man kun kan bruge det! jeg kan ikke se nogle eks. med andet inde på aspUploads, egen side!
Avatar billede gabi Novice
19. august 2007 - 18:56 #21
Dette eks. har jeg fundet via support hos web10/min udbyder

' her skal hele stien indtil den mappe hvori filerne skal ligge være
Upload.SetMaxSize 1048576 ' Limit files to 1MB
Count = Upload.Save(Server.MapPath("/upload"))

Men så får jeg denne fejl. Jeg har haft dette til at virke i forb. med en simpel formular til upload, men i denne sammenhæng her, virker det åbenbart ikke.

Persits.Upload.1 error '800a003e'
Save method must not be called more than once.
/asp/upload.asp, line 33

Linie 33 = Count = Upload.Save(Server.MapPath("/upload"))
Avatar billede weis Nybegynder
19. august 2007 - 19:06 #22
i det script jeg lavede tidligere brugte jeg ikke det der Count = Upload.save...

men hvis du går tilbage til det jeg lavede og skifter:

file.saveAs (filsti & filnavn)

ud med:

file.saveAs server.MapPath("upload\" & filnavn)

så skulle det også gerne virke...!
Avatar billede gabi Novice
19. august 2007 - 19:31 #23
pyha - mange mange tak - så virker det.

' her skal hele stien indtil den mappe hvori filerne skal ligge være
    Upload.SetMaxSize 1048576 ' Limit files to 1MB
    filsti = Server.MapPath("/upload/")

og

file.saveAs server.MapPath("\upload\" & filnavn)

der skulle lige en \ foran upload.

Jeg fandt vist stien til mit webhotel nu

Stien til dit UNIX-webhotel afhænger af dit kundenummer.

Er dit kundenummer web1234 vil stien se således ud:

/home/web/web1234

men nu piller jeg ikke mere ved det - nu virker det jo.

Nu mangler jeg bare at kunne hente billedet ind i f.eks. min spillerliste, så man kan se det på hjemmesiden.

Skal jeg så lave et nyt spørgsmål?
Avatar billede weis Nybegynder
19. august 2007 - 19:38 #24
nej du kan bare blive ved her
Avatar billede gabi Novice
19. august 2007 - 19:45 #25
ok - så får jeg nok sparet nogle flere point sammen til dig efterhånden, for du fortjener noget mere.

Så må jeg nok heller sætte dig lidt ind i hvordan det fungerer på min side lige nu.

Jeg begyndte med at lave det sådan at man kunne se en spilleroversigt, samt muligheden for at tilmelde sig til listen.
Så ønskede jeg at man kunne slette sig selv igen - og kun sig selv.
Til det formål fik jeg hjælp til at lave en loginfunktion som sender en til faktisk den samme spilleroversigt, men hvor der ved ens egne oplysninger er et link til Slet fra spillerlisten.
Jeg tænkte på om det ikke ville være smartere at have f.eks. en generel login-funktion som sender en til en oversigt med link til de forskellige muligheder man har, når man først er tilmeldt til listen.
Det kunne f.eks. være link til
At rette i eksisterende data
Uploade et billede (som vi lige har lavet kode til)
Slette sig selv fra listen
Se sine egne oplyste data
Eller andet.

Har du et forslag til hvordan sådan noget kunne laves? eller er det meget "kringlet"?
Avatar billede gabi Novice
19. august 2007 - 19:53 #26
Det kunne godt være vi lige skulle gøre det med billedet færdigt først.

Jeg skulle gerne kunne se det på spillerlisten

' Udskriv værdien af kolonnen Fornavn
  Response.Write "<p><strong>ID:</strong>" &" "  & rs("Id") &"</p>"
  Response.Write "<p><strong>Navn:</strong>" &" "  & rs("Navn") &"</p>"
  Response.Write "<p><strong>Karakter:</strong>" &" "  & rs("Karakter") &"</p>"
  Response.Write "<p><strong>Anden karakter:</strong>" &" "  & rs("Altkarakter") &"</p>"
  Response.Write "<p><strong>In-game:</strong>" &" "  & rs("Ingame") &"</p>"
  Response.Write("<img src='" & rs("Img") & "'>") &"</p>"
  Response.Write "<p><a href='liste.asp' class='link'>Slet fra spillerlisten</a></p>"&"</p>"

Der hvor billedet egentlig skulle være er der et rødt x - er det noget med databasen er det ikke? Skal der ikke på en eller anden måde linkes til det rigtige billede?
Avatar billede weis Nybegynder
19. august 2007 - 20:06 #27
1.
Det er ikke kringlet at lave en side som indeholder login og de andre ting. Man skal lige tænke over hvor stor den del skal være (om man kan nøjes med alt i en fil, eller om det skal være flere filer) du kan sikkert genbruge noget af den kode du har.

2.
Det er fordi at rs("img") kun indeholder filnavnet, du skal lige have mappen upload/ foran.
Avatar billede gabi Novice
19. august 2007 - 20:13 #28
Mener du sådan:

Response.Write("<img src='" & rs("upload/Img") & "'>") &"</p>"  = linie 37

Det giver fejl

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/asp/spillerliste.asp, line 37

skal lige nævne at spillerliste.asp ligger i mappen asp, og mappen upload med billederne ligger i roden
Avatar billede weis Nybegynder
19. august 2007 - 20:15 #29
prøv denne:

Response.Write("<img src='../upload/" & rs("Img") & "'>") &"</p>"
Avatar billede gabi Novice
19. august 2007 - 20:18 #30
super - det virker, så er det kun hos de spillere, som ikke har uploadet et billede, at der er et rødt x, men det kan man garanteret også undgå på en eller anden snedig måde...
Avatar billede weis Nybegynder
19. august 2007 - 20:21 #31
ja du kan skrive:

if rs("img") <> "" then
Response.Write("<img src='../upload/" & rs("Img") & "'>") &"</p>"
end if

et spg. ang. brugersystem

jeg kan se at du har databasen "medlemmer" med al info omkring brugeren, hvordan virker det så når de skal tilmelde sig og afmelde sig et spil?
Avatar billede gabi Novice
19. august 2007 - 20:31 #32
Jeg laver hjemmeside for en live rollespilsforening - de skal ikke spille på nettet, hvis det er det du mener.

Det er bare en liste med personlige oplysninger som navn, adresse, etc. og karakteroplysninger i forb. med live rollespil.

Når jeg skriver tilmeld mener jeg bare at de sender deres personlige oplysninger til databasen.

Man kan side at det er et medlemsregister/arkiv/oversigt eller hvad du nu vil kalde det.

Jeg prøver lige med din kode og vender tilbage.
Avatar billede gabi Novice
19. august 2007 - 20:34 #33
Flot - den virkede første gang ;-)
Avatar billede weis Nybegynder
19. august 2007 - 21:43 #34
jeg har lige prøvet at "strikke" et loginsystem sammen, som du kan se og test på http://www.aweis.dk/eksperten/login.asp her kan det også downloades.

Det er ikke gjort noget ud af design ;) det er rent tekst
Avatar billede gabi Novice
19. august 2007 - 21:47 #35
Det lyder rigtig spændende - jeg er ved at rette lidt i design på det andet, så det kan jeg vel også med det du har strikket sammen til mig.

Det kigger jeg på, og så hører du fra mig igen.

Jeg ved slet ikke hvordan jeg skal takke for den store tålmodighed du har med mig, det er skønt med den hjælp jeg får.

Men du arbejder måske også med sådan noget til daglig...
Vi skrives ved igen herinde, når jeg har kigget på dine sager.
Avatar billede gabi Novice
19. august 2007 - 21:48 #36
Jeg har downloadet systemet nu - tak
Avatar billede gabi Novice
20. august 2007 - 20:23 #37
Hej Weiss

Nu er jeg så igang med dit loginsystem.

Jeg har været nødt til at rette lidt hist og pist, fordi mine feltnavne er lidt anderledes end dine.

Men jeg kan ikke få login.asp til at fungere - ligemeget hvad jeg gør, får jeg at vide at brugernavn ikke findes.

Din kode ser sådan ud, og jeg synes umiddelbart at der er nogle uoverensstemmelser mellem feltnavnet bruger i formen og andre steder i koden.

Denne kode er en uredigeret kopi af din kode:

<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then

Dim strBruger, strPass
strBruger = Trim(Replace(request.form("brug"),"'","''" ))
strPass = Trim(Replace(request.form("pass"),"'","''" ))

    dim Conn

    function OpenConn( DBPath )
   
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath
   
    end function
   
    OpenConn(server.MapPath("db.mdb"))

    LogSQL = "SELECT * FROM medlemmer where brugernavn = '" & strBruger & "' AND pass = '" & strPass & "'"
    Set rsLog = Conn.Execute(LogSQL)

    If rsLog.BOF Or rsLog.EOF Then
        response.write "Brugeren findes ikke i databasen"
    else
   
        Session("id") = rsLog("Nummer")
        Session("login") = true
        Session.Timeout=15

        response.Redirect("profil.asp")
    end if

    rsLog.Close
    Set rsLog = Nothing

end if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>
<form name="login" method="post" action="">
E-mail: <input name="brug" type="text">
(test)<br>
Password: <input name="pass" type="password">
(test)<br>
<input name="Submit" type="submit" value="Login">
</form>
<p><a href="opret.asp">Hvis brugeren er blevet slettet s&aring; klik her og der oprettes en ny bruger</a></p>
<p>&nbsp;</p>
<p><a href="login.zip">download systemet</a></p>
</body>
</html>
Avatar billede gabi Novice
20. august 2007 - 20:25 #38
ps i min database har jeg kaldt feltet bruger for Brugernavn (ved ikke om det har nogen betydning om man skriver med stort beg.bostav i aspkoden også)
Avatar billede gabi Novice
20. august 2007 - 20:43 #39
nå nu fik jeg det til at fungere ved at kopiere fra mit "gamle" login

If Not (rsLog.BOF Or rsLog.EOF) Then
   
        'tildeler session("id") brugers eget idnr
        Session("id") = rsLog("Id")
        'tildeler session("login") værdien true, til kontrol af login
        Session("login") = true
        'Ændre udløbstiden for sessionen til 15 min
        Session.Timeout=15
       
        'sender bruger til den beskyttede side ved login
        response.Redirect("profil.asp")
    else
        'skriver fejlbeked, hvis oplysningerne ikke er korrekte
        response.write "fejl i login - prøv igen"
    end if
Avatar billede gabi Novice
20. august 2007 - 20:46 #40
Hvad skal opret.asp bruges til? - den kan jeg ikke lige gennemskue.

Kan jeg ikke bruge min gamle opret-fil hvor jeg har en formular som skal udfyldes og som sender data til modtag.asp?
Avatar billede gabi Novice
20. august 2007 - 21:18 #41
Hvad skal opret.asp bruges til? - den kan jeg ikke lige gennemskue.

Spm. 2 trækker jeg lige tilbage indtil du har svaret på ovenstående.

Desuden har jeg i f.eks. profil.asp indsat følgende i <head></head>

<link href="../stylesheet/iframe.css" rel="stylesheet" type="text/css">

Men skriften bliver alt for stor så. Skal det skrives på en anden måde eller hvordan formaterer man så det kommer til at se fornuftigt ud?
Avatar billede thesurfer Nybegynder
20. august 2007 - 21:20 #42
gabi> Nu har jeg fulgt spørgsmålet i noget tid, og det ser ud til, at du er lidt ude på dybt vand..
Derfor vil jeg anbefale, at du sætter dig ned på læser noget mere om ASP, før du fortsætter med flere projekter.
Dit programmeringsniveau i ASP er simpelthen for lavt, til at kunne arbejde med de ting du ønsker.

Du er sådan set, hvor jeg var, for ca 7 år siden (eller deromkring):
Jeg havde en masse idéer, men manglede viden indenfor programmering i ASP.

Så jeg satte mig ned, og læste en masse tutorials, bl.a. dem på HTML.dk.
Mange vil sikkert ryste på hovedet over at jeg nævner HTML.dk, men de har nogle udmærkede tutorials til nybegyndere.

Det kan godt være, at du har leget med ASP i noget tid, men for mig virker det, som om du stadig er en nybegynder.

At lege med ASP er fint nok. Men det gælder om at blive bedre til det, hvis man vil opnå noget. Ellers bliver man for afhængig af andre folk.
Når man "kan" HTML, CSS, JavaScript, ASP og/eller f.eks. PHP godt nok til, at man kan nøjes med Notepad, eller ligende simple tekstredigeringsprogrammer, vil jeg mene at man er nået niveauet "god".

Når jeg siger "kan", betyder det ikke at man udelukkende bruger disse simple programmer, da det ville være fjollet (mener jeg) ikke at bruge en editor, der hjælper med at skrive god kode, sætte farten op, har syntax highlighting og ligende.. Hvis man vil, kan man dog godt nøjes med dem.. det er op til en selv.


Mit råd til dig er:
Læs samtlige lektioner på http://www.html.dk/tutorials/asp/ igennem, flere gange.
Med "flere gange" mener jeg, mindst 4-5 gange, så du kan huske hvordan koden bruges, men ikke huske en "direkte kopi" af siden! :-)

Når det er på plads, kan du vende tilbage til lektionerne, engang i mellem, når du er i tvivl om noget.

Og så er der jo internettet, hvor der er en masse søgemaskiner, og guides på nettet.


Det er en meget befriende oplevelse man får, når man laver sit første database-system, på egen hånd.


Og til sidst, besvarelse på dit spørgsmål i 20/08-2007 20:46:56:
Ja, du kan godt bruge din egen opret.asp.

Så vidt jeg kan se, er der sådan set kun 1 grund til, at weis har lavet den fil:
Da http://www.aweis.dk/eksperten/login.asp er en demo side (hvor alle har adgang), der har en "slet bruger"-funktion, kan man ikke logge ind, hvis en eller anden har slettet brugeren.
weis har så valgt at gøre det meget nemt, for en besøgende, at teste siden, selvom der ikke er oprettet en bruger. Nemlig ved at oprette en bestemt bruger (hardcodede data), ved bare klikke på et link.

Husk:
Intet i dette indlæg var ment som en fornærmelse, men som oplysning så du kunne forbedre dig.
Om du faktisk læser lektionerne, og bliver bedre til ASP, er helt op til dig.
Nu ved du bare, hvordan du kan blive bedre til (bl.a.) ASP..
Avatar billede gabi Novice
20. august 2007 - 21:39 #43
Hej thesurfer

Mange tak for alle dine gode råd - ja jeg er nybegynder og grøn - det har jeg heller ikke lagt skjul på.
Jeg har faktisk startet med Anders And og Andersine på html.dk, og ud fra dette fik jeg det første lavet på egen hånd.
Jeg har også rettet i de forslag jeg har fået og efterfølgende fået dem til at virke hvis de ikke lige virkede i første omgang.
Jeg har også tilrettet i alt det jeg har fået af weis - og det virker faktisk nu.

Havde faktisk selv opfattelsen af at jeg i mit projekt ikke skulle bruge opret.asp til noget - fandt ud af, at da jeg brugte den fik jeg bare oprettet en fiktiv bruger i min database (en testbruger). Desuden kan man jo hurtigt finde ud af om den overhovedet skal bruges, ved ikke at uploade den til serveren.

Jeg har også været rundt i alle spørgsmålene her på eksperten.dk for at finde noget tilsvarende mit eget.

Jeg opfatter slet ikke dit indlæg som nogen fornærmelse.

Alt hvad jeg kan vedr. hjemmesider, databaser o.l. er fuldstændig selvlært ved at kigge mig omkring, og bare prøve og se hvad der sker.

Og med hensyn til html.dk - sååå - jo det hjælper i starten, men så hellere ikke længere. Men jeg er også godt klar over at man ikke lærer ASP på et øjeblik.

Jeg bruger forøvrigt Dreamweaver som også er selvlært ved blot at prøve mig frem.
Avatar billede gabi Novice
20. august 2007 - 22:31 #44
Glem mit spørgsmål mht mit stylesheet - har fundet úd af problemet med skriftstørrelsen.
Avatar billede thesurfer Nybegynder
20. august 2007 - 23:10 #45
Er der stadig problemer?
Avatar billede gabi Novice
21. august 2007 - 01:34 #46
Nej - det kører rigtig godt og jeg synes selv jeg har fået lavet et pænt layout efterhånde.
Jeg venter lige på at jeg får nogle flere point og så må weis gerne lægge et svar.
Det er bare super hjælp jeg her har fået. Så nu kan jeg klare mig et langt stykke tid igen.
Har ikke planer om flere projekter af den slags, jeg er rigeligt dækket ind.
Fik jo pludselig alt det jeg skulle bruge på én gang.
Vil gerne give weis lidt flere point end de 30 jeg startede ud med. Lige i øjeblikket har jeg 25 tilbage. Kan man egentlig godt give flere point end det man er startet med?
Avatar billede gabi Novice
21. august 2007 - 09:53 #47
Hej weis.

1.000 tak for hjælpen. Jeg blev helt overvældet over det materiale du stillede til rådighed, så meget hjælp havde jeg helt ærligt slet ikke forventet, så jeg blev glædeligt overrasket.
Hvis du skulle have lyst til at se resultatet kan du se det her http://www.toenderlive.dk/asp/sog_karakter.shtml - hvis du logger ind på Spillerområdet med gabi/gabi.

Jeg har nu optjent yderligere 30 point, som jeg kan lægge oveni de 30 jeg på denne tråd har tilbudt i forvejen, så hvis du lægger et svar, kan du få dine point.

Du får helt sikkert også noget karma på det her
Avatar billede weis Nybegynder
21. august 2007 - 12:08 #48
De 30 point fra start er fint, det handler jo om at hjælpe ikke, at hive point til sig
Avatar billede gabi Novice
21. august 2007 - 12:24 #49
Det har du ret i, men jeg syntes bare at du har brugt så meget tid på mig "ybegynder" og så fordi jeg var så positivt overrasket over al den hjælp jeg fik.

Må se om jeg på en eller anden måde kan lære lidt mere om ASP, så jeg selv kan noget mere.

Nu ville jeg bare så gerne have det til at køre hurtigst muligt, så jeg har tid til at sidde og lege med sådan nogle ting i ro og mag.

Nok en gang 1.000 tak
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