Не подскажите как надо правильно написать Есть материал в К2, в этом материале есть ссылка, которая запускает программу на php вот сама программа <?php $catid = JRequest::getInt( 'catid', 1, 'get' ); $articleid = JRequest::getInt( 'id', 1, 'get' ); echo "<h1>Id: $id</h1>"; ?> Получаю ошибку Fatal error: Class 'JRequest' not found in W: domains\...\...\l.php on line 2
Спасибо, я ждал от вас ответа и ещё от одного товарища... Я не знаю в джумле технологии вызова внешних программами на PHP с передачей параметра (в данном случае id страницы), инструкции как это делается на английском, для нашей деревни это тяжко Суть проблемы мне надо вызывать форму авторизации(она запускается и отрабатывает нормально, но туда надо передать ещё id), по id найти этот материал в бд и изменить его. Вот вкратце и всё. Есть два варианта не использовать объекты джумла, как предлагает "Fedor Vlasenko"(http://joomlaforum.ru/index.php/topic,288697.0.html).. и этот путь мне больше нравится, но $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT); var_dump($id); у меня тоже пусто Поэтому как всё это делается на самом дела, что я должен и где прописать, чтоб запустилась эта внешняя программа по ссылке и выдала на экране номер материала откуда она была запущена. Где я должен прописать функцию require_once, чтоб эту программу джумла подключила??
Откуда запускается ? Ты можешь получить значение своей переменной с массива POST, конечно применив фильтрацию PHP filter_var. Код (PHP): preg_replace('/\D/', '', filter_var($one_click[1], FILTER_SANITIZE_NUMBER_INT)); Я думаю эта тема не для ошибок Джумла, она не виновата . Вывод модуля в отдельном файле
Авторизация запускается по ссылке, которая находится в материале. Но это не важно, (я её привёл для общего описания проблемы). В данный момент есть джумла, материал в ней и ссылка в материале, по ссылке запускается внешняя программа php, которая должна вывести id материала из которой она запущена. Нет тут массива POST
Вообщем- если форма,в ней указывается метод передачи - GET or POST или общий Request . Если данные прошли, то и проверь , где name_id имя поля с формы Код (PHP): var_dump($_REQUEST'name_id'); http://php.net/reserved.variables.request
спасибо, формы нет . Есть админ панель->Материалы->Создание материала->ссылка(<p><a href="x\l.php">xxx</a></p>)->Сохранить->вывод страницы в браузере на локалхосте ->нажатие на ссылку. Всё Никаких форм.
Код (css): href="x\l.php?name_id=1" И проверяй так же в своем скрипте . А значение id,которое можно вывести в скрытое поле в шаблоне статьи можно подставить с помощью яваскрипт . Код (PHP): var_dump($_REQUEST'name_id');
Большое Вам спасибо, но вроде там запятая пропущена(я перепробовал два варианта), да и фиг с ней...Хотелось бы ещё спросить, как например сделать reload(обновление страницы) , но в каком разделе задать этот вопрос не нашёл ...
Хм,а за что оспсб ? Что получилось в результате ? Вопрос снова в программирование, не как какую кнопку кликнуть ?
Программирование это слишком громко будет... Была бы ветка программирование для чайников это вроде моё.. По первому вопросу я записал в следующем виде(с запятой) Код (PHP): <?php var_dump($_REQUEST,'name_id'); ?> Да переменная показалась(осталось её найти в массиве), программа выполнилась,, но не вернулась в точку(на ту же страницу), откуда запустилась... Использование $_SERVER['HTTP_REFERER'], в инете пишут не самый лучший способ... А других вариантов я не знаю... Т.е. перед запуском программы я должен что-то запомнить и после выполнения вернуться на ту же страницу
Аякс тебе в помощь . С помощью аякса ты отправляешь данные на скрипт, в котором выполняется код и результат или ошибку может вернутся на твою страницу и выводишь в нужном элементе . --- добавлено: 14.12.2016, первое сообщение размещено: 12.12.2016 --- ВОт пример работы аякс . Я на этом примере сделал скрипт покупку в Один клик для сайта на Битрикс. Если AJAX , то и ссылка не нужна. Создать обычный элемент, и написать обработчик события click j Код (javascript): Query.noConflict(); jQuery(function(){ jQuery('.button_send').on('click', function(){ var socuser_login = jQuery('#socuser_login').val(); // здесь получить id юзера // Проверяем заполненность обоих полей if (socuser_login) { // Отправляем асинхронный запрос на страницу, на которой будет происходить отправка данных jQuery.post( '/ajax/send_message.php', {SOCUSER_LOGIN:socuser_login}, function ( data ) { jQuery( '.sendMessage' ).text( data ); jQuery( '.sendMessage' ).show(); } ); } }); }); И потом показать сообщение в элементе страницы Код (html): <p class=".sendMessage">здесь будет ответ от скрипта</p>