webForumDet fria alternativet

problem med unikt värde

.NET

5 svar · 423 visningar · startad av Vinnaren

Medlem sedan sep. 2005833 inlägg
Frågan#1

Försöker att bygga en enkel webshop. Försöker spara ett unikt värde för att det enkelt ska gå att få fram varukorgen. Har provat med Session.SessionID men det blir ett nytt för varje gång man trycker på köp.
Går det att lösa på något sätt eller är det bättre att använda ip-nummret som unikt värde??

Tacksam för alla förslag :stud

Medlem sedan feb. 2005280 inlägg
#2

Hade samma problem i min webshop men kom på att man måste sätta en Session variabel för då behåller klienten sin SessionID.
tex på produksidan

Session["AnyName"] = "AnyValue";

Detta innebär att klienten har sin session så länge webbläsaren är öppen. Vill man minnas längre så så får det bli cookies.

Medlem sedan juli 20003 825 inlägg
#3

".... men det blir ett nytt för varje gång man trycker på köp."

Servern delar ut ett nytt ID då sessionen dör, vilket vanligen inträffar efter 15-20 minuter.

Man kan manipulera detta genom session.abandon för att sessionen ska dö i förtid. Om du får ett nytt sessionID varje gång en kund trycker på köp kanske du ska se över din kod, hellre än att trixa med annan variant. SessionID är bra att hålla koll på olika besökare i en webbshop.

Medlem sedan sep. 2005833 inlägg
#4

"...se över din kod.."

Har följande:

    
protected void btnAdd_Command(object sender, CommandEventArgs e)
    {
        try
        {
            int prid = Convert.ToInt32(e.CommandArgument.ToString());
            String uniqueid = Session.SessionID.ToString();
            int unit = 1;
            String ip = Request.ServerVariables["REMOTE_ADDR"].ToString();
            Basket b = new Basket(prid, uniqueid, unit, ip);
            Basket.AddToBasket(b);
        }
        catch (Exception ex)
        {

        }
    }

Vet inte om man kan göra på något annat sätt?

Tacksam för alla förslag :stud

Medlem sedan feb. 2005280 inlägg
#5

Vinnaren skrev:

"...se över din kod.."

Har följande:

    
protected void btnAdd_Command(object sender, CommandEventArgs e)
    {
        try
        {
            Session["VisitorReference"] = "1"; // vill kvarstå så länge inte klienten är inaktiv > 20 minuter
            int prid = Convert.ToInt32(e.CommandArgument.ToString());
            String uniqueid = Session.SessionID.ToString();
            int unit = 1;
            String ip = Request.ServerVariables["REMOTE_ADDR"].ToString();
            Basket b = new Basket(prid, uniqueid, unit, ip);
            Basket.AddToBasket(b);
        }
        catch (Exception ex)
        {

        }
    }

Vet inte om man kan göra på något annat sätt?

Tacksam för alla förslag :stud

Testa denna då

Medlem sedan maj 20012 812 inlägg
#6

Eclipse skrev:

Servern delar ut ett nytt ID då sessionen dör, vilket vanligen inträffar efter 15-20 minuter

Ett litet förtydligande bara, den där efter 20 minuter inaktivitet på site (som default), om du inte gör något i 18 minuter och sedan surfar in på sidan, så lever din session i 20 minuter till, alltså totalt 38 minuter...

- M

254 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)