Forum Webscript.Ru

Программирование => PHP => Тема начата: от 21 Марта 2001, 01:41:12

Название: Нужна помощь в написание скрипта.
Отправлено: от 21 Марта 2001, 01:41:12
Hi,

Возник срочный вопрос  к специалистам языка PHP или JavaScript.
У меня есть шаблон с шапкой, меню и т.д. в файле "blank.phtml", в него скриптом  

function foo ($in) {
if ($in != "") {$out=$in;}
else {$out="indekc.htm";} return $out;}?>


вставляется текст из разных *.HTM файлов. Получается все ОК.
Но если открыть *.HTM файл сам по себе (например на него дала ссылку поисковая система) он открывается без меню и шапки, так вот можно ли сделать скрипт (не забывая, что файлы HTM, теоретически можно переименовать в PHP, но не удобно это), что при открытии *.HTM файла открывался бы не он, а хотя бы "index.shtml", конечно желательнее, что бы присоединялся файл "blank.phtml + имя.htm".

Заранее благодарен, Андрей. santy@chat.ru
Название: Нужна помощь в написание скрипта.
Отправлено: lodevar от 21 Марта 2001, 13:26:19
А ты поставь во все HTM файлики редирект на твой скрипт.
Название: Нужна помощь в написание скрипта.
Отправлено: от 22 Марта 2001, 00:45:27
Цитировать
lodevar (21-03-2001 13:26):
А ты поставь во все HTM файлики редирект на твой скрипт.

Не получается.
Этот скрипт написан в шаблоне blank.php и при нажатии ссылки blank.php?имя-файла.htm вставляет в шаблон blank.php файл имя-файла.htm, а если там редирект то он производится до бесконечности.
Название: Нужна помощь в написание скрипта.
Отправлено: lodevar от 22 Марта 2001, 10:15:37
Сделай проверку - если из скрипта загружается html, то Ок, иначе - редирект.
Название: Нужна помощь в написание скрипта.
Отправлено: от 22 Марта 2001, 13:33:13
Цитировать
lodevar (22-03-2001 10:15):
Сделай проверку - если из скрипта загружается html, то Ок, иначе - редирект.

Кх... Легко сказать... Я и задаю вопрос, что бы мне помогли в написании скрипта, сам-то я вроде как смахиваю на чайника, в РНР во всяком случае :-)
Название: Нужна помощь в написание скрипта.
Отправлено: lodevar от 22 Марта 2001, 14:01:08
Да ладно тебе прибедняться! :-)
Смотри http://php.net/manual/en/language.variables.predefined.php

там говорится о переменной HTTP_REFERER.
Пишешь, например, так:
if($HTTP_REFERER=="путь_к_моему_скрипту")
{
  print "ура! меня запустил мой скрипт!";
}
else
{
  print "Уйди от меня злобный хакер!";
}

Успехов!
Название: Нужна помощь в написание скрипта.
Отправлено: от 15 Апреля 2001, 09:20:12
Конечно надо проверять HTTP_REFERER! Есть у меня один примерчик, писаный правда для коррекции показаний счетчика... но шапку так тоже можно вставлять. Зайди http://dmytro.dax.ru/index.phtml?link=9
Кстати там тоже так все сделано - шапка хранится в одном файле но ты можешь значение link как угодно менять а ее ты увидишь.
Название: Нужна помощь в написание скрипта.
Отправлено: AliMamed от 16 Апреля 2001, 11:08:08
не надо делать файлы с html для инклуда с расширение htm. делай какие нибудь .inc .dat тогда поисковики их трогать не будут. или пропиши robots.txt
и в переменных, передаваемых через ENV очень опасно передавать имя файла и расширение целицом для инклуда.
Название: Нужна помощь в написание скрипта.
Отправлено: от 16 Апреля 2001, 20:19:30
Интересно пишешь о опасности, но не понятно.
Можно подробней, почему нельзя передавать имя файла?
Название: Нужна помощь в написание скрипта.
Отправлено: AliMamed от 17 Апреля 2001, 10:42:59
Цитировать
Denim (16-04-2001 20:19):
Интересно пишешь о опасности, но не понятно.
Можно подробней, почему нельзя передавать имя файла?

blank.php?имя-файла.htm - при таком раскладе можно будет проинклудить любой файл, находящийся в public_html, а если на сервере где ты хостишься вообще никто не думал о безопасности, то вообще любой файл с этого сервера.
Название: Нужна помощь в написание скрипта.
Отправлено: от 17 Апреля 2001, 19:06:40
А как они узнают имя файла?
И можно ли залезть в директорию cgi-bin?

Цитировать
AliMamed (17-04-2001 10:42):
Цитировать
Denim (16-04-2001 20:19):
Интересно пишешь о опасности, но не понятно.
Можно подробней, почему нельзя передавать имя файла?

blank.php?имя-файла.htm - при таком раскладе можно будет проинклудить любой файл, находящийся в public_html, а если на сервере где ты хостишься вообще никто не думал о безопасности, то вообще любой файл с этого сервера.
Название: Нужна помощь в написание скрипта.
Отправлено: от 20 Апреля 2001, 08:47:27
Да не надо предавать файл как параметр, передай какую-то переменную а потом по ней инклудь файл. Сам так делал
http://dmytro.dax.ru/index.phtml
Название: Нужна помощь в написание скрипта.
Отправлено: AliMamed от 20 Апреля 2001, 10:41:02
тогда придется забивать все переменные - это не очень удобно. проще имхо делать так:

вызывается скажем
www.you.ru/index.phtml?open=document
для открытия соответственно файла /home/user/public_html/document.txt

а в index.phtml выполняется такой код:

include("/home/user/public_html/".$open.".txt");
Название: Нужна помощь в написание скрипта.
Отправлено: от 23 Апреля 2001, 04:47:55
Цитировать
AliMamed (20-04-2001 10:41):
тогда придется забивать все переменные - это не очень удобно. проще имхо делать так:

вызывается скажем
www.you.ru/index.phtml?open=document
для открытия соответственно файла /home/user/public_html/document.txt

а в index.phtml выполняется такой код:

include("/home/user/public_html/".$open.".txt");

Так фищка в том, что юзер не знает названий файлов, т.е. не могет сам взять и откріть в браузере document.txt бкзо всех твоих шапок, хотя конечно при большом количестве страниц уследить за переменными тяжело.
Название: Нужна помощь в написание скрипта.
Отправлено: AliMamed от 23 Апреля 2001, 11:19:30
"так фишка как раз в том", что blank.php?/etc/passw в ентом случае то и может получится =)