Avatar billede hist Praktikant
02. august 2015 - 17:54 Der er 2 kommentarer og
1 løsning

ASP til php

Jeg har rodet mig ud i et projekt med at omskrive noget asp til php og jeg må indrømme jeg forstå ikke det der asp.

nogen der vil hjælpe :D
der er et lille brudstkke her

if request.QueryString("lastvote") <> "" then
    if not session("brugeraccess") = "1" then
    response.Redirect("/login/")
    else

        if request.servervariables("REQUEST_METHOD") = "POST" then
        session("hotbillederID") = request.form("pictureID")
        session("profilerID") = request.form("profileID")
        session("stemmeID") = request.form("voteID")
        session("point") = request.form("vote")
        session("dato") = now()
   
        SQLvote = "insert into hotstemmer (hotbillederID,profilerID,stemmeID,point,dato) values('" & session("hotbillederID") & "','" & session("profilerID") & "','" & session("stemmeID") & "','" & session("point") & "','"& session("dato") &"')"
        Conn.execute(SQLvote)

        session("hotbillederID") = ""
        session("profilerID") = ""
        session("stemmeID") = ""
        session("point") = ""
        session("dato") = ""

        response.redirect("default.asp?lastvote="&request.QueryString("lastvote")&"")
        end if

    end if
end if
Avatar billede Broxigar Praktikant
02. august 2015 - 20:47 #1
Jeg er ikke den store ASP mand, men jeg kan måske gennemskue logikken her:

Overordnet

URL'en skal have 'lastvote' som parameter, der skal sendes data via POST og brugeren skal have et gyldigt login i sessionen. Opfyldes dette, vil noget data fra en form blive sat ind i en SQL-database.

Individuelle bider

if request.QueryString("lastvote") <> "" then
=
URL'en skal have parameteren ?lastvote=XXXXX for at gå ind i IF-statementen

if not session("brugeraccess") = "1" then
=
Hvis ikke brugeraccess er = 1 i sessionen, så skal der redirectes til Login siden

if request.servervariables("REQUEST_METHOD") = "POST" then
=
Der skal POSTes til adressen for at den går ind i IF-statement.

---

De to segmenter med session("....") = request.form(...) er fuldkommen ligegyldige, du skal bare erstatte session("...") inde i SQL-statement med værdierne direkte fra requesten.

Husk på, at det er en utrolig usikker måde at indsætte data i databasen, hvis du kopierer den måde det er lavet her. Det skal laves med prepared statements hvor du binder data til placeholders istedet for at concatte strengene.

Hvis du har brug for noget reelt PHP-kode, er du velkommen til at kontakte mig.
Avatar billede hist Praktikant
04. august 2015 - 10:16 #2
tak broxi

kan jeg også lige høre dig om den her hvordan man oversætter den her

Response.Expires = -1
Response.AddHeader "pragma", "no-cache"
Response.CacheControl="no-cache"
Response.AddHeader "cache-control", "no-store"
Session.Timeout = 60

Session.LCID = 1030

kan det passe

header("Expires: ".gmdate("D, d M Y H:i:s",time()+(-1*60))." GMT");
header("pragma: no-cache");
header("Cache-Control: no-cache");
header("cache-control: no-store");
session_set_cookie_params(60*60);
Avatar billede Broxigar Praktikant
04. august 2015 - 21:25 #3
Ud fra hvad jeg ser, så sørger linjerne med Response... for at al browser-cache bliver slået fra.

Dette kan du gøre således:

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

Response.Expires = -1 betyder at siden skal udløbe med det samme, så der er ingen grund til at lave beregninger, bare sæt et tidspunkt i fortiden.

------

Session.LCID sætter et dato-format (https://msdn.microsoft.com/en-us/library/ms525071%28v=vs.90%29.aspx) hvor 1030 er Danish

------

Selve Session.Timeout er antal minutter en session er gyldig.
Du kan muligvis gøre det således:

// server should keep session data for AT LEAST 1 hour
ini_set('session.gc_maxlifetime', 3600);

// each client should remember their session id for EXACTLY 1 hour
session_set_cookie_params(3600);

session_start(); // ready to go!
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