PDA

View Full Version : سوال: مشکل در استفاده از کوکی



mohsen_namad
چهارشنبه 12 خرداد 1389, 13:44 عصر
من از این کد برای کار با کوکی می خواستم استفاده کنم ولی جواب نمیده . مشکلش کجاس؟

در صفحه اصلی :



HttpCookie objcookie = new HttpCookie(t1.Text,t2.Text);
objcookie.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(objcookie);


در صفحه مقصد:



foreach (string s in Response.Cookies)
b1.Text += Request.Cookies[s].Value.ToString();

z_bluestar
چهارشنبه 12 خرداد 1389, 14:06 عصر
خوب ممکنه ازاین باشه .
هر بار که سایت به صورت Local رو اجرا می کنید یک port جدید به آن اختصاص داده می شه و به همین دلیل به صورت یک domain جدید شناخته میشه و به این دلیل ممکنه در دستور foreach هیچ کوکی برگرداننده نشه .

http://localhost:57979

mohsen_namad
چهارشنبه 12 خرداد 1389, 14:08 عصر
باید چیکار کنم؟

ali_zzr
چهارشنبه 12 خرداد 1389, 14:11 عصر
شما یک کوکی ساختی با نام t1.text و مقدار t2.text
باید توی کالکشن request.cookie بگردی نه response.cookie
از این حلقه استفاده کن :

Dim aCookie As HttpCookie
For i = 0 to Request.Cookies.Count - 1
aCookie = Request.Cookies(i)
response.write("Name : " & aCookie.Name & " " & "value : " aCookie.value & "<br/>")
next

البته من vb نوشتم

z_bluestar
چهارشنبه 12 خرداد 1389, 14:12 عصر
این مشکل تو web وجود ندارد . چون اونجا domain همیشه ثابت هست .
بعد چرا از نام کوکی برای خوندش استفاده نمی کنید

HttpCookie acookie = HttpContext.Current.Request.Cookies["ShoppingCart"];

mohsen_namad
چهارشنبه 12 خرداد 1389, 14:39 عصر
من دوتا تکس باکس دارم و می خوام اطلاعات این دو تکی باکس رو در یه کوکی وارد کنم و تو یه صفحه دیگه اونو بازیابی کنم .میشه از طریق همو ن کدی که گذاشتم راهنمایی کنید.

z_bluestar
چهارشنبه 12 خرداد 1389, 15:14 عصر
می تونید مقدار هر دو textbox را با یک کاما جدا کرده و داخل cookie ریخته و بعدا اون رو بخونید و از هم جدا کنید

//create a cookie
HttpCookie objcookie = new HttpCookie("mycookiename",t1.Text+","+t2.Text);
objcookie.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(objcookie);

//read cookie
objcookie=Request.Cookies["mycookiename"];
string cookieValue = objcookie.Value;
string textbox1value = cookieValue.Substring(0, cookieValue.IndexOf(","));
string textbox2value = cookieValue.Substring(cookieValue.IndexOf(",") + 1,(cookieValue.Length-cookieValue.IndexOf(",")) );

mohsen_namad
چهارشنبه 12 خرداد 1389, 15:32 عصر
میشه عمل خوندن رو با foreach انجام داد؟

z_bluestar
چهارشنبه 12 خرداد 1389, 15:46 عصر
میشه عمل خوندن رو با foreach انجام داد؟
نه اولا که لازم نیست بعد در این مورد کـاربرد ندارد چون اگر داده ها تون بیشتر از این ها باشه مثلا بخواهید یک سبد خرید رو پیاده سازی کنید که nتا محصول داخل این داشته باشد می تونید از Cookie.Values استفاده کنید و تمام Value هاتون رو در این property Set کنید.

mohsen_namad
چهارشنبه 12 خرداد 1389, 16:24 عصر
من از این کد برای کار با کوکی می خواستم استفاده کنم ولی جواب نمیده . مشکلش کجاس؟

در صفحه اصلی :



HttpCookie objcookie = new HttpCookie(t1.Text,t2.Text);
objcookie.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(objcookie);


در صفحه مقصد:



foreach (string s in Response.Cookies)
b1.Text += Request.Cookies[s].Value.ToString();


ببخشید کد اولی که نوشته بودم میشه بگید مشکلش چی بوده؟

z_bluestar
چهارشنبه 12 خرداد 1389, 16:32 عصر
foreach (string s in Response.Cookies)
b1.Text += Request.Cookies[s].Value.ToString();
درستش این طوریه


foreach (HttpCookie Cookie in Request.Cookies)
{
b1.Text += Cookie.Value;
}


البته برای اون منظوری که شمـا می خواستید این کاربرد ندارد