Есть две папки - с файлами .doc и, полученными из них, .html.
Есть два скрипта (тексты приведены урезанные для простоты), index.php:
foreach ($conn->query($sql) as $info) {
print '<a href = addsearch.php ? link_html='.$info["path_html"].' & link_doc='.$info["path_doc"].' \>'.$title.'</a>';
}
и addsearch.php:
<?php
$html = file_get_contents($_GET['link_html']);
$doc = $_GET['link_doc'];
$script = "<script type='text/javascript'>
...
</script>
<input type='button' onclick='javascript: FindOnPage(\"text-to-find\"); return false;' value='Поиск на странице'>
"; // Конец добавляемого кода
$html = str_replace('</body>', $script . 'Original: <a href=http://localhost/DOC/' .$doc. '>' .$doc. '</a></body>' , $html); // Добавление javascript и формы поиска.
echo $html; // Вывод HTML документа с добавленной формой поиска и javascript.
?>
На главной странице index.php формируется список ссылок на .html файлы.
Когда пользователь кликает по ссылке, то запускается addsearch.php, который добавляет в выбранную страницу javascript и форму поиска и отображает страницу.
Также на эту страницу добавляется ссылка на оригинальный .doc файл.
Всё работает, но только на коротких именах и путях, из-за ограничения метода GET.
Я хочу переделать программу, чтобы от клиента передавать на сервер через GET только ID для выбранной ссылки? (он есть в результатах запроса - $info["id"] )
Как-то так:
foreach ($conn->query($sql) as $info) {
print '<a href = addsearch.php ? link_html='.$info["ID"].' \>'.$title.'</a>';
}
( Ибо сейчас от клиента на сервер передаются обратно полученные данные, что в общем-то глупо.)
Мой Вопрос: Как адрес структуры info (полученных из базы данных) передавать между файлами php на сервере или может быть даже исключить файл addsearch и передавать между функциями?
(Передачу через переменные сессии использовать опасаюсь, так как они, я так понял, пишутся в файл на сервере, а зачем мне миллион обращений к диску, если можно передать ссылку через память?)