Как парсить PHP код в Js файлах? Прописал в .htaccess: Код (Text): AddType application/x-httpd-php .js AddHandler x-httpd-php5 .js <FilesMatch "\.(js|php)$"> SetHandler application/x-httpd-php </FilesMatch> И ничего не происходит.
Впрочем мне нужно в обычном .js скрипте использовать php. Например: Код (Javascript): $("[data-action='test']").on('click', function() { alert(<?='test'?>); })
@Михаил Запаленов, видишь? Это вот то, о чем я говорил по части JQuery-коммьюнити. @Danil005, а каким образом PHP, серверная платформа, должен работать на клиенте в яваскрипте?
@Fell-x27 Слушай можешь кинуть пример гитхаба хороший реализации модели запроса к БД, защищенной и т.д чтобы понять все
НУ а при чем тут выполнение php в javascript? Это богомерзкий костыль, из-за которого часть статики будет идти через php-машину ради полутора значений. Но выполняться он будет все равно на сервере, чтобы затем быть оданным клиенту. Хз, накой и кому это понадобилось, но клиентский код, если ему нужны данные с сервера, может запросить их напрямую, без этих огородов. И да, статья слита в минуса. Заслуженно. Это оффтоп для данного треда, в общем-то. Если интересует работа с БД, просто курни про плейсхолдеры(они есть не только у PDO, но и у MySQLi) и про экранирование строк. Это все есть в доке php.
Есть другие способы передать скриптам данные, считанные php. data-атрибуты например. И браузер, конечно, php не выполняет в любом случае, просто идёт отдельных запуск для того, чтобы сгенерить такой скрипт.
@mkramer, понимаешь, тут и встает проблема с защитой, нужно тогда придумывать как шифровать данные, чтобы их нельзя было подменить, приходиться делать проверку еще раз уже в Ajax-обработчике, потому что я передаю данные через Data...
@Danil005, кто полезет в твой html что-то там менять? Никому нормальному это нафиг не надо. А в AJAX-обработчике по-любому должно быть куча проверок, поскольку всё, что пришло на сервер, всё от хакера. --- Добавлено --- Понятно, что там не должно быть данных, которые критически могут повлиять, типа цены за товар, поменял data-атрибут в браузере и купил MacBook за 1 рубль. Но id товара к примеру - да ради бога. Поменяет - получит другой товар. Или вообще ничего не получит
кто подменит данные ? Пушкин с гробу выскочит и подменит? или Лермонтов ? А мож сам Лев Толстой ? Это называется аутентификация
С защитой чего конкретно? И как это связано с тем, что ты предложил? Или ты думаешь, что мне большой проблемой будет воткнуть брейкпоинт на онлоад, перезагрузить страницу, дойти до строки, где ты считаваешь супер-защищенные данные, после чего подменить их через браузерную консоль? Защитил так защитил. Всегда исходи из того, что клиент априори скомпрометирован.
нет, просто я думал так, что он будет передавать данные PHP в клинскую часть (js) по мере необходимости. По сути согласен, связать сервер и клиента наверно может Node.Js, поэтому я так и сделаю.
Ну node оправдан, если надо что-то типа веб-сокетов использовать, а так и просто к php можно обратиться
Все смешалось, люди, кони, клиент, сервер, пых, JS... Но так и не стало понятнее, зачем? А, главное, такое чувство, что ты сам не до конца понимаешь, что хочешь получить, ибо все в кашу, бро.
Впрочем, я хотел сделать класс, которые будет создать Ajax-запрос. А именно, например: PHP: namespace Base\App; class Ajax ..(интерфейс, наследование, бла-бла) { public static function CreateAjaxRequest($url, $button, $action, $form) { echo '<a data-action='test'>'.$button.'</a>'; //И передать в конец файла script.js функцию с ajax($action, $url, $form, $button) } } script.js Код (Javascript): function ajax($action, $url, $form, $NAMEbutton, $header, $dataType='json', $typeOn='click', $typeSend='POST') { $("[data-action='"+$action+"']").on( $typeOn, function( e ) { $("[data-action='"+$action+"']").attr('disabled', true); $("[data-action='"+$action+"']").html(load_icon); jQuery.ajax({ url: $url, type: $typeSend, dataType: $dataType, data: jQuery($form).serialize(), success: function(response) { if( $dataType == 'json' ) { if( response.type === 'error' ) {notification(response.info, response.type, 5000);} else { notification(response.info, response.type, 5000); if( $header != '') { $(location).attr("href", $header); } } } else { notification(response, 'info', 1500000); console.log(JSON.parse(response)); } var ti=setInterval(function() { $("[data-action='"+$action+"']").text($NAMEbutton); $("[data-action='"+$action+"']").removeAttr('disabled', true); clearInterval(ti); }, 3000); }, error: function(response) { notification('Внутренняя ошибка. (Reason: '+response+')', 'error', 5000); } }); e.preventDefault() }); } А потом где-то в PHP коде, просто вставлять: Base\App\Ajax::CreateAjaxRequest('/test/ajax.php/', 'title', 'action', 'form');
Так выведи скрипт в документ через echo or print и внизу скрипта вызове его и все, при обращении к классу он будет распечатывать скрипт в документы echo "<script>... myscript(){} myscript();</script>"; и вызывать его после распечатки автоматом ПоняЛ?
Што, почему а главное зачем ? Удали нафиг. Забудь. Что ты делаешь ?Напиши Что ты хочешь получить в итоге. Каклва сия цель крестового похода? не надо кода. Просто напиши не то что ты пытаешься сделать и не то что ты хочешь. А напиши зачем ты это хочешь сделать. --- Добавлено --- Потому что вот это: Полное ж какое то. --- Добавлено --- Хватит советовать всякую хрень. Зачем ? Какой смысл? ТС слушай внимательно и запоминай первое правило разработки в вебе. Во время исполнения серверного скрипта никакого вывода не должно быть и в помине. Или если же он идёт используется ob_start для того чтобы предотвратить вывод перед отправлением заголовков.
Я вот кстати тоже так и не понял какую цель преследует аффтар, но догадываюсь что он хочет передать на клиент некие данные из PHP для дальнейшей обработки яваскриптом. Я в таких случаях либо делал input type=hidden, в value которого выводил нужные для передачи значения, а в скрипте подцеплял их через id, либо если данных много формировал на клиенте в отдельном блоке script переменную-объект, содержащий необходимые параметры.