Webshop, Joakimweb.com

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Ändrade lite i designen på den (Samma tema som det är på min PHP hemsida som night_smoke har gjort), vad tycker ni om det? Den blå'a bakgrundsfärgen ska inte vara kvar där.
http://www.crazycasemod.se/webshop/Webs ... efault.asp

Antagligen så ska night_smoke hjälpa till och ändra så att det blå försvinner och webshopen täcker hela skärmen.

pern: Tack! Ska säga till om jag får några problem igen :)
pern
Inlägg: 700
Blev medlem: 14 juli 2004, 08:47:36
Ort: Landskrona

Inlägg av pern »

i default.asp ändra


<table width="670" border="0" align="center"

till

<table width="100%" border="0" align="left"

så fyller den hela skärmen i bredd. Samt


<body bgcolor="#D2DCE6" text="#000000" leftmargin="" topmargin="0">

till

<body bgcolor="#FFFFFF" text="#000000" leftmargin="" topmargin="0">


så försvinner den blå bakgrunden
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

pern: Nja, pga. grafiken är det inte riktigt så lätt fixat. Mycket av grafiken består av bilder, så det kommer bli helt fel då.

Han (night_smoke) har original grafiken som han gjorde för php webshopen, så han håller på att fixar in den :). Men tack i alla fall! Jag håller på med ett annat litet projekt i ASP, så den kanske jag behöver lite hjälp med sen. I så fall skriver jag här :)

Edit: Hmm, Det var lätt :). Nu har jag gjort mitt första egna ASP program.

Kod: Markera allt

<%@ Language=VBScript %> 
<% Response.Buffer = True %> 

<html>
<body>
<%
Response.Redirect "http://www.CrazyCaseMod.se/webshop/webshop-asp/default.asp"
%>
</body>
</html>
Jag har döpt filen till index.asp och lagt i www.crazycasemod.se/webshop , vilket gör att man bara behöver skriva in den adressen för att komma till webshopen :). Också kan man lägga en i på adressen " http://www.crazycasemod.se/shop " så kommer man till webshopen om man skriver den adressen också :)
pern
Inlägg: 700
Blev medlem: 14 juli 2004, 08:47:36
Ort: Landskrona

Inlägg av pern »

;-)

Litet kodningstips, försök undvika att lägga ASP-kod i HTML-delen. Dvs sepparera kod och design. Jag hadde skrivit det såhär:


<%@ Language=VBScript %>
<%

Response.Buffer = True

Response.Redirect "http://www.CrazyCaseMod.se/webshop/webs ... efault.asp"

%>

<html>
<body>
</body>
</html>

Får du mycket ASP-kod så är det bättre att lägga dem i subrutiner och funktioner och anropa dessa från HTML-delen.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Okej, det är så man ska göra :). Behöver/bör man ha med html-delen ändå isåfall, den är ju helt tom?
pern
Inlägg: 700
Blev medlem: 14 juli 2004, 08:47:36
Ort: Landskrona

Inlägg av pern »

Jag tycker iaf det är snyggare att ha det med. Min minsta "mall-kod" jag använder är:



<%@ Language=VBScript %>
<%
Response.Buffer = True


' --- Globala variabler --------------------------


' --- Subrutiner ---------------------------------


' --- Funktioner ---------------------------------


' --- Main kod -----------------------------------


%>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<META HTTP-EQUIV=PRAGMA CONTENT="NO-CACHE">
<title></title>
</head>

<body >
</body>

</html>


Men det är väl lite av gammal vana med. Jag gillar lättläst och väldokumenterad kod.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Tack för mallen! Den kan vara användbar.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Någon som är sugen på lite hacking? :D

Jag har gjort en egen lösenordsskyddad sida nu (i ASP), men jag undrar bara hur säker den är eftersom den var välldigt enkel att göra! Bortsett från att lösenordet man skriver in är bokstäver och inte bara stjärnor kan jag inte komma på vad som skulle vara osäkert.. (Men jag kan inte särskilt mycket om säkerghet heller)

Hemsidan: http://www.crazycasemod.se/private.asp Hacka på bara!


Koden:

Kod: Markera allt

<%@ Language=VBScript %> 
<% 
Response.Buffer = True 


' --- Globala variabler -------------------------- 
dim RattLosen, Losen

' --- Subrutiner --------------------------------- 


' --- Funktioner --------------------------------- 


' --- Main kod ----------------------------------- 
RattLosen = "...."
%> 

<html> 

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> 
<META HTTP-EQUIV=PRAGMA CONTENT="NO-CACHE"> 
<title></title> 
</head> 

<body > 
<%
response.write("<p>This site is protected</p>")
%>

<form action="private.asp" method="post">
Pass: <input type="text" name="Losen" size="20" />
<input type="submit" value="Login" />
</form>

<%
Losen=Request.Form("Losen")
If Losen = RattLosen Then
	Response.Write("<p>Pass: " & Losen & "</p>")
	Response.Write("<p>Du har nu tillgång till de hemliga siderna!</p>")
End If

%>
</body> 
</html>
pern
Inlägg: 700
Blev medlem: 14 juli 2004, 08:47:36
Ort: Landskrona

Inlägg av pern »

Visst kan du göra som du gjort. Det är bara 2 små saker jag ser.

* response.write i BODY delen av HTML kod, försök undvika det eftersom du kommer få problem att jobba med designen i HTML editorer.


* Så som du gjort så måste du ha all admin-kod på denna sidan. Det är bättre att göra en loginfunktion som använder en Sessions-variabel. Denna kan du sedan testa på alla sidor du vill ha lösenordsskyddade.


Såhär kan du också göra (Lite övertydligt i visningssyfte) :

Kod: Markera allt

<%@ Language=VBScript %> 
<% 
  Response.Buffer = True 

' --- Global variables ---------------------------- 

  Dim sAdminPassword		' // String Variables
  Dim sUserPassword
  Dim sAction
  
  Dim bUserIsValidAdmin		' // Boolean Variables

' --- Subroutines --------------------------------- 

  Sub CheckUserPassword()
  
  	If (sAdminPassword = sUserPassword) Then 
  		bUserIsValidAdmin = TRUE
  		Session("IsValidAdmin") = TRUE
  	Else
  		bUserIsValidAdmin = FALSE
  		Session("IsValidAdmin") = FALSE
  	End IF
  	
  End Sub

' --- Functions ---------------------------------- 

  Function isAction(Action2Test)
  
  	IF (Action2Test = sAction) Then 
		isAction = TRUE
  	Else
		isAction = FALSE
  	End IF
  
  End Function


' --- Main Code ----------------------------------- 

  bUserIsValidAdmin = FALSE
  sAdminPassword = "42"
  
  sUserPassword  = Request.Form("Losen")
  sAction = Request.QueryString("Action").Item

  IF (sAction = "Login") Then 
    CheckUserPassword
  End IF

%> 

<html> 

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> 
<META HTTP-EQUIV=PRAGMA CONTENT="NO-CACHE"> 
<title></title> 
</head> 

<body > 
<p>This site is protected</p>

<form action="private.asp?Action=Login" method="post">
Pass: <input type="text" name="Losen" size="20" />
<input type="submit" value="Login" />
</form>

<%  IF (isAction("Login") AND bUserIsValidAdmin) Then  %>

<p>Pass: <%= sUserPassword %> </p>
<p>Du har nu tillgång till de hemliga siderna!</p>
<%  
  End IF 
  
  IF (isAction("Login") AND NOT bUserIsValidAdmin) Then 
%>
   Sorry, Fel lösenord.
<% End IF %>

</body> 
</html>

Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

pern: Jag hänger inte riktigt med på allt som din kod gör.

sAdminPassword är det korrekta admin lösenordet?
sUserPassword är det lösenord som man matar in i formuläret?
sAction är vad?

Kod: Markera allt

  IF (sAction = "Login") Then 
    CheckUserPassword
  End IF
Vad gör det för nytta, när man skriver "Losen=Request.Form("Losen")" väntar den inte där då tills man trycker på login knappen? Din kod borde väll inte behövas eftersom det bara finns en knapp i formuläret, eller är den bara i förebyggande syfte tills man skaffar fler knappar? Och isåfall är "sAction" en variabel för att spara datan om vilken knapp man trycker på?

Men säkerheten på detta systemet, hur bra är den? Jag har planer på att bygga en liten sida med en databas där jag lagrar filer som ett antal perssoner ska kunna gå in och ändra i (och läsa) vågar man lita på en sånhär inloggning då?

Ska läsa på lite bättre om sessions-variabler också. Men är inte det en typ cookie som sparas på datorn? I så fall måste man ju kunna fejka den för att komma in på de skyddade sidorna?
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

En snabbfråga, har googlat lite men hittar inget vettigt.. Jag har en sida där jag lägger till en Session-variabel med namnet URL, sen på en annan sida, om den variabeln finns vill jag läsa den och om den inte är tilllagt ska den bara hoppa över det. Kan man kolla på något sätt om det finns en variabel med det namnet? Om det inte finns och jag ändå försöker läsa av den till en string, blir den bara tom då eller?

Tacksam för snabbt svar! :)
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Om det inte finns och jag ändå försöker läsa av den till en string, blir den bara tom då eller?


Kan inte ta många ögonblick att testa.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

>Kan inte ta många ögonblick att testa.
Nä, men då vet jag inte helt säkert, det kan ju vara så att den läser av någon annan adress då, så merparten av gångerna är den tom och sen någon gång ibland kommer det in ett skräpvärde. Och då skulle det ju bli välldigt ostabill kod..
pern
Inlägg: 700
Blev medlem: 14 juli 2004, 08:47:36
Ort: Landskrona

Inlägg av pern »

sAdminPassword är det korrekta admin lösenordet?

- Ja

sUserPassword är det lösenord som man matar in i formuläret?

- Ja


sAction är vad?

- Det är vad man vill att sidan skall göra. Eftersom du har all kod på samma sida så måste du kunna särskilja dessa för att kunna göra rätt saker.

variabeln läses in från querystringen i raden ovanför i koden.

sAction = Request.QueryString("Action").Item


Så om den är private.asp , så blir variabeln tom.

om den är private.asp?Action=Login så innehåller variabeln "Login",
om den är private.asp?Action=Delete så innehåller variabeln "Delete" osv



Losen=Request.Form("Losen")" väntar inte på någon inmatning, Det är bara en variabeltilldelning, Typ Pris = 35 . Det är tryckknappen i FORM koden ovanför som triggar att sidan anropas igen :

<form action="private.asp?Action=Login" method="post">
Pass: <input type="text" name="Losen" size="20" />
<input type="submit" value="Login" />
</form>


Så fort du trycker på LOGIN så anropas URLen: private.asp?Action=Login
ASP-kod körs på servern , även den inom <body > delen. HTML-koden på klienten


"Men säkerheten på detta systemet, hur bra är den"

Har du allt på en sida och gör såhär så kan du inte hacka den. Styr du vidare till andra sidor och använder sessionsvariabeln för att testa på "Session("IsValidAdmin")" och testar den på rätt sätt med så är det ingen fara. Det du bör säkra är alla sidor som gör databasanrop, så att alla inmatningar är säkra.
Senast redigerad av pern 23 juli 2008, 09:36:20, redigerad totalt 1 gång.
pern
Inlägg: 700
Blev medlem: 14 juli 2004, 08:47:36
Ort: Landskrona

Inlägg av pern »

Du kan testa en Sessionvariabel på om den finns eller om den är tom mm. Detta är ett sätt.


Login.asp - sidan:
--------------------

Session("UserIsOK") = "TRUE"


FixaAnnat.asp - sidan:
-------------------------

IF NOT CBool(Session("UserIsOK")) Then

' // Användare ej behörig
' // Skicka honom till en error-sida

Response.Redirect("Error.asp")

END IF


'// Användare ok , koden fortsätter att köras här
Skriv svar