lostyazilim
tr.link

Php : HTTP_REFERER konusuna dair tüm detaylar...

13 Mesajlar 6.057 Okunma
lstbozum
tr.link

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
Hayırlı geceler.

$_SERVER['HTTP_REFERER'] ile bilinmesi gereken ince noktaları öğrenmeye çalışıyorum.



Bu kodun kullanım amacı sadece 1 önceki sayfayı/linki tespit etmek midir?




+++




1 sayfa geri gitmek için şu sayfadaki yöntemlerden hangisini ve neden önerirsiniz?

https://www.miltonmarketing.com/coding/php/how-to-make-a-go-back-button-with-php-code/

(Bana biraz karışık geldi açıkçası...)

&


$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo "back";
?>


Üstteki kodda htmlspecialchars neden kullanılmış olabilir?
Sizce gerekli mi?

&

Alttaki kodu nasıl tercüme edebiliriz?

$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';



+++






Üsteki kodun yönlendireceği linkin sonuna nasıl ekleme yapabiliriz?

Örnek:

site.com/
site.com/#hatali_islem
site.com/index.php?islem=basarisiz




+++




Ayrıca 2/3/5 sayfa geri gitmek daha da önemlisi ilk linki bulup o linke gitmek için kodu nasıl kullanmalıyız?

+

Başka bilinmesi gereken esas yada detay hususlar var mıdır...?

+

Geri gitme meselesini php kullanarak çözmeyi sağlayan daha iyi yollar var mıdır?

+

Php yerine js tercih etmemiz gereken durumlar var mıdır?




Bilgisi çerçevesinde katkı sağlayacak herkese teşekkür ederim...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
wmaraci
reklam

tatarkursad tatarkursad WM Aracı Kullanıcı
  • Üyelik 26.12.2015
  • Yaş/Cinsiyet 31 / E
  • Meslek Grafik Tasarım
  • Konum İstanbul Avrupa
  • Ad Soyad K** T**
  • Mesajlar 78
  • Beğeniler 30 / 29
  • Ticaret 0, (%0)
Merhaba bildiğim kadarı ile yardımcı olmak isterim, bu şekilde bir önceki sayfaya yönlendirme durumlarını bende kendi yazdığım panelimde kullanıyorum. Ancak benim yöntemim biraz farklı.
Öncelikle şunu söyleyim HTTP_REFERER çok güvenli bulunmayan bir yöntemdir. Bunu php .net den de teyit edebilirsin.

Ben REQUEST_URI ile bir önceki sayfanın tam adresini bir sessiona kaydediyorum ve geri gelme ihtiyacı olduğunda bu sessionu kullanıyorum. Senin istediğin 1 2 3 önceki sayfa içinde aynı şekilde bütün yol ağacını kaydederek ulaşabilirsin.

Senin sorularına gelecek olursak;

$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo "back";
?>


Burada htmlspecialchars kullanmasının nedeni karakterleri etkisizleştimek olası bir slq injection önüne geçmek.

$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';

Burada da if in kısa halini kullanıyor, uzun hali aşağıdaki gibi

if(isset($_SERVER['HTTP_REFERER'])){$referer = $_SERVER['HTTP_REFERER']}

Yani burası ilk sayfa değilse $referer değişkenine sayfayı atayacak, ilk sayfa ise HTTP_REFERER boş dönecek.

-------
header('Location: ' . $_SERVER['HTTP_REFERER']);

bunun sonuna da şu şekilde ekleme yapabilirsin.

header('Location: ' . $_SERVER['HTTP_REFERER'].'/eklenecek_adres');

yada eklenecek adresi değişkene atayıp da ekleyebilirsin.

Umarım yazdıklarım yardımcı olur.
AzveNet BEYAZMASTER

kişi bu mesajı beğendi.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
tatarkursad Üstadım ayırdığınız vakit için ve bilgilerinizi paylaştığınız için çok çok teşekkür ederim (Kendi adıma ve istifade edecek herkes adına...).

Kesinlikle çok faydalı ve değerli bir katkı oldu.

Güzel günler dilerim...
tatarkursad

kişi bu mesajı beğendi.

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 42 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)
Sanırım ilk linki bulmak ile ilgili cevap verilmemiş. Bu refleri bir array olarak atayıp her ref gelişinde pushlamak sanırım en mantıklısı.
BEYAZMASTER

kişi bu mesajı beğendi.

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.
wmaraci
wmaraci

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
AzveNet Örneklendirmeniz mümkün olursa aydınlanırız üstadım...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 42 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)
$refler=["kendilinkim"];
$yenigonderensayfa = $_SERVER['HTTP_REFERER'];
$refler = array("ilkdeger"); //array oluşturduk.
//list($yenirefler)=$refler;

$yenirefler = array_push($refler, $yenigonderensayfa); // $yenigonderensayfa son aldığımız referer.
$yenirefler[0] boş değer(yani 1 den başlasın diye, bir özelliği yok :) ) her seferindede gönderen sayfayı bu arraye ekliyoruz.
1 itibariyle ilk refereri alıyoruz.
count($yenirefler) ile kaç ref varmış onu sayıp duruma göre istediğimiz işlemleri yapıyoruz.

Alirkende buna göre kaç tane varsa baştan sona alabilirsiniz istrdiğinizi. İlk eleman boş olsun diye kendi sitenizi yada başka bi değeri atayabilirsiniz

Edit :
Js tercih ederseniz bu server taraflı olmadığından hakim olamayabilirsiniz. Mesela tarayıcıdan js kapatırsa bi anlamı kalmaz. O yüzden bunları sunucu tarfında yapmak daha makuldür.
 

 

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
AzveNet Çok teşekkür ederim üstad (herkes adına)...

Üzerinde deneöeler yapmak gerek...

Bu kodların tümünü tüm sayfalara koymak mı gerekiyor?
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

0ktay 0ktay strdex Kullanıcı
  • Üyelik 01.02.2018
  • Yaş/Cinsiyet 26 / E
  • Meslek Yazılım öğrencisi
  • Konum Antalya
  • Ad Soyad O** Ş**
  • Mesajlar 603
  • Beğeniler 25 / 155
  • Ticaret 2, (%100)
Aslında bunlar gereksiz karmaşık eşleştirmeler.
Bu tarz basit işleri bile sunucuya yüklerseniz, yüksek kullanıcı kapasitesinden kalitesizlik yaşarsınız.
Ek olarak sunucu tarafından gereksiz session tutmayı da doğru bulmuyorum.

Bunun çok daha basit yöntemleri mevcut, örneğin js history.go(1) ile bir sayfa geriye kullanıcıyı gönderebilirsiniz. Üstelik dilediğiniz kadar geri gönderebilirsiniz.
BEYAZMASTER

kişi bu mesajı beğendi.

Eğitimin pahalı olduğunu düşünüyorsanız, cehaletin bedelini hesaplayın.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)

0ktay adlı üyeden alıntı

Aslında bunlar gereksiz karmaşık eşleştirmeler.
Bu tarz basit işleri bile sunucuya yüklerseniz, yüksek kullanıcı kapasitesinden kalitesizlik yaşarsınız.
Ek olarak sunucu tarafından gereksiz session tutmayı da doğru bulmuyorum.

Bunun çok daha basit yöntemleri mevcut, örneğin js history.go(1) ile bir sayfa geriye kullanıcıyı gönderebilirsiniz. Üstelik dilediğiniz kadar geri gönderebilirsiniz.


Oktay Hocam teşekkür ederim katkınız için.

Ben de sade ve az kod kullanmaktan yanayım.

Haklısınız js history.go(...) çok güzel bir seçenek ve kullanıyorum.

Fakat sadece geriye gitmek için değil, hangi sayfadan gelindiğini sorgulamak, bu doğrultuda sayfaya giriş izini vermek yada vermemek gibi bir takım aksiyonlar almak için php gerekli olabiliyor...

Tekrar teşekkürler...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 42 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)
Eğer 3 4 önceki referer önemli değilse (ki genelde değildir, özel durumlar yoksa yani) zaten js ile geri gidin. Ben bunları kaydetmek, kullanmak istediğinizi düşündüm. Yani dilerseniz her gelinen sayfayı db yede kaydedip bakabilirsiniz. Daha sonra belli süre geçeni silersiniz vs.. Çok elzem değilse js kullanın zaten.
BEYAZMASTER

kişi bu mesajı beğendi.

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al