PHP, Session State, yönlendiriliyor "Ev"

2 Cevap php

Genellikle, bir web sitesi vb site Ana Sayfa A, Sayfa B, farklı sayfalara bağlantılar içeren bir menü çubuğu.

Kullanıcının belki hemen hemen normal "Home" sayfası olarak aynı bakacağız adresi http://www.example.com . 99% when someone types that URL into their browser, they are directed to the page represented by “Home”. It usually has the optional extension of index[.html|.php] (e.g., http://www.example.com/index.html ). However, there are use cases where, depending from where a user is going to hit your website, that you want to redirect them to a different page. For example, if you have an ad on a site promoting your page, you might want to redirect them to: http://www.example.com/camefromad.html ile bir site var diyelim, ama let Onlar reklam oldu sayfasından geldiğini belirten küçük eklenen metinle.

Benim soru:

Bir kullanıcı "Home" linkine tıklayarak her zaman http://www.example.com/camefromad.html IF kullanıcıya gidecek emin olmak için PHP kullanmak için, bir atıfta sayfa sitede indi sonra bir yolu var mı ile başlayan orada indi? Ne önlemek için çalışıyorum http://www.example.com/camefromad.html için gelmiş bir kullanıcı için ve sonra menü çubuğunda "Ev" tıklayın ve geri dönmek için muktedir asla varsayılan ana sayfasına sonunda http://www.example.com/camefromad.html sayfası (Ben genel kullanıcı oraya gitmek mümkün olmak istemiyorum çünkü ben kamu menüsünde etkin olduğu açılış sayfası yok).

Bu benim ilk kez PHP kullanıyorum ve oturum durumu, vb kullanarak bir araya parça çalışıyorum, ama ben sadece oldukça henüz bulmaca tamamlanmış değil. İşte "Ana" bağlantısını temsil dosya olan (index.php ne var:

<?
session_start(); 
$_SESSION['amSet']= 0;
?>

<?
if ($_SESSION['amSet'] == 0) {
  if (!empty($_SERVER['HTTP_REFERER'])) {
    $referrer = $_SERVER['HTTP_REFERER'];
    $_SESSION['amSet'] = 1;
  }
}
if (preg_match("/other.example.net/",$referrer)) {
   header('Location: http://example.com/camefromad.html');
}
?>

Temelde, benim düşünce yönlendirme değişken o yönlendiren site ayarlanır, böylece kullanıcı sitenize geldiğinde bir değişken ayarlamaktır. Kullanıcı sitenin kendisi bağlantıları etrafında tıklarsa Ama yönlendirme reset istemiyorum. Ben kullanıcı ilk siteye geldiğinde ne olduğunu kalmak istiyorum, bu yüzden "Home" linkine tıkladığında her zaman uygun sayfaya kullanıcı bakın eğer. Açıkçası, ben yukarıda var kod çalışmıyor.

2 Cevap

Why don't you store the referer in a session variable ? In your landing page you can have this :

<?php
session_start();
if(empty($_SESSION['comeFrom']) && !empty($_SERVER['HTTP_REFERER'])){
    $_SESSION['comeFrom'] = $_SERVER['HTTP_REFERER'];
}
?>

Sonra, ana sayfasında:

<?php
session_start(); 
if(!empty($_SESSION['comeFrom']) &&
   preg_match("/referrerSite.com/",$_SESSION['comeFrom'])){
   header('Location: http://www.example.com/camefromad.html');
}
?>

Neredeyse oradayız! - Sadece $ _SESSION değişkeni içinde $ yönlendirme kaydedin. $ _SESSION ['Yönlendirme'] sonraki sayfa istekleri üzerine ayarlanmış olup olmadığını o zaman kontrol edebilir ve buna göre hareket ederler.