Забрана за директно отваряне.

inferno16

Registered
Имам следната функция:
[js]function showPopup(page)
{
document.getElementById('new-pop').style.display = 'block';
document.getElementById('new-pop-content').innerHTML = '<br><br><br><center><img src="images/load.gif"></center><br><br><br><br>';
$("#new-pop-content").load("<?php echo $smurl; ?>" + page);
}[/js]
след това я викам в див:
<div class="button-l" onclick="javascript:showPopup('page.php')"></div>
идеята е да отвори изкачащият прозорец и да зареди в него page.php. До тук всичко добре, само че как да забраня влизането директно в страницата, ако някой напише в бара http://somehost.com/page.php?
 
неможеш .. но понеже и аз съм се питал това и съм стигнал до извода, че трябва да го накичеш със някакви променливи, които да се променят постояяно и ако ги няма тези променливи със точните стойности да не показваш нищо ..

Примерно :
- ако ползваш time() ..
Код:
$("#element").load('page.php?f=135453232');

page.php

Код:
 $time = time()-60; // sega  - 1 min
 $get_time = $_GET['f']; // wzima wremeto koeto sme dali

 if( $get_time < $time)
{
  echo "erorr";
}
else
  {
  // code
}

идеята тука е да направиш проверка дали страницата е отворена в рамките на 1 мин .. демек веднага след повикването и или е отворена от потребителя .. незнам дали ме разбра, но ето ти по-просто обяснение.

1. придаваш таймстампа на файла чрез ГЕТ променлива, която да е съвсем произволна .
2. този таймстамп ПОТРЕБИТЕЛЯ няма как да знае какво точно да сложи и ако се опита да отвори прозореца с някакви произволни числа или не напише нищо няма да му покаже нищо .. дори и да копира кода .. той става СТАР зареди таймстамп-а и проверката .. разбираш ли ? и тва е начина .. поиграии си малко и ще видишш .. ;)
 
Хрумна ми нещо друго няма ли да стане със POST и <input type="hidden">?

Edit: не съм сигурен дали съм разбрал напълно но така със ГЕТ няма ли да може да цъкне на бутона и в следващата минута да може да си напише адреса с таймстампа в url бара.

Ако някой има друга идея да казва.
 
inferno16 каза:
Ако някой има друга идея да казва.
Аз имам и казвам.
в page.php слагаш - на първия ред! (ако имаш header за кодировката, може и на 2-ри ред :)):
PHP:
if($_SERVER['PHP_SELF'] == "/papkata/v/koqto/e/tozi/fail.php"){
  die('Чао!');
}
 
Искаш да кажеш че ако сложа въпросният page.php да речем в includes ако напишат директно линка до него ще върне includes/page.php а ако го отворят със js функцията за поп ъп-а няма така ли?
ЕДИТ: Както си и мислех - не става.
 

Back
Горе