Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать запретить прямой вход на страницу 
:(
    Опции темы
Rusman
Дата 23.7.2007, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.5.2006
Где: Пермь

Репутация: нет
Всего: нет



Здравствуйте!
Вот у меня есть страница например primer.php и proverka.php 
Как мне сделать так чтобы перейти на страницу primer.php прямым образом нельзя было, а только по ссылке через страницу proverka.php
Спасибо!
PM MAIL ICQ Skype   Вверх
belousov
Дата 23.7.2007, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 21.11.2006
Где: Москва

Репутация: нет
Всего: 6



через redirect можно

 есть такая штука 
Код

headers("Location:adres.php")



--------------------
NIHIL VERUM EST LICET OMNIA 
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 23.7.2007, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Никак.
Вариант - объединить два файла в один.
PM ICQ   Вверх
sTa1kEr
Дата 23.7.2007, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Если оба файла на одном хосте, то можно генерировать какой-нибудь ключ в proverka.php и записывать его в сессию. А в primer.php сверять присланный ключ с тем, что в сессии.
proverka.php
Код

session_start();
$token = md5(uniqid(rand(), true));
$_SESSION["token"] = $token;
echo "<a href=\"primer.php?token=$token\">primer.php</a>";


primer.php
Код

session_start();
if (isset($_SESSION["token"]) && isset($_GET["token"]) && $_SESSION["token"] == $_GET["token"])
{
   $_SESSION["token"] = null;
   $_SESSION["allow"] = true;
   echo "<script language=\"javascript\">document.location = '".basename(__FILE__)."';</script>";
   exit();
}

if (isset($_SESSION["allow"]) && $_SESSION["allow"])
{
   $_SESSION["allow"] = false;
}
else
{
   die("Sorry, access is forbidden");
}

echo "<h1>Welcome!</h1>";


Это сообщение отредактировал(а) sTa1kEr - 23.7.2007, 13:34
PM MAIL   Вверх
wolfmessing
Дата 23.7.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 24.4.2007

Репутация: нет
Всего: 1



А разве нельзя использовать КОНСТЫ?

primer.php:
Код

if (!defined('ROOT')) {
  die("Доступ запрещён");
}else{echo "Превед, МЕДВЕД";}


а проверка.php:
Код

define('ROOT', true);
include("primer.php");


Это сообщение отредактировал(а) wolfmessing - 23.7.2007, 14:31
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 23.7.2007, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



sTa1kEr, вариант, но при этом прямоеобращение к скрипту primer.php все равно будет возможным. Вопрос лишь в том, что программист отпрограммирует для выполнения в этом случае.

Цитата(wolfmessing @  23.7.2007,  14:27 Найти цитируемый пост)
А разве нельзя использовать КОНСТЫ?

Тут уж проще объединить два файла, хотя это уже зависит от общей функционьной схемы работы системы.
PM ICQ   Вверх
wolfmessing
Дата 23.7.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 24.4.2007

Репутация: нет
Всего: 1



О, да он же ссылку просил, я глубоко извиняюсь, я его только подключил, тогда да пример sTa1kEr больше подходит, а вообще мож через ФОРМЫ попробовать?
PM MAIL WWW ICQ   Вверх
sTa1kEr
Дата 23.7.2007, 20:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Mal Hack, да, верно, но это единственный надежный способ проверить, что на страницу попали именно с proverka.php. Еще есть вариант проверять referer через mod_rewrite, но, естественно, это очень не надежный способ.

.htaccess
Код

RewriteEngine on
RewriteCond %{REQUEST_URI} .*primer.php$ 
RewriteCond %{HTTP_REFERER}  !.*proverka.php$
RewriteRule ^.*$ / [F]

Тут уж все зависит от того, для чего требуется запрещать прямой доступ к скрипту.

Это сообщение отредактировал(а) sTa1kEr - 23.7.2007, 20:55
PM MAIL   Вверх
smartov
Дата 23.7.2007, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



С реврайтом красивый ход  smile 
PM MAIL   Вверх
crow
Дата 20.8.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 1.6.2007
Где: Россия->Кислов одск

Репутация: нет
Всего: нет



А помоему с константами самое то... сам так делаю...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0557 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.