Avatar billede hojben Novice
19. april 2013 - 14:04 Der er 11 kommentarer og
1 løsning

Webside med login til at vise eet billede.

Scenarie:
En eller flere skærme skal vise en bestemt www-side.
Indholdet af denne side skal bestemmes af hvad der er valgt fra admin delen. (mulighed for at vælge fx 5 billedfiler)
Der skal programmeres noget login til admin delen.

Skal laves som både asp og php da jeg pt ikke er sikker på hvilken platform det ender på.

Tænker at der skal laves 2 sider i alt.
Avatar billede Slettet bruger
19. april 2013 - 14:42 #1
Jeg skulle nok kunne hjælpe med ASP delen, men skal nok vide lidt mere om hvordan og hvorledes.
Du kan skrive til mig på osj@device.dk, så kan vi snakke nærmere.
Jeg kender nok også end er kan lave php delen.
Avatar billede hojben Novice
19. april 2013 - 15:06 #2
Forsiden skal kun være et billede.
Admindelen skal der være mulighed for at vælge hvilket billede der skal vises på forsiden. Intet andet.
En valgmulighed for at vælge de filer der ligger i en undermappe.

Håber det er forståeligt nok.. Koden skal jo præsenteres herinde, så den går ikke over mail..
Avatar billede Slettet bruger
20. april 2013 - 10:10 #3
Umiddelbart lyder det ikke som en stor opgave, men hvad med databasen bag, der skal være et eller andet at trække brugere fra og du skal kunne styrer de her brugere og hvilke billeder de kan vælge imellem eller hvordan?
Avatar billede hojben Novice
20. april 2013 - 16:35 #4
Der skal bare være een bruger og billedet der skal vises skal trækkes fra en bestemt mappe. Database er nok lidt voldsomt? Kan det ikke klares med et script?

Mht billederne tænker jeg at man har en optionboks som lister indholdet af en bestemt mappe.

Indholdet af "sitet" tænker jeg ville være:

Root
Billeder

I root ligger default.asp og login.asp
I Billeder ligger fx 1.jpg, 2.jpg, 3.jpg etc etc.
Avatar billede Slettet bruger
20. april 2013 - 18:53 #5
Jo det kan sagtens laves som en del af scriptet.
Så der skal være en forside der tager det valgte billede.
Så skal der være en login side, hvor man kan vælge hvilket billede forsiden skal vise, ud fra en bestemt mappe.
Avatar billede hojben Novice
21. april 2013 - 08:31 #6
Jeps. lige præcis.. Kan du lave det?
Avatar billede Slettet bruger
21. april 2013 - 22:27 #7
Ja det skulle jeg mene :) men som sagt kun i ASP.
Jeg skal dog lige finde ud af hvor informationen om hvilket billede der er valgt kan/skal gemmes når der nu ikke er nogen database, men det bliver nok bare en fil man indsætter/overskriver informationen i og så læses der fra den på forsiden.
Avatar billede hojben Novice
29. april 2013 - 20:30 #8
Er du kommet længere??
Avatar billede Slettet bruger
03. maj 2013 - 12:54 #9
Ja jeg har fundet en løsning, men kan ikke skrive til filen på den server jeg ligger på, da rettighederne ikke tillader det.

Men hvis du ser her kan du se siden der loader baggrundsbilledet fra filen:
http://e-demo.dk/background/background.asp

Her er det den læser filerne fra mappen og man kan vælge, men den kan så pt. ikke ændre hvilken der er valgt i filen, pga. sikkerheden:
http://e-demo.dk/background/

Login ind med
brugernavn: test
kodeord: testtest
Avatar billede hojben Novice
03. maj 2013 - 22:09 #10
Det ser dejlig lækkert ud :) Hvis du poster koden(erne) her og smider et svar så skal jeg acceptere det :) Ligger i flytterod så der kan gå en dags tid eller to :)
Avatar billede Slettet bruger
04. maj 2013 - 15:25 #11
Som jeg skrev er det ikke det hele der virker, eller jeg er sikker på virker, det er også lidt svært at give koden her, men jeg kan poste det vigtige af det, så kan du selv sætte det sammen og ændre det som du ønsker.

Koden til siden der læser fra filen og viser baggrunds billedet, så det er bare en alm. asp fil.
Beskrivelse: Første del går ned finder filen background.txt i mappen backgroundfile og læser den, den sætter så variablen Line og det er denne der indsættes nede som baggrundsbillede, da indholdet af filen bare er en linie med et billede navn.
Næste del er så bare scripts og styling, der er script for at baggrunden er responsive og ændre størrelse så den passer på skærmen hvis man resizer sit vindue op eller ned.
Sidste del er selve baggrundsbilledet der indsættes med parametren fra filen.

<%
Const Filename = "background.txt"    ' file to read
Const ForReading = 1
Const TristateUseDefault = -2

' Create a filesystem object
Dim FSO
set FSO = server.createObject("Scripting.FileSystemObject")

' Map the logical path to the physical system path
Dim Filepath
Filepath = Server.MapPath("\") & "/background/backgroundsfile/" & Filename
'Filepath = Server.MapPath(Filename)

if FSO.FileExists(Filepath) Then

    ' Get a handle to the file
    Dim file   
    set file = FSO.GetFile(Filepath)

    ' Open the file
    Dim TextStream
    Set TextStream = file.OpenAsTextStream(ForReading, TristateUseDefault)

    ' Read the file line by line
    Do While Not TextStream.AtEndOfStream
        Dim Line
        Line = TextStream.readline
   
        ' Do something with "Line"
        Line = Line & vbCRLF
    Loop

    Set TextStream = nothing
   
End If
%>

<html>
<head>
<title>Test Background</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="robots" content="noindex, nofollow" />

<style type="text/css">
body,td,th {
    font-size: 11px;
    font-family: Arial, Helvetica, sans-serif;
    color: #000000;
}
body {
    background-color: #333;
    margin: 0px;
}

#bg { position: fixed; top: 0; left: 0; }
.bgwidth { width: 100%; }
.bgheight { height: 100%; }
</style>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
$(window).load(function() {   

        var theWindow        = $(window),
            $bg              = $("#bg"),
            aspectRatio      = $bg.width() / $bg.height();

        function resizeBg() {

                if ( (theWindow.width() / theWindow.height()) < aspectRatio ) {
                    $bg
                        .removeClass()
                        .addClass('bgheight');
                } else {
                    $bg
                        .removeClass()
                        .addClass('bgwidth');
                }

        }

        theWindow.resize(function() {
                resizeBg();
        }).trigger("resize");

});
</script>
</head>
<body>

<img src="backgrounds/<%= Line %>" id="bg" class="bgwidth" />

</body>
</html>


Login til administrationsdelen.
Beskrivelse:
Første del er selve tjekket, dvs. at formen på siden kalder samme side og hvis man har leveret de oplysninger man skulle, så bliver man sendt videre til default.asp ellers bliver man på siden her og får en fejl besked

<%
Msg = CStr(Request.QueryString("Msg"))
if request ("mode") = "login" then

Login = Request.Form("bruger")
Password = Request.Form("pass")

    'Hvis brugeren er korrekt
    if Login = "test" and Password = "testtest" then
        session("login") = True
        Response.redirect "default.asp"
    else
        'Hvis brugeren ikke var i databasen
        Response.redirect "log.asp?Msg=Forkert Brugernavn og/eller Adgangskode"
    end if

end if
%>

<html>
<head>
<title>Test - Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="robots" content="noindex, nofollow" />

<link href='http://fonts.googleapis.com/css?family=Linden+Hill' rel='stylesheet' type='text/css'>

<style type="text/css">
body,td,th {
    font-size: 11px;
    font-family: Arial, Helvetica, sans-serif;
    color: #000000;
}
body {
    background-color: #333;
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
}
#wrapper {
    position:absolute;
    margin:auto 0;
    width:500px;
    background-color:white;
    -moz-border-radius:0.5em;
    border-radius:0.5em;
    padding:50px;
    top:100px;
    left:50%;
    margin-left:-300px;
    z-index:20;
}
#infopane {
    width: 130px;
    margin:auto 0;
    float:left;
    padding:30px;
}
#functionpane {
    width: 200px;
    float:left;
    padding:10px;
}
.inputfieldBlue {
    background:#FFF;
    border: 1px solid #CCC;
    -moz-border-radius:0.5em;
    border-radius:0.5em;
    color:#999;
    width: 150px;
    height: 25px;
    padding: 4px;
}

#bg { position: fixed; top: 0; left: 0; }
.bgwidth { width: 100%; }
.bgheight { height: 100%; }

#header h2 {
    font-family: 'Linden Hill', Arial, serif;
    font-weight:400;
    font-size:26px;
    margin:0;
    padding:0;
}
</style>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
function loginClear(inputField)
{
    switch(inputField)
    {
    case "bruger":
        if (document.getElementById(inputField).value == "Brugernavn")
        {
            document.getElementById(inputField).value = ""
        }
        break;
    case "pass":
        if (document.getElementById(inputField).value == "Kodeord")
        {
            document.getElementById(inputField).value = ""
        }
        break;
    default:
    }
}
function loginFill(inputField)
{
    switch(inputField)
    {
    case "bruger":
        if (document.getElementById(inputField).value == "")
        {
            document.getElementById(inputField).value = "Brugernavn"
        }
        break;
    case "pass":
        if (document.getElementById(inputField).value == "")
        {
            document.getElementById(inputField).value = "Kodeord"
        }
        break;
    default:
    }
}

$(window).load(function() {   

        var theWindow        = $(window),
            $bg              = $("#bg"),
            aspectRatio      = $bg.width() / $bg.height();

        function resizeBg() {

                if ( (theWindow.width() / theWindow.height()) < aspectRatio ) {
                    $bg
                        .removeClass()
                        .addClass('bgheight');
                } else {
                    $bg
                        .removeClass()
                        .addClass('bgwidth');
                }

        }

        theWindow.resize(function() {
                resizeBg();
        }).trigger("resize");

});
</script>
</head>
<body>

<img src="images/background.jpg" id="bg" class="bgwidth" />

<form action="log.asp" method="post">
<input type="hidden" Name="Mode" Value="login">

<div id="wrapper">
    <div id="infopane">
        <img src="images/lock.png" width="128" height="128">
    </div>
    <div id="functionpane">
        <table border="0" cellpadding="5" cellspacing="0" align="center">
              <tr>
                <td id="header"><h2>ADMINISTRATOR LOGIN</h2></td>
              </tr>
              <tr>
                <td class="redtext"><%= Msg %></td>
              </tr>
              <tr>
                <td class="whitetext"><input name="bruger" type="text" id="bruger" value="Brugernavn" onFocus="loginClear('bruger');" onBlur="loginFill('bruger');" class="inputfieldBlue"></td>
              </tr>
              <tr>
                <td class="whitetext"><input name="pass" type="password" id="pass" value="Kodeord" onFocus="loginClear('pass');" onBlur="loginFill('pass');" class="inputfieldBlue"></td>
              </tr>
              <tr>
                <td><input type="submit" name="Submit" value=" Login " class="inputfieldBlue"></td>
              </tr>
          </table>
    </div>
    <div style="clear:both;"></div>
</div>

</form>

</body>
</html>


Administrationssiden:
Her loader den egentlig bare filerne fra mappen med billeder, men den gør ikke andet, da jeg som sagt ikke kan skrive til textfilen, hvilket billede den skal vælge.
<%
            Const Filename = "background.txt"    ' file to read
            Const ForReading = 1, ForWriting = 2, ForAppending = 3
            Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

            ' Create a filesystem object
            Dim FSO
            set FSO = server.createObject("Scripting.FileSystemObject")

            ' Map the logical path to the physical system path
            Dim Filepath
            Filepath = Server.MapPath("\") & "/background/backgroundsfile/" & Filename
            'Filepath = Server.MapPath(Filename)

            if FSO.FileExists(Filepath) Then

                ' Get a handle to the file
                Dim file   
                set file = FSO.GetFile(Filepath)

                ' Open the file
                Dim TextStream
                Set TextStream = file.OpenAsTextStream(ForReading, TristateUseDefault)

                ' Read the file line by line
                Do While Not TextStream.AtEndOfStream
                    Dim Line
                    Line = TextStream.readline
               
                    ' Do something with "Line"
                    Line = Line & vbCRLF
                Loop

                Set TextStream = nothing
               
            End If


            dim thefolder, strfile

            thefolder=server.mappath("\") &"/background/backgrounds/"

            set f = FSO.getfolder(thefolder)
            set fl = f.files    ' list of files

            for each strfile in fl

                if left(Line,2) = left(strfile.name,2) then
                    response.write ("<div class='image-content active' data-image=''><div class='image-image'><img src='backgrounds/" & strfile.name & "' /></div><div class='image-icon hide'><img src='images/icon_pencil.png'></div></div>")
                else
                    response.write ("<div class='image-content' data-image=''><div class='image-image'><img src='backgrounds/" & strfile.name & "' /></div><div class='image-icon hide'><img src='images/icon_pencil.png'></div></div>")
                end if

            next

            set f = nothing
            set fl = nothing
            Set FSO = nothing
            %>
Avatar billede hojben Novice
05. maj 2013 - 08:53 #12
Kan ikke helt hitte 100% rede i det så gider du sende det hele (filer og mapper) til exp@vejs.dk ?
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

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