Autor Zpráva
snazimse
Profil
Zdravím,prosím ,jak nejjednodušeji nastavit podmínku if,

aby zobrazila určitý obsah,podle toho z které poslední adresy přijdu

www.neco.cz/index?php=route1 nebo www.neco.cz/index?php=route2

Jo prostě,abych měl jiný obsah,který bude v podmínce,když někdo přijde z route1 odkazu a jiný kdo přijde z adresy route2 odkazu.
Že prostě přijdou přes rozdílný odkaz.A rozdílně se jim to zobrazí.


Díky všem!
Joker
Profil
snazimse:
Na tohle by bylo lepší spíš switch (když předpokládám, že výhledově mohou být více než dvě možnosti).
Hodnota bude v daném případě v $_GET["php"].
Kde konkrétně je problém?
snazimse
Profil
Já to potřebuji nastavit,takže když jsem na nějaké adrese viz příklad,tak na každé z těch dvou stránek bude odkaz,který bude stejný, a bude vést na jedno místo.Ale to místo bude samozřejmě nějaký tpl (php)soubor s obsahem,kde ho chci rozdělit na dvě místa s podmínkou ,if,jestli klikl na odkaz ze stránky,www.neco.cz/index?php=route1 zobraz tohle: hhh . Jestli klikl na stejný odkaz ze stránky www.neco.cz/index?php=route2 zobraz tohle:ttt.


Doufám,že jsem to laicky vysvětlil.Děkuji !!!
Tori
Profil
snazimse:
Jestli ty stránky, ze kterých může návštěvník přijít, jsou taky na vašem webu, tak bych použila session.
snazimse
Profil
Rozumím,mě to jedno celkem,ale jak na to v praxi,jak to dát do podmínky:

Že pokud stránka z které přišli,je www.neco.cz/index?php=route2 ,tak vykonej tohle.

Prosil,bych nějaký jednoduchý praktický příklad.


Děkuji velmi!
aDAm
Profil
if ($_GET['php'] == 'route1') {
  //...udelej neco, asi prirazeni template ci tak neco
} else if ($_GET['php'] == 'route2') {
  //...udelej neco, asi prirazeni template ci tak neco
}
Tori
Profil
snazimse:
Rozumím,mě to jedno celkem
No ono to právě jedno neni. Pokud jsou všechny stránky na stejném webu, můžete použít session:
// soubor start1.php
session_start();
$_SESSION['start'] = "start1";
echo '<a href="./cil.php">cílová stránka</a>';

// soubor start2.php
session_start();
$_SESSION['start'] = "start2";
echo '<a href="./cil.php">cílová stránka</a>';

// soubor cil.php
session_start();
if (!empty($_SESSION['start'])) {
    echo 'prisli jste ze stranky '.$_SESSION['start'];
} else {
    echo 'prisli jste odjinud.';
}

Ale pokud jsou předchozí stránky jinde (např. chcete rozpoznat, z kterého vyhledávače k vám návštěvník přišel), tak je to méně spolehlivé. Adresa předchozí stránky se dá teoreticky zjistit z $_SERVER['HTTP_REFERER'], jenže tohle proměnnou nastavuje prohlížeč a v některých prohlížečích se dá změnit.
snazimse
Profil
Děkuji velmi za řešení,je to na stejném webu,nicméně,problém bude,že to nechci vkládat přímo do těch souborů,je to dejme tomu vymyšlená stránka neexistující.


Jde mi o tom aby se to prostě čistě ten skript zaměřil na to,že www.neco.cz/index?php=route1 přišel odtud a že ho odlišuje,od toho druhého
tím,že je www.neco.cz/index?php=route2 na konci 2.

Prostě něco jako třeba javascript:<a href="javascript:history.back(-1);">Zpět</a> jo,že prostě když na to kliknu,tak jsem zpátky na předchozí stránce z které jsem přišel.A to je právě to,aby to zjistilo prostě,že -1 stránka v paměti,je tohle link:www.neco.cz/index?php=route1 z kterého přišel, a hodit to do if, a pokud je == vykonej tohle.

A jak by se to dalo zjistit z $_SERVER['HTTP_REFERER'] to je nějaký obecná formuláře.

Já jsem předpokládal,že existuje něco jako $_SERVER['Previouspage'] abych z toho mohl vycházet.
Pro každou danou stránku.Aby prostě kontroloval,předchozí stránku a podle toho určoval její obsah.
Ale to si asi jen blbě představuji.


Děkuji!
Fisir
Profil
Reaguji na snazimse:
Zkusil sis vypsat hodnotu proměnné $_SERVER['HTTP_REFERER']? Když bys to udělal, zjistil bys, že je to přesně ta tvá „$_SERVER['Previouspage']“. Pozor však na to, že ji lze (snadno) podvrhnout a některé prohlížeče ji nemusejí odesílat vůbec.
snazimse
Profil
Ano ok,vypsalo mi to,to jsem chtěl vědět,já jsem to ještě nepoužíval,takže nevím.

Věřím tomu,že se to dá zneužít.

Díky

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0