Autor Zpráva
videoman
Profil
Dobrý den,
vlastním stránku A a stránku B. Z A chci na specifický odkaz na stránce B odkazovat. Nechci tedy, aby někdo si mohl zapamatovat strankaB.cz/neco.html a rozesílat to ostatním. Chci, aby pokud to někdo pošle někomu, kdo nebyl na stránce A ho to vrátí na specifický odkaz na A. Nevyznám se v tom dobře, ale možná to jde udělat přes cookie, že stránka B dokáže zkontrolovat, jestli člověk byl na stránce A a pokud ne, tak ho tam pošle jako na strankaA.cz/zajimavyodkaznajinoustranku.html. Omezení by bylo třeba na den, prostě v tom dni musí být na stránce A. Pokud víte o nějakém rozumnějším řešením. Napište mi ho.
Děkuji mockrát
Witiko
Profil
Stačí testovat například z PHP hlavičku Refferer a podle toho vykreslit / nevykreslit obsah ($_SERVER['HTTP_REFERER']). Případně by to šlo definovat přes soubor .htaccess. Jisté to samozřejmě není neprůstřelné a kdokoliv může postrčit chybné HTTP hlavičky.

Podobně tak můžeš uživateli předat na původní stránce javascriptem / pomocí PHP / jiného server-side jazyka cookies s omezenou trvanlivostí (třeba právě den, jak jsi říkal), které se budou opět kontrolovat pomocí PHP / jiného server-side jazyka. Opět lze velmi jednoduše obejít, ale normálního uživatele to odradí.

Jinak jak taky vidíš, se trochu dostáváme mimo toto subfórum, tohle není problematika javascriptu, někdo z moderátorů ti toto vlákno jistě brzy přesune.
videoman
Profil
Děkuji mockrát za brzkou odpověď.
Vložil jsem to do javascript, protože jsem doufal, že je tady nějaké lehké řešení přes něj. Nemůžu to mít přes php a nejspíš ani to přes .htaccess by nešlo. Je to takový freehosting a pokud někdo ví, jak se to dá udělat pomocí jednoduchých technologií (html, javascript..). Napište. Děkuji moc
Keeehi
Profil
Takže, pomocí html to nejde, a kdyby jsi to udělal pomocí JS a já si ho měl vypnutý tak co?
Witiko
Profil
videoman:
Nelze, kontrola na straně serveru je nutná. Teoreticky bys skutečně mohl vytvořit a kontrolovat cookies přes javascript, ale je to nesmysl, protože to nebude fungovat nikomu s vypnutým javascriptem a jde o postup typu kanón na vrabce, ačkoliv je pravda že spousta stránek dnes je na javascriptu zcela závislá.

Možná, že pokud nám povíš účel, dokážeme tě nasměrovat k jinému řešení?
videoman
Profil
Díky. Jde o to, že nechci mít obsah přímo na hlavní stránkách. Chci ho mít prostě mimo a nechci zároveň, aby se lidi k němu dostávali odněkud jinde než ode mě. Pokud víte o té cookie + javascript kontrole, tak by to bylo ideální. Netuším jak to udělat. Nevím jak to funguje, takže nevím co by se stalo, kdybys ho měl vypnutý, ale jelikož nejdůležitější část té vedlejší stránky používá JS, tak by ti nefungovala a bylo by to všechno k ničemu. Návštěvník musí mít povolený JS, aby mu jely stránky v pohodě. Případně pokud víte článek o tom někde na netu nebo aspoň jak formulovat dotaz do Google. Snažil jsem se asi hodinu, ale nic podobného jsem nenašel. Díky za ochotu
Witiko
Profil
videoman:
Jde o to, že nechci mít obsah přímo na hlavní stránkách.
Teď jde o to, co myslíš "obsahem". Jestli soubory s obrázky apod. nebo webové stránky. Pokud stránky, možná by bylo dobré zapřemýšlet, jestli by se nevyplatilo použít ajax a soubor druhé stránky nahrát a zobrazit do stránky první.

Co se týče kontroly přes cookies, zapsalo by se takto:
document.cookie = jméno cookie + "=" + obsah cookie + ";expires=" + čas v UTC formátu kdy cookie vyprší + ";domain=" + location.hostname + ";path=/";


Kontrola existence cookie by vypadala asi takto:
function test(name) {
  var split = document.cookie.split(";"), processing;
  for(var i = 0; i < split.length; i++) {
    if(split[i].split("=")[0] == name) return true;
  }
  return false;
}


Kontrola povolení cookies by se testovala takto:
var cookieEnabled = navigator.cookieEnabled && (function(){
  var text = Date.now?Date.now():new Date().getTime(),
      current = new Date(),
      expired = new Date();
  current.setTime(text + 3155692597470);
  current = current.toUTCString();
  expired.setTime(text - 1);
  expired = expired.toUTCString();
  document.cookie = text + "=" + text + ";expires=" + current + ";domain=" + location.hostname + ";path=/";
  var returnValue = !!document.cookie.match('(^|;) ?' + text + '=([^;]*)(;|$)');
  document.cookie = text + "=" + text + ";expires=" + expired + ";domain=" + location.hostname + ";path=/";
  return returnValue;
})()
videoman
Profil
Děkuji za zájem pomoct. Jedná se o html soubory (s javascriptem atd..). Ano, šlo by zobrazit B stránku v A, ale o to mi právě jde. Nechci mít/zobrazit ten obsah na hlavní doméně A, ale prostě někdo mimo, ale chci kontrolovat jak se tam člověk dostane, proto bych potřeboval nějakým způsobem dopsat, že pokud neexistuje cookie - přesměruje to člověka na stránku A. Chci se zeptat, co by se dělo pokud návštěvník nebude mít zapnuté cookie. Děkuji ještě jednou
videoman
Profil
Děkuji moc za rady.
Teď jsem našel na internetu něco podobného, co chci.
http://snipplr.com/view/608/redirect-cookie/
Akorát tam to funguje přesně opačně - pokud návštěvník už tam byl, tak ho to přesměruje. Já chci to opačně. Pokud návštěvník, tam nebyl, tak aby ho to přesměrovalo.

EDIT: A teď jsem asi našel, co můj problém řeší přesně..
http://webdeveloper.com/forum/showthread.php?p=1119057
Předtím jsem nedával do Google redirect .. proto mi to dávalo blbosti
Děkuji ještě jednou
Witiko
Profil
To co jsi našel je jen dokončení toho, co ti nastiňuju v příspěvku [#7], viditelně se psaní čehokoliv vlastního bojíš jako čert kříže. Pokud nebude povolený javascript, tak se javascript neprovede - v tvém případě tedy bude návštěvník vpuštěný i když cookie nemá.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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