Autor Zpráva
anonymus
Profil *
Na stránce "index.php" mám po splnění daného požadavku odkaz na stránku "home.php".
Jak docílit toho, aby se stránka "home.php" nezobrazila při zapsání do adresního řádku, ale pouze z toho odkazu na indexové stránce? ( aby ta podmínka nemohla být obejita )
Jde to?
Díky.
ninja
Profil
Musíte si návštěvníka na index.php nějak označit. Cookie nebo parametr v url.
anonymus
Profil *
ninja:
Musíte si návštěvníka na index.php nějak označit. Cookie nebo parametr v url.
Prosím o větší nakopnutí :-)
Radek Cvek
Profil
nestačilo by při splnění podmínky nastavit session:
$_SESSION["podminka"]='OK';

a na začátku "home.php" by potom bylo otestování podmínky:
if ($_SESSION["podminka"]!='OK') header("Location: index.php");
David1256
Profil
Jestli je ta podmínka heslo, vypadá to, že to máš dělané přes přístup k souboru za pomocí formuláře, do kterého jakoby napíšeš cestu k souboru. Zkus to udělat jinou možností z těchto možných http://www.jakpsatweb.cz/heslo.html
anonymus
Profil *
Radek Cvek:
asi jsem to tou podmínkou špatně vyložil....jde o to, že jsou dva odkazy...pokud souhlasí, tak ho to navede na "home.php" a pokud nesouhlasí, tak ho to přesměruje "google"
anonymus
Profil *
David1256:
ne...o zaheslovaný přístup nejde
Taps
Profil
anonymus:
a to nejde udělat přes podmínku if ??
anonymus
Profil *
Taps:
a jde?
Radek Cvek
Profil
já nerozumím tomuto: jsou dva odkazy...pokud souhlasí - dva odkazy odkud nebo kam vedou? Jak mohou dva odkazy souhlasit? s čím? (Dva odkazy souhlasí, pokud jsou si rovny? - kde je vezmu?)
... jinak pokud to dobře chápu a jde o to, že když se spustí "index.php", tak přes něj mohu odkazem na "home.php" a při přímého vložení "home.php" do url se to přesměruje na google, tak furt platí, že:
do "index.php" dám $_SESSION["podminka"]='OK';
a do "home.php" if ($_SESSION["podminka"]!='OK') header("Location: http://www.google.cz");
TomášK
Profil
Možná jde kontrolovat Referer, který je uložený v $_SERVER['HTTP_REFERER'];, ale nevím, jak moc je to spolehlivé - možná o nějaké návštěvníky přijdeš, protože ho neodesílají. A podstrčit ho také není problém
ninja
Profil
Referer rozhodně nepoužívat.
anonymus
Profil *
Radek Cvek:
jsou dva odkazy...a pro příklad:
jeden směruje na home.php (jsi-li kluk, tak vstup)
druhý směruje na google.com (nejsi-li kluk, tak tě pošlem jinam)
Radek Cvek
Profil
index.php
<?php
  session_start();
  $_SESSION["kontrola"]='jdu z indexu'; 
  session_regenerate_id();
?>
<html>
  <head>
    <script type="text/javascript">
      function loadXMLDoc(kdo)
        {
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        if (kdo=='kluci') xmlhttp.open("GET","s.php?vyber=kluci",false);
        else xmlhttp.open("GET","s.php?vyber=holky",false);    
        xmlhttp.send();        
        }
    </script>
  </head>
    <body>
      <a href="javascript: loadXMLDoc('kluci');window.location='home.php';">Kluci</a>
      <a href="javascript: loadXMLDoc('holky');window.location='home.php';">Holky</a>
    </bod

s.php
<?php;
  session_start();
  session_regenerate_id();
  if ($_SESSION["kontrola"]=='jdu z indexu') $_SESSION["vyber"]=$_GET["vyber"];
?>

home.php
<?php;
  session_start();
  session_regenerate_id();
  if ($_SESSION["kontrola"]!='jdu z indexu') header("Location: index.php");
  if ($_SESSION["vyber"]!='kluci') header("Location: http://www.google.com");
?>
HOME - KLUCI

Nevím, jestli je to správné řešení - prostě v indexu zavolám při odkazu AJAX funkci, která v souboru s.php nastaví session výběru a hned po ní volám javascriptové přesměrování na home.php.
V home.php se zkontroluje session a jestli neodpovídá výběru, přesměruje se to na google. Takže pokud někdo neklikne na odkaz "kluci", nenaplní se session a nedostane se na home.php.
anonymus
Profil *
Radek Cvek:
možná ještě někde dělám chybu, ale vyberu-li jakýkoliv z těch dvou odkazů na indexové stránce, tak mi oba dva směrují na google.com :-(
Radek Cvek
Profil
v home.php dej jenom
<?php;
  session_start();
  session_regenerate_id();
  echo $_SESSION["vyber"];
?>

a pak zkus klikat na odkazy a napiš, co vypisuje home.php
anonymus
Profil *
Radek Cvek:
nyní sice odkazy směřují tam kam mají, ale nefunguje ta podmínka, že se na home.php nedostanu přímým zápisem do adresního řádku...jakmile zapíšu url ...../home.php, tak se tam dostanu
Radek Cvek
Profil
a nevypisuje se kluci nebo holky?
jestli ne tak možná se musí přidat na začátek všech souborů hned po session_start();
session_register("vyber");
session_register("kontrola");

a home vrátit do původního stavu
anonymus
Profil *
Radek Cvek:
stále stejné....po zadání ....home.php se tam dostanu
Radek Cvek
Profil
Nechápu - přece se na začátku kontroluje if ($_SESSION["vyber"]!='kluci') - mě to funguje
A je to na webhostingu s PHP?
anonymus
Profil *
Radek Cvek:
zkouším to na localhostu
anonymus
Profil *
Radek Cvek:
zkusím to ještě zítra nanovo...ale určitě prozatím děkuji za obětovaný čas ;-) , kterého nebylo málo
anonymus
Profil *
tak se mi to bohužel nezdařilo :-(

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0