Arkadaşlar delphide aspnet için web sitesi hazırlıyorum.Ancak değişken tanımlarken bir sorunla karşılaştım.Şimdi herhangi bir sayfadan kişi kullanıcı adı ile login olur ise kullanıcı adını Kullaniciadi adında bir değişkene atayacam.Ve bundan sonra hangi sayfaya giderse gitsin kullaniciadi değişkeni hep aynı değeri alacak.Ve bende aşağıdaki kodda olduğu gibi tanımladım.Ve diğer tüm sayfaların pas dosyalarında da usese index unitini ekledim.
1.Public Declarationa tanımlarsam değişkenleri kullannamıyorum ve yanımlanmamış değişken hatası veriyor.
2.Privbate de zaten olmuyor.
3.Aşağıdaki gibi genel bir var bloğundan sonra tanımlayınca sorun olmuyor tanıyor ancak.Sorun şu ki.o zamanda mesela evden bu siteyi ziyaret ettim.Kullanıcı adımla login oldum.Ertesigün işyerinde bile hiç bir işlem yapmadan bu değişken hep o benim evden login olurken kullandığım kullanıcı adına taklılıp kalıyor.Yani NewMember kullanıcı adı ile login oldum diyelim.Ertesi gün işyerinde bile sitede HoşGeldiniz Newmember yazıyor.
Kodlarda bir yerlerde hata yapmışsınızdır da diyebilrisiniz ama didik didik ettim yok.Yani bir yerde takılma da yok.Acaba değişken tanımlıyorken yanlış yöntemmi kullanıyoruz.
Yardımcı olursanız sevinirim.
unit index;
interface
uses
System.Collections, System.ComponentModel,
System.Data, System.Drawing, System.Web, System.Web.SessionState,
System.Web.UI, System.Web.UI.WebControls, System.Web.UI.HtmlControls, system.Data.OleDb;
type
TWebForm2 = class(System.Web.UI.Page)
{$REGION 'Designer Managed Code'}
strict private
procedure InitializeComponent;
procedure BTntamam_Click(sender: System.object; e: System.EventArgs);
{$ENDREGION}
strict private
procedure Page_Load(sender: System.object; e: System.EventArgs);
strict protected
Button1: System.Web.UI.WebControls.Button;
itemgundemorta: System.Web.UI.WebControls.Label;
itemgundemsol: System.Web.UI.WebControls.Label;
Label1: System.Web.UI.WebControls.Label;
LblKullaniciAdi: System.Web.UI.WebControls.Label;
LblGirisUyarisi: System.Web.UI.WebControls.Label;
LblAdSoyad: System.Web.UI.WebControls.Label;
LblPArola: System.Web.UI.WebControls.Label;
GirisAdSoyad: System.Web.UI.WebControls.TextBox;
GirisParola: System.Web.UI.WebControls.TextBox;
BTntamam: System.Web.UI.WebControls.Button;
procedure OnInit(e: EventArgs); override;
private
DataBaglantisi: OleDbConnection;
DataCeker: OleDbDataReader;
procedure SolGundemiGoster;
procedure OrtaGundemiGoster;
procedure LoginBilesenleriniGizle;
{ Private Declarations }
public
{ Public Declarations }
end;
{******************************************************** }
var
{Buradaki değişkenler tüm sayfalarda hafızaya alınacak. }
kullaniciadi: string;
GirisYaptimi: Boolean = False;
YetkiSeviyesi: string;
{Buradaki değişkenler tüm sayfalarda hafızaya alınacak. }
{********************************************************} [/b]
Delphinette Global değişkeni nasıl tanımlarız.?
@Lazio cevabın için çok teşekkür ederim.Ancak web programlama konusunda bilgim çok az.Bunu da sadece delphi kodları kullanarak yapabileceğimi sandım ama olmayacak galiba. Session ve cookieler konusunda da bilgim yok.Acaba bunu başka nasıl yapabilirim.
Birde benim yukarıda izah ettiğim şekilde yapınca sanırım server resetlenmeden bu değişken sıfırlanmayacak heralde.Burada bvir mantık hatası yapıyorum anlaşılan.Mesala database girip kullanıcı adımı değiştirip "Yeni Üye " yazdım.Ama hala siteye girince Hoşgeldin NewMember yazıyor.Buda bilginin databaseden gelmediğini söylüyor heralde.
Hocam sizden ricam kısa vadede delphi koduyla bunu nasıl yapabilirim?Eğer yapamazsınız mutlaka session veya cookie kullanmanız gerekiyor derseniz araştırıp öğreneyim.
İlginize teşekkkürler.
Birde benim yukarıda izah ettiğim şekilde yapınca sanırım server resetlenmeden bu değişken sıfırlanmayacak heralde.Burada bvir mantık hatası yapıyorum anlaşılan.Mesala database girip kullanıcı adımı değiştirip "Yeni Üye " yazdım.Ama hala siteye girince Hoşgeldin NewMember yazıyor.Buda bilginin databaseden gelmediğini söylüyor heralde.
Hocam sizden ricam kısa vadede delphi koduyla bunu nasıl yapabilirim?Eğer yapamazsınız mutlaka session veya cookie kullanmanız gerekiyor derseniz araştırıp öğreneyim.
İlginize teşekkkürler.
Hocam açıkçası ben c# kullanıyorum ve c# ta bunu yapmak mümkün değil. örnek, webform1 den webform2 deki bi değişkene ulaşabiliriz ama içindeki değer e ulaşamayız. mantık olarak bir web sayfası çağrıldığında create edilir yükleme işlemi tamamlandıktan sonra free edilir..
session lar da delphi kodu sayılır..
örn,
Session.Add('ad', 'ali veli'); şeklinde oluşturabilirsin..[/url]
session lar da delphi kodu sayılır..
örn,
Session.Add('ad', 'ali veli'); şeklinde oluşturabilirsin..[/url]
- Murat DİCLE
- Kıdemli Üye
- Mesajlar: 702
- Kayıt: 19 Nis 2006 04:12
- Konum: İstanbul
- İletişim:
@lazio nun dediği gibi session kullanman gerekir,
ama tüm kullanıcılar için bir şey istiyorsan yani uygulamamnın geneli içinse application'u kullanman gerekiyor..
mesela ASP ve ASP.NET'te GLOBAL.ASA, GLOBAL.ASAX var.
Burada startsession, startapplication diye şeyler var.
startapplication olduğunda Application['WhoOn'] := 0;
sessionstart olduğunda ise Application['WhoOn'] := Application['WhoOn'] +1 gibilerinden bişi yaparsan
(yazım hatası yapmış olabilirim)
sitede kaç kişi online olduğunu görebilirsin. oturumlar kapansa bile Application silinmeyeceğinden bir sonra oturum açacak olan kişide bu değeri görebilecektir.
Global dğeişken için : session ya da application kullanman yeterlidir.
Hatta bu session ve application içine bir view'ide koyaiblirsin.
mesela her sayfa için bir menü ürettiğini düşün, bunu DB'den okuyor. yani aynı işi binlerce ken yapacağından
applicationstart'ta bunu yaparsan. DB'yi de iktisatlı kullanmış olursun..
Saygılar...
ama tüm kullanıcılar için bir şey istiyorsan yani uygulamamnın geneli içinse application'u kullanman gerekiyor..
mesela ASP ve ASP.NET'te GLOBAL.ASA, GLOBAL.ASAX var.
Burada startsession, startapplication diye şeyler var.
startapplication olduğunda Application['WhoOn'] := 0;
sessionstart olduğunda ise Application['WhoOn'] := Application['WhoOn'] +1 gibilerinden bişi yaparsan
(yazım hatası yapmış olabilirim)
sitede kaç kişi online olduğunu görebilirsin. oturumlar kapansa bile Application silinmeyeceğinden bir sonra oturum açacak olan kişide bu değeri görebilecektir.
Global dğeişken için : session ya da application kullanman yeterlidir.
Hatta bu session ve application içine bir view'ide koyaiblirsin.
mesela her sayfa için bir menü ürettiğini düşün, bunu DB'den okuyor. yani aynı işi binlerce ken yapacağından
applicationstart'ta bunu yaparsan. DB'yi de iktisatlı kullanmış olursun..
Saygılar...