başlık bulamadım
siteye giriş yaparken ilk olarak dil seçtiriyorum
if (!isset($_SESSION['dil'])) {
header('Location:dil-sec.php');
exit();
}else{
require("dil/".$_SESSION["dil"].".php");
}
dil-sec.php de dil seçip anasayfaya tekrar döndürüyorum
Şimdi şöyle bir sorunum oluşuyor kullanıcı profilini paylaştığın da
xx.com/kullanici-adi/ şeklin de siteye giriş yapınca dil-sec.php den sonra anasayfaya gidiyor xx.com/kullanici-adi/ şeklinde yönlenmiyor
xx.com/kullanici-adi/ link yapısını nasıl açtırabilirim
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (12)
if ($dil =="tr" || $dil == "en" || $dil == "de" || $dil == "it" || $dil == "fr" || $dil == "nl" || $dil == "sa" || $dil == "es" || $dil == "se" || $dil == "no" || $dil == "bg" || $dil == "fa" || $dil == "jp" || $dil == "fi" || $dil == "be" || $dil == "dk"){
$_SESSION["dil"] = $dil;
header("Location:$sayfa");
}else {
$yonlendiren = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : 'index.php';
header("Location:$yonlendiren");
}
hocam vallahi çok farklı şeylerden bahsediyoruz site ilk açıldığın da bir dil sessionum var o boş ise dil-sec kısmına atıyor dolayısı ile siteden bir link attığında session olmadığı için o link direkt olarak pasif kalıp dil-sec kısmı aktif oluyor ben bu linkin pasif kalmasını istemiyorum
header.php de olan dil-sec kısmına yönlendiren yer
if (!isset($_SESSION['dil'])) {
header('Location:dil-sec.php');
exit();
}else{
require("dil/".$_SESSION["dil"].".php");
}
dil-sec.php
<div class="field__wrap">
<select class="field__input" onchange="if (this.value) window.location.href=this.value">
<option >Dil Seçin</option>
<option value="dil.php?dil=tr">TÜRKÇE</option>
<option value="dil.php?dil=en">UNITED KINGDOM</option>
<option value="dil.php?dil=de">GERMANY</option>
<option value="dil.php?dil=it">ITALY</option>
<option value="dil.php?dil=fr">FRANCE</option>
<option value="dil.php?dil=nl">NETHERLANDS</option>
<option value="dil.php?dil=sa">SAUDI ARABIA</option>
<option value="dil.php?dil=es">SPAIN</option>
<option value="dil.php?dil=se">SWEDEN</option>
<option value="dil.php?dil=no">NORWAY</option>
<option value="dil.php?dil=bg">BULGARIA</option>
<option value="dil.php?dil=ma">FARSÇA</option>
<option value="dil.php?dil=jp">JAPAN</option>
<option value="dil.php?dil=fi">FINLAND</option>
<option value="dil.php?dil=be">BELGIUM</option>
<option value="dil.php?dil=dk">DENMARK</option>
</select>
</div>
$_SESSION['dil'] sessionu varken zaten sorun olmuyor
<a class="header__box" href="dil.php?dil=tr">
<div class="header__category">TÜRKÇE</div>
</a>
<?php
include 'panel/fonksiyon.php';
$sayfa = $_SERVER['HTTP_REFERER'];
$dil =strip_tags($_GET["dil"]);
if ($dil =="tr" || $dil == "en" || $dil == "de" || $dil == "it" || $dil == "fr" || $dil == "nl" || $dil == "sa" || $dil == "es" || $dil == "se" || $dil == "no" || $dil == "bg" || $dil == "fa" || $dil == "jp" || $dil == "fi" || $dil == "be" || $dil == "dk"){
$_SESSION["dil"] = $dil;
header("Location:$sayfa");
}else {
header("Location:index.php");
}
?>
kasten mi yapıyorsun? @tayfunerbilen'in kendisi örnek verdi, öncesinde bende mevcut örneğin olduğu soruya link bıraktım. tamam anlamamış olabilirsin, de güzel insan sinir oldum anlaman için nasıl çalıştığına dair her türlü argümanı verdim. ki html'in rel özelliğine kadar değindim, bu artık top nokta, konuyla alakalı ama gereksiz bir bilgiydi. dil seçtirdiğin sayfanın kodlarını at, düzenleyip ekleyim.
hocam o site benim örnek için verdiğim siteydi o site doğru çalışıyor
şimdi sizin beni anlamadığınız nokta şurası
şimdi ben bir emlakçıyım siteye üye oldum profil linkim ise
bu yakın çevreme profilimi göstermek için paylaşacağım veya instagramda bioma ekleyeceğim
bu linke yeni birisi girdiği zaman dil-sec.php den sonra anasayfaya gönderiyor. benim istediğim ise dil-sec.php den sonra profile gitmesi tıpkı https://www.doctorsinturkey.com/eda-akpinar-1 bu örnekteki gibi
aynı şekil diğer sayfalar da öyle blog olsun hakkımızda olsun sözleşme sayfaları olsun dil-sec den sonra anasayfaya değil linke gitsin direkt olarak
ben bi sorun görmüyorum. düzgün bir şekilde çalışıyor. https://www.doctorsinturkey.com/loc.php?loc=tr adresinden dil seçtikten sonra önceki sayfaya yönlendiriyor. ama kalkıpta https://www.doctorsinturkey.com/loc.php?loc=tr bu linke hiçbir yönlendirme olmadan, doğrudan adres barına yazıp gidersen, bir önceki mesajda bahsettiğim durum yaşanır. senden benden başka kimsede bu linke doğrudan gitmez, site içerisinde tıklayınca zaten referans alınmış oluyor. hala daha anlamamışsın. daha nası örneklendirebilirim bilmiyorum.
https://www.doctorsinturkey.com/eda-akpinar-1 bu adrese gittiğim zaman çıkan dropdown'dan https://www.doctorsinturkey.com/loc.php bu adres üzerinden bir dil seçtiğimde
/*
loc.php
*/
echo $_SERVER['HTTP_REFERER']; //https://www.doctorsinturkey.com/eda-akpinar-1
ama çerezi sildim, doğrudan bu adrese gittiö https://www.doctorsinturkey.com/loc.php?loc=tr;
/*
loc.php
*/
echo $_SERVER['HTTP_REFERER']; //Undefined
site.com/profil şeklin de siteye giriş yapılacağı için $_SERVER['HTTP_REFERER'] bu işe yaramıyor
istediğim şey tam da şöyle
https://www.doctorsinturkey.com/eda-akpinar-1
linke gidiyor dil seçtiriyor kaldığı yerden devam ediyor
$_SERVER['HTTP_REFERER']
etkileşim için yönlendiren olması gerekiyor, adından da anlayacağın gibi yönlendiren bilgisini veriyor. doğrudan erişim yaparsan tabi ki değer vermez. test etmek için,
<a href="site.com/profil">hey, sitede ki profilime baksana!..</a>
not: bazı siteler yönlendirme bilgisi vermemek için, bağlantılar no-ref ekleyebiliyor. o zaman çalışmaz.
<a rel="noreferrer" href="site.com/profil">hey, sitede ki profilime baksana!..</a>
Dil seçiminden sonra yönlendirme işlemini referer bilgisine göre yapabilirsin : $_SERVER['HTTP_REFERER']
header('Location:' . $_SERVER['HTTP_REFERER']); // referer a geri yönlendir
varsayılan ayarlayabilirsin. tarayıcıya bakıp türkçe ise türkçeye yönlendirebilir, türkçe değilse else kısmına ingilizce falan koyabilirsin. veya referans url'i alıp, dili seçtikten sonra sayfaya yönlendirebilirsin. birkaç soru geride benzer bir soru var, yönlendirme için yanıtlara bakabilirsin https://prototurk.com/soru/6099-php-login