View Full Version : سوال: تشخیص موقعیت کاربر و فرستادن وی به وب سایت مرتبط
Messenger
دوشنبه 01 دی 1393, 13:31 عصر
فرض رو بر این میگیریم که وب سایتی داریم که به 3 زبان انگلیسی/فارسی/عربی ایجاد شده.
برای هر زبان هم وب سایت مستقلی طراحی و پیاده سازی شده؛ حالا میخوایم کاری کنیم که یوزر که اومد تو سایت، بسته به موقعیت اون ( که از یک لیست IP استخراج میشه) به یکی از سه زبان مورد نظر منتقلش کنیم.
اگر خودش هم یکی از زبان ها رو انتخاب کرد، بتونه اون زبان رو ببینه.
این اطلاعات رو میخوام تو کوکی نگهداری کنم و در مراجعات بعدی، با توجه به کوکی ها، یوزر رو بفرستم به آخرین زبانی که روی اون داشته سایت رو مرور میکرده.
دیدم که با Jquery و جاوا اسکریپت انجام دادن مشابه این کار رو؛ اما حقیقت اینکه درست نفهمیدم واسه این سناریو چیکار باید کنم.
ممنون میشم بهم کمک کنین و راهنمایی بدین تا با هم بتونیم انجامش بدیم.
تکنولوژی مورد استفاده ASP.Net هست همراه با دیتابیس MS SQL.
Messenger
یک شنبه 07 دی 1393, 08:34 صبح
سوال رو جای درست طرح نکردم، یا خیلی مبتدیانه اس که دوستان نظری بهش نداشتن ؟:افسرده:
amirahmady77
یک شنبه 07 دی 1393, 09:48 صبح
سوال رو جای درست طرح نکردم، یا خیلی مبتدیانه اس که دوستان نظری بهش نداشتن ؟:افسرده:
سوال رو جای درستی مطرح نکردید
Messenger
یک شنبه 07 دی 1393, 13:11 عصر
میشه جای درستش رو بهم بگین ؟ یا از مدیرا خواهش کنم منتقل کنن به جای درست ؟
Messenger
چهارشنبه 24 دی 1393, 08:53 صبح
کسی کمک نمیکنه ؟
farzaneh1988jafary
چهارشنبه 24 دی 1393, 15:26 عصر
salam
// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");
// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";
be hamrahe ye if o else sade ya ye case fek mikonam beshe...
http://stackoverflow.com/questions/503093/how-can-i-make-a-redirect-page
Messenger
چهارشنبه 24 دی 1393, 15:28 عصر
این چیه دوست عزیز !؟
من ریدایرکت رو بلدم !!!
SA_Developer
چهارشنبه 24 دی 1393, 15:44 عصر
سلام
پیشنهاد میکنم با زبان سمت سرور اینکارو انجام بدید.
لیست رو خودتون دارید؟
برای ASP: http://www.aspsnippets.com/Articles/Find-Visitors-Geographic-Location-using-IP-Address-in-ASPNet.aspx
برای جی کوئری: http://jquery-plugins.net/jqIpLocation/jqIpLocation.html
این ابزارها به شما میگن که IP متعلق به کدوم کشوره و از این راه میتونید زبان مورد نظر رو نمایش بدید.
اگر دارید پس مشکل کجاست؟ کد کامل میخواید؟ بقیش همون ریدایرکت و ست کردن کوکی و غیره است دیگه.
Messenger
چهارشنبه 24 دی 1393, 17:59 عصر
لیست رو سایت های مختلفی هستند که به رایگان در اختیار قرار میدن؛
مشکل دقیقا روی تعریف و ست کردن کوکی هاست؛ اینکه آخرین بار من کدوم آدرس رو داشتم میدیدم؛ حالا به هر کدوم از آدرس های دیگه رفتم، سیستم من رو بفرسته به اونی که آخرین بار داشتم میدیدم.
Messenger
شنبه 27 دی 1393, 14:04 عصر
کسی راهنمایی نمیکنه ؟
id1385
شنبه 27 دی 1393, 17:59 عصر
با سلام
بهترین حالت برای انجام چنین گیزی استفاده دستورات سمت سرور است.
حالا یا توی دیتابیس و یا توی سشن اطلاعات رو نگهداری کنید و از اونها استفاده کنید
اما:
اگه میخواهید ایده خودت رو پیاده کنی اول این کد رو توی سایتت لود کن :
function fnCreateCookie( sName, sValue )
{
var iDays = 365;
var date = new Date();
date.setTime( date.getTime()+(iDays*24*60*60*1000) );
var sExpires = "; expires="+date.toGMTString();
document.cookie = sName+"="+sValue+sExpires+"; path=/";
}
function fnReadCookie( sName )
{
var sNameEQ = sName + "=";
var sCookieContents = document.cookie.split(';');
for( var i=0 ; i<sCookieContents.length ; i++ ) {
var c = sCookieContents[i];
while (c.charAt(0)==' ') {
c = c.substring(1,c.length);
}
if (c.indexOf(sNameEQ) == 0) {
return c.substring(sNameEQ.length,c.length);
}
}
return null;
}
این دو فانکشن برای ذخیره و بازخوانی کوکی در سمت کلاینت استفاده میشه.
روش استفاده هم آسونه:
fnCreateCookie( 'menu-min', 'true' );
بازخوانی:
fnReadCookie( 'menu-min' );
البته شما میتونی با استفاده از همون زبان سایت هم کوکی رو ذخیره و بازیابی کنی
ASP بلد نیستم ولی تو PHP به این شکل است
$_COOKIE['NAME']
مثلاً توی یکی از برنامه ها اینطوری استفاده کرده بودم
$is_min = '';
$side = 'icon-double-angle-left icon-double-angle-right';
if (isset($_COOKIE['NAME'])) {
$cookie = htmlspecialchars($_COOKIE['menu-min']);
if ($cookie === 'true') {
$is_min = ' menu-min ';
$side = 'icon-double-angle-left';
}
}
بازم تاکید می کنم که بهترین روش برای اینکار پراسس سمت سرور است
مانند کاری که برای تشخیص لاگین کردن کاربر انجام میشه
if (globals::isAdminLogedIn ()) {
$loc = 'location: ' . admin_cpanl;
header ( $loc );
} else {
$loc = 'location: ' . admin_login;
header ( $loc );
}
موفق باشید
Messenger
یک شنبه 28 دی 1393, 09:01 صبح
ممنون از توضیحاتتون، ببینم چیکار میکنم...
Messenger
شنبه 04 بهمن 1393, 11:47 صبح
باز هم نتونستم کار کنم...
میشه یه نمونه (بین 3 صفحه و ریدایرکت اونها) رو توضیح بدید ؟
id1385
شنبه 04 بهمن 1393, 15:23 عصر
نمونه رو دانلود کنید
توی نمونه ارسالی یک متغیر در فایل ایندکس داریم، مقدار این متغیر رو من با get گرفتم ولی شما میتونی از کوکی یا دیتابیس و یا همین get بگیری
<?php
/*
default:
http://localhost/language/
english:
http://localhost/language/?lang=en
*/
$language = "fa";
if( isset($_REQUEST["lang"]) && !empty($_REQUEST["lang"]) && in_array($_REQUEST["lang"], array("fa", "ar", "en")) ){
$language = $_REQUEST["lang"];
}
$loc = 'location: ' . $language;
header ( $loc );
موفق باشید
Messenger
یک شنبه 05 بهمن 1393, 11:26 صبح
ساز و کار این کد ها رو برام توضیح میدین ؟
الان من این رو آپلود کردم رو هاستم، اما به محض باز کردن صفحه اول، میفرسته من رو به فارسی
Messenger
یک شنبه 05 بهمن 1393, 11:26 صبح
و همچنین کدوم بخش کوکی ها رو ست میکنه ؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.