lostyazilim

Dil'e göre yönlendirme bir kez çalışsın

8 Mesajlar 1.467 Okunma
lstbozum
wmaraci reklam

pialfa pialfa WM Aracı Kullanıcı
  • Üyelik 22.02.2014
  • Yaş/Cinsiyet 40 / E
  • Meslek Php,Java,C,C++,C# Geliştirici
  • Konum İstanbul Avrupa
  • Ad Soyad T** K**
  • Mesajlar 113
  • Beğeniler 6 / 13
  • Ticaret 2, (%100)
Dile göre yönlendirme kodum normal olarak çalışıyor. Bu kodu index.php ye ekledim. Yönlendirme yapmaktadır. Fakat benim yapmak istediğim şu örneğin misafir sayfaya giriş yaptı en/ alanına otomatik geldi. Tekrar tr/ alanına gelmek istediğinde index.php ye geldiğinde en/ alanına yönlendirme yapmasın.


$dil = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
if ($dil == 'tr') { header("Location: index.php"); }
else { header("Location: en/"); }
 

 

wmaraci
reklam

enverehan enverehan WM Aracı Kullanıcı
  • Üyelik 21.05.2016
  • Yaş/Cinsiyet 34 / E
  • Meslek Backend Developer
  • Konum Ankara
  • Ad Soyad E** E**
  • Mesajlar 99
  • Beğeniler 6 / 27
  • Ticaret 0, (%0)
PHP'de setcookie fonksiyonu kullanarak ilk yönlendirmede, yönlendirme işleminin gerçekleştiğini tarayıcıya hafızalarsınız. Birde if'e daha önce yönlendirilmediyse yönlendir tanımı yaparsınız.

Böylelikle sorundan kurtulmuş olursunuz.
 

 

https://ehantechnology.com/

maymaa maymaa Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 16.06.2016
  • Yaş/Cinsiyet 35 / E
  • Meslek Öğrenci
  • Konum Gaziantep
  • Ad Soyad M** Ö**
  • Mesajlar 274
  • Beğeniler 54 / 34
  • Ticaret 1, (%100)
referere bakarsın en den geldiyse yönlendirme yapma diye
pialfa

kişi bu mesajı beğendi.

pialfa pialfa WM Aracı Kullanıcı
  • Üyelik 22.02.2014
  • Yaş/Cinsiyet 40 / E
  • Meslek Php,Java,C,C++,C# Geliştirici
  • Konum İstanbul Avrupa
  • Ad Soyad T** K**
  • Mesajlar 113
  • Beğeniler 6 / 13
  • Ticaret 2, (%100)
Böyle bir örnek yaptım. doğru mu yaptım acaba?

$dil = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
$geldigi_sayfa = $_SERVER['HTTP_REFERER'];

if($geldigi_sayfa=='en'){} else{
if ($dil == 'tr') { header("Location: index.php"); }
else { header("Location: en/"); }
}
 

 

wmaraci
wmaraci

maymaa maymaa Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 16.06.2016
  • Yaş/Cinsiyet 35 / E
  • Meslek Öğrenci
  • Konum Gaziantep
  • Ad Soyad M** Ö**
  • Mesajlar 274
  • Beğeniler 54 / 34
  • Ticaret 1, (%100)
if($geldigi_sayfa=='en'){} else{

bu kısımdaki en i tam sayfa adı ile değiştir

if($geldigi_sayfa=='http://sayfa.com/en/'){} else{

gibi kendi siteni yaz
pialfa

kişi bu mesajı beğendi.

pialfa pialfa WM Aracı Kullanıcı
  • Üyelik 22.02.2014
  • Yaş/Cinsiyet 40 / E
  • Meslek Php,Java,C,C++,C# Geliştirici
  • Konum İstanbul Avrupa
  • Ad Soyad T** K**
  • Mesajlar 113
  • Beğeniler 6 / 13
  • Ticaret 2, (%100)
BU ŞEKİLDE YAPTIM AMA ÇALIŞMIYOR SİTEDE SORUN NEREDE BİLEMEDİM !


$dil = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
$geldigi_sayfa = $_SERVER['HTTP_REFERER'];

if($geldigi_sayfa=='http://www.sayfa.com/en/'){} else{
if ($dil == 'tr') { header("Location: index.php"); }
else { header("Location: en/"); }
}
 

 

maymaa maymaa Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 16.06.2016
  • Yaş/Cinsiyet 35 / E
  • Meslek Öğrenci
  • Konum Gaziantep
  • Ad Soyad M** Ö**
  • Mesajlar 274
  • Beğeniler 54 / 34
  • Ticaret 1, (%100)
$dil = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
$geldigi_sayfa = $_SERVER['HTTP_REFERER'];
echo $geldigi_sayfa;
if($geldigi_sayfa=='http://www.kanula.com.tr/en/'){} else{
if ($dil == 'tr') { header("Location: index.php"); }
else { header("Location: en/"); }
}

yaparak geldiği yeri tam olarak yazın sıkıntı çıkabiliyor
 

 

enverehan enverehan WM Aracı Kullanıcı
  • Üyelik 21.05.2016
  • Yaş/Cinsiyet 34 / E
  • Meslek Backend Developer
  • Konum Ankara
  • Ad Soyad E** E**
  • Mesajlar 99
  • Beğeniler 6 / 27
  • Ticaret 0, (%0)
Böyle yaparsan 10 günlük bir veri atarsın kullanıcının tarayıcısına. 10 gün sonra çerez süresi biter ve yeniden dil yönlendirmesi yapar. 10 gün ise +604800 kısmını ifade eder. 30 gün yapmak istersen bu sayıyı 3 le çarp ve aşağıda ki 2 satırda ki sayıyla bunu değiştir.

Kodları denemedim, sorun olursa buraya yazarsın tekrar.

$dil = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
$dil_cookie = @$_COOKIE['dil'];

if( $dil_cookie == NULL ) {
if ($dil == 'tr') {
setcookie('dil','tr', +604800);
echo '<script>window.location.href ="index.php";</script>';
} else {
setcookie('dil','en', +604800);
echo '<script>window.location.href ="en/";</script>';
}
}
?>
pialfa

kişi bu mesajı beğendi.

https://ehantechnology.com/
wmaraci
Konuyu toplam 2 kişi okuyor. (0 kullanıcı ve 2 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al