Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Jedinstvena promenjiva za session[]??

[es] :: .NET :: ASP.NET :: Jedinstvena promenjiva za session[]??

[ Pregleda: 2061 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Jedinstvena promenjiva za session[]??03.11.2011. u 14:59 - pre 151 meseci
Pozdrav svima!!
Imam dilemu. Poceo sam da vezbam malo sa Application[] Session[] podacima. Znam da se u Application promenjivu stavljaju podaci za sve korisnike tj. svi ih vide. Za session me intresuje da li mora biti jedinstven kljuc ili moze bit isti tj. isti naziv.
Primer:
recimo zelim da u Application promenjivu stavim DataSet objekat u kome ce biti svi artikli koje ce svaka sessija tj. svi kupci videti.
Ali kada ti isti kupci treba da se loguju i prave porudzbu oni to treba da rade pod jedinstvenim podacima. Recimo prilikom logovanja kupca, zelim da u Session["promenjiva"] stavim vrednost njihovog PIB-a. Da li to mogu raditi ovako:

Session["PIB"]=_PIB;
ili Session["sess" + _PIB]=_PIB;

Ne znam da li me razumete?! :) Pitanje je: Da li jedna ista Session promenjiva moze biti ista za sve kupce ili mora biti jedinstvena za svakog kupca posebno??

[Ovu poruku je menjao borcha dana 03.11.2011. u 19:29 GMT+1]

[Ovu poruku je menjao borcha dana 03.11.2011. u 20:58 GMT+1]
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.dynamic.isp.telekom.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: Jedinstvena promenjiva za session[]??03.11.2011. u 23:47 - pre 151 meseci
Može, tj. treba da bude.
http://msdn.microsoft.com/en-us/library/ms178581.aspx
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Jedinstvena promenjiva za session[]??04.11.2011. u 10:30 - pre 151 meseci
Druze, nisam te bas razumeo!! Moze li malo preciznije?
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Jedinstvena promenjiva za session[]??04.11.2011. u 10:47 - pre 151 meseci
evo ovako sam mislio:

Session["PIB"]=105666255;
Session["PIB"]=111333222
Session["PIB"]=664553442
Session["PIB"]=555444333
Session["PIB"]=222330011

ili

Session["sess" + 105666255]=105666255
Session["sess" + 111333222]=111333222
Session["sess" + 664553442]=664553442
Session["sess" + 555444333]=555444333
Session["sess" + 222330011]=222330011

znaci ide poziv na prvu sesiju sa brojem "sess105666255" = 105666255 .
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
82.117.199.*

Sajt: www.dcaric.com


+26 Profil

icon Re: Jedinstvena promenjiva za session[]??04.11.2011. u 12:46 - pre 151 meseci
Šta tačno pokušavaš da uradiš?

Recimo da je u pitanju WebForms aplikacija. Napravi jednu Literal kontrolu ltlSessionValue i jedan Button btnTest.

Code:
protected void Page_Load(object sender, EventArgs e)
{
    if (Session["TEMP"] != null)
    {
        ltlSessionValue.Text = Session["TEMP"].ToString();
    }
    else
    {
        ltlSessionValue.Text = "empty";
    }
}

protected void btnTest_Click(object sender, EventArgs e)
{
    Session["TEMP"] = DateTime.Now.ToString();
}


Šta ovaj kod radi?
Klikom na dugme, u sesiju se upisuje trenutno vreme pod nazivom TEMP.
Kada se stranica učitava, Literal kontrola ispisuje to vreme ili empty, u zavisnosti da li je vrednost setovana u sesiji ili ne.

Kako da testiraš?
Otvori stranicu u Internet Explorer-u, klikni na dugme i refreshuj stranicu. Trebalo bi da ti se ispiše neko vreme.
Otvori istu stranicu u drugom browser-u (Firefox, Opera, Chrome, Safari, itd), na stranici bi trebalo da se ispiše empty pošto je to druga sessija (ili ga shvati kao drugi korisnik).
Sada u tom drugom browseru klikni dugme i osveži stranicu. Videćeš da je prikazano vreme drugačije od onog koje je prikazano u Internet Explorer-u.
Razlog je taj što se podaci u sesiji čuvaju za jednog korisnika, a u Application za sve korisnike.

Sada u kodu zameni Session sa Application pa uporedi rezultate.
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Jedinstvena promenjiva za session[]??04.11.2011. u 12:55 - pre 151 meseci
Ok! Kontam sada. Testirao sam na drugom pretrazivacu!! Jasno....Hvala :)
 
Odgovor na temu

nebojsa4

Član broj: 235084
Poruke: 48
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Jedinstvena promenjiva za session[]??09.11.2011. u 18:17 - pre 151 meseci
Izvinjavam se svima sto postavljam pitanje, ali nisam siguran da li sam dobro shvatio.

Ono sto me interesuje po pitanju Session je sledece (dacu primer) :

- Imam web aplikaciju gde se prvo loguju korisnici (default.aspx)
- Kada se izvrsi provera zapisujem podake o logovanju u Session
npr:
Loguje se Pero (ciji se podaci proveravaju u sql bazi) i koristim kod:
Code:

      Session.Add("Korisnik","Pero")
      Session.Add("Sifra",1)
      Session.Add("RecNo",0)
      Response.Redirect("webform1.aspx")

ovde se Korisnik "Pero" i Sifra 1 ili bilo koji vec broj vade iz baze podataka

Zatim se loguje Milan:
Code:

    Session.Add("Korisnik","Milan")
    Session.Add("Sifra",16)
    Session.Add("RecNo",0)
    Response.Redirect("webform1.aspx")


Dolazi na red ono sto me interesuje :
nakon redirect-a na webform1.aspx imam tabelu bilo kakvih podataka i button-e za manipulaciju istih (upisi novi, izmeni, obrisi, .... itd)
Primera radi da se radi o imeniku.


E sada, obojica su kliknula na button "Izmeni" ali su u tabeli (GridView) izabrali razlicite kontakte iz imenika.
Prikazuje im se novi Panel sa izabranim podacima.

Moje pitanje/a:
- da li ce se obojici prikazati isti podaci (?) ili ce se svakom od njih prikazati podaci za kontakt koji je izabrao za obradu?
- da li ce se u sql bazu upisati izmene za kontakte koji su izabrani ili samo za jedan(?) ?

npr. kod :
Code:


  'kline se na red u GridView-u

  Private Sub GridView1_SelectedIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSelectEventArgs) Handles GridView1.SelectedIndexChanging
        Session.Item("RecNo") = CLng(GridView1.Rows(e.NewSelectedIndex).Cells(1).Text)  'u ovoj celiji se nalazi sifra kontakta iz imenika
        lstImenik.Visible = False     'Panel "lstImenik" se sakriva
        editKontakt.Visible = True  'prikazuje se Panel "editKontakt"
        
        Dim conn As New SqlConnection = Nothing
        Dim cmd As New SqlCommand = Nothing
        Dim tds As New SqlDataReader

       'otvaram bazu (da sada ne pisem kod)
       cmd = New SqlCommand("SELECT * FROM Imenik WHERE KontaktID=" + Session.Item("RecNo").ToString + ";", conn)
       tds = cmd.ExecueReader
       tds.Read()
       txtIme.Text = tds("Ime")
       txtTelefon.Text = tds("Telefon")
       tds.Close() : tds = Nothing : cmd.Dispose() : cmd = Nothing : conn.Close() : conn.Dispose() : conn = Nothing
       txtIme.Focus()
    End Sub


Da li ce se svakom od njih prikazati podaci na osnovu koji su KontaktID izabrali?

I zatim prilikom simanja izmena podataka kontakta - kada kliknu na button "Snimi izmene"
primer koda :
Code:

   Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSave.Click
        Dim conn As New SqlConnection = Nothing
        Dim cmd As New SqlCommand = Nothing
        Dim tds As New SqlDataReader

       'otvaram bazu (da sada ne pisem kod)
       cmd = New SqlCommand("UPDATE Imenik SET Ime='" + txtIme.Text +"', Telefon='" + txtTelefon.Text + "' WHERE KontaktID=" + Session.Item("RecNo").ToString + ";", conn)
       cmd.ExecuteNonQuery()
       cmd.Dispose() : cmd = Nothing : conn.Close() : conn.Dispose() : conn = Nothing
        lstImenik.Visible = True     'Panel "lstImenik" se prikazuje
       editKontakt.Visible = False  'skriva se Panel "editKontakt"
       GridView1.DataBound()
   End Sub


Da li ce se izvrsiti izmena podataka u bazi za svakog korisnika ponaosob na osnovu toga koji su KorisnikID selektovali?

npr. Pero je izabrao zapis pod rednim brojem (KorisnikID) 3 a Milan pod rednim brojem 48.

Veoma opsirno, znam, ali nadam se da sam, koliko toliko, dobro objasnio sta me interesuje.

Da li Session.Item("RecNo") zapisuje za svakog ponaosob promenljivu koju su izabrali?

Odnosno, da li Session, kako da kazem, kreira za svakog ponaosob?
Ili bolje receno, da li svaki ulogovani korisnik (i Pero i Milan) imaju svoj, ajde recimo laicki, licni Session?

Izvinjavam se jos jednom svima, ali sam pocetnik u ovome pa me intersuje ovo gore navedeno, da ne bih napravio zbrku u web aplikaciji koju pravim (mislim pravim ;) , bolje receno vezbam - ucim) odnosno u sql bazi podataka.

Unapred hvala svima.
Pozdrav svima.
 
Odgovor na temu

pl4stik
Senior .NET programmer/Consultant
oDesk
NI na nebu NI na zemlji

Član broj: 173596
Poruke: 715
89.216.37.*

Sajt: xx-auth.com.azhar.arvixe...


+31 Profil

icon Re: Jedinstvena promenjiva za session[]??10.11.2011. u 06:47 - pre 151 meseci
Svaki korisnik prilikom pristupa sajtu dobija svoj session i ne dele ih medjusobno (za deljenje sluzi application object). Znaci, svako ce obradjivati svoje podatke i ne mozes da ih povezes pomocu sessiona. Proveri temu ispod i pogledaj linkove koji objasnjavaju sta je session a sta application object.
To sto nekoliko miliona ljudi tvrdi da nisi u pravu ne znaci da stvarno nisi - Frank Zappa

https://youtu.be/DLe358DPGXU
 
Odgovor na temu

nebojsa4

Član broj: 235084
Poruke: 48
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Jedinstvena promenjiva za session[]??10.11.2011. u 16:33 - pre 151 meseci
Taj odgovor mi je dovoljan.
Hvala.
Pozdrav.
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: Jedinstvena promenjiva za session[]??

[ Pregleda: 2061 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.