Перейти к публикации

Методы передачи данных в модулях PHP в статических страницах


Рекомендованные сообщения

Приветствую.

Демо-версия (пока) sgtours.ru

Если в статической странице выполняется скрипт, у которого есть постраничный вывод результатов поиска из базы, то каким образом формировать ссылки на страницы вывода результатов?

Сразу оговорюсь, что на том же сервере, но вне DLE скрипт отлично работает и с POST и с GET. Равно как и на локальном Open Server.

В составе DLE:

Методом GET данные не передаются вовсе, скрипт не срабатывает, запрос на основе полученных из формы данных не формируется, хотя ссылка сформирована правильно. Ссылки типа:

/hotelsearch.html?type[]=25&rating[]=21&place[]=5&submit=ok
Методом POST происходит формирование первичного запроса на выборку из базы, выводится первая страница результатов. На следующие страницы данные не передаются, запрос не формируется, страницы открываются пустые. Ссылки типа:
/hotelsearch.html?page=2[/code]

Ссылка на сообщение
Поделиться на других сайтах

Ну написали бы: "тупень, иди учи матчать" хотя бы :-)

С версии 6.3 сайты делаем только на DLE, лицензий мы с клиентами чуть более 60 штук купили, а на форуме меня даже послать качественно не могут :-) :-) :-)

Изменено пользователем zilber
Ссылка на сообщение
Поделиться на других сайтах

Документацию читал про передачу параметров при вызове своего скрипты, но ведь эти параметры мой скрипт генерирует уже после обращения к нему

Ссылка на сообщение
Поделиться на других сайтах

zilber, не нужно делать через статическую страницу. Нужно вот так: http://www.kanaspo.com/?do=bestnews

См. документацию: http://dle-news.ru/extras/online/modules_include.html

Также вы можете использовать подключение своих модулей и для замены основного блока, где выводятся новости и другая основная информация, для этого необходимо использовать данный тег совместно с тегами [aviable=раздел]текст[/aviable] и [not-aviable=раздел]текст[/not-aviable] Описание тегов смотрите в документации в разделе "Вывод новостей на страницах". Вы можете использовать как стандартный список разделов, так и использовать создание собственного раздела сайта, передав его в URL браузера. Рассмотрим простейший пример. Вы хотите добавить к стандартным разделам сайта, добавить свой раздел и выводить информацию в нем из вашего модуля. Допустим вы хотите создать раздел FAQ. Для этого в шаблоне main.tpl прописывается конструкция:

[aviable=faq]{include file="engine/modules/mymod.php"}[/aviable]

[not-aviable=faq]{content}[/not-aviable]

После подобного подключения помимо работы стандартных разделов сайта при обращении по адресу: http://site.ru/index.php?do=faq вместо новостей будет выводится ваш новый раздел из вашего модуля.

А теперь простым языком, создал .php файл в папке engine/modules, в нём:

<?php

if( ! defined( 'DATALIFEENGINE' ) ) {

    die( "Hacking attempt!" );

}

$tpl->load_template( 'mymod.tpl' ); // подключаем шаблон


$tpl->set( '{demo}', '123' ); // можно создавать свои {коды}


// сюда пихаешь свой код, все свои GET и прочеее


$tpl->compile( 'content' ); // говорим dle, чтобы выводил работу модуля через {content}, который в main.tpl

$tpl->clear();

?>
теперь в engine/engine.php подключаешь его:
case "mymod" :

        include ENGINE_DIR . '/modules/mymod.php';

        break;

Всё! Теперь перейдя по ссылки site.ru/?do=mymod у тебя будет срабатывать файл engine/modules/mymod.php, а в качестве шаблона брать mymod.tpl

Теперь можешь задавать любые параметры url

Ссылка на сообщение
Поделиться на других сайтах

Дело сдвинулось :-)

Правда при переходе на следующие страницы - сразу hacking attemp

С hacking attempt разобрался. Но форма GET в поле action имея результирующим адресом /?do=hotels, передает только ?

Ссылка результата получается:

/?(данные формы)&submit=ok

вместо

/?do=hotels&page=1&(данные формы)&submit=ok

Перепробовал все варианты action, включая php-вставки.

Ссылка на сообщение
Поделиться на других сайтах

zilber, что-то делаешь не так: http://www.kanaspo.com/?do=bestnews&id=123&page=123&name=zilber

Прокрути страницу в самый низ, там будет тебе приветствие, если ник свой уберёшь из ссылки, приветствие будет анонимусу

Результат обработки get я вывожу через {код}

if ($_GET['name'] == 'zilber') {$demo = 'Привет zilber!';}else{$demo = 'Привет анонимус';}

$tpl->set( '{demo}', $demo );
Ссылка результата получается: /?(данные формы)&submit=ok вместо /?do=hotels&page=1&(данные формы)&submit=ok
добавь в форму перед <form>
<input type="hidden" name="do" value="hotels" />[/code]

a action у формы делай на /index.php

Ссылка на сообщение
Поделиться на других сайтах

zilber, что-то делаешь не так: http://www.kanaspo.c...123&name=zilber

Прокрути страницу в самый низ, там будет тебе приветствие, если ник свой уберёшь из ссылки, приветствие будет анонимусу

Результат обработки get я вывожу через {код}

if ($_GET['name'] == 'zilber') {$demo = 'Привет zilber!';}else{$demo = 'Привет анонимус';}

$tpl->set( '{demo}', $demo );
Ссылка результата получается: /?(данные формы)&submit=ok вместо /?do=hotels&page=1&(данные формы)&submit=ok
добавь в форму перед <form>
<input type="hidden" name="do" value="hotels" />
a action у формы делай на /index.php
Отлично! Спасибо!!!!!!! Все работает, наконец-то... Правда это:
<input type="hidden" name="do" value="hotels" />[/code]

расположил внутри формы, иначе не срабатывало...

Гениально!!

Вывод происходит черти где на странице, но это уже мелочи, это я отыщу...

Спасибо огромное еще раз! Отлегло...

PS - и это мне урок. Достал уже пару учебников и десяток уроков. Влетел в задачу, ранее не ставившуюся передо мной и чуть не...

Изменено пользователем zilber
Ссылка на сообщение
Поделиться на других сайтах

Еще раз благодарю ODYS за неоценимую помощь на страницах форума и в личных сообщениях!

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...