Нативный php.Что за этим стоит? - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ admin@visavi.net (admin) admin@visavi.net (admin) Sun, 27 Nov 2022 01:00:00 +0300 14. <strong>lolpetyaz</strong>, ну пользовательские переменные надо фильтровать. Чти Вантуза, он писал уже о проблемах, которые могут возникать. Я мало представляю себе шаблонизатор, который на прямую берет адрес и использует его для загрузки шаблона. Обычно это делается через роутер, а роутер уже использует всякие регулярки и т.п. https://visavi.net/topics/42520/684953 Нативный php.Что за этим стоит? Артур Sat, 01 Aug 2015 15:21:40 +0300 Сообщения https://visavi.net/topics/42520/684953 Ну смотри, условно имеется список темплейтов (или модулей, библиотек, чего угодно)<br> <pre class="prettyprint linenums pre-scrollable"> &lt;?php $tpls=array(&#039;head&#039;, &#039;foot&#039;, &#039;menu&#039;); ?&gt; </pre> В функции мы проверяем имеется ли подключаемый модуль в списке (тут я использую global, но вообще список должен получаться в самой функции, читаться из файлика или xcache например)<br> <pre class="prettyprint linenums pre-scrollable"> &lt;?php function new_view($name,$data = null) { global $tpls; // тут должно быть получение кэшированного списка if(in_array($name, $tpls)) { require($_SERVER&#91;&#039;DOCUMENT_ROOT&#039;].&#039;/Views/&#039;.$name.&#039;.phtml&#039;); }else{ throw new Exception(&#039;blalalal&#039;); } } ?&gt; </pre> https://visavi.net/topics/42520/684947 Нативный php.Что за этим стоит? /7o/loTeH4I1k Sat, 01 Aug 2015 10:05:08 +0300 Сообщения https://visavi.net/topics/42520/684947 <blockquote class="blockquote"><strong>anonymouse</strong> (31 Июля 2015 / 21:46)<br> 15. <strong>lolpetyaz</strong>, просто фильтруй переменные которые поступают от пользователя (желательно учитывая тип) и проблем не будет.<br> Ну и как-то проверяй, что инклудиться будет именно нужный файл. (у меня например кэшируется список шаблонов, если подключаемого шаблона нет в списке, то он не подключится)</blockquote> Тоесть так будет все гуд?<br> <pre class="prettyprint linenums pre-scrollable"> &lt;?php function new_view($name,$data = null) { if(file_exists($_SERVER&#91;&#039;DOCUMENT_ROOT&#039;].&#039;/Views/&#039;.$name.&#039;.phtml&#039;)) { require($_SERVER&#91;&#039;DOCUMENT_ROOT&#039;].&#039;/Views/&#039;.$name.&#039;.phtml&#039;); }else{ throw new Exception(&#039;blalalal&#039;); } } $data&#91;&#039;title&#039;] = &#039;title&#039;; $counter = $db-&gt;query(&#039;SELECT * FROM `users`&#039;)-&gt;fetch(); $data&#91;&#039;user_id&#039;] = $counter&#91;&#039;id&#039;]; new_view(&#039;test&#039;); </pre> И вот файл test.phtml<br> <pre class="prettyprint linenums pre-scrollable"> &lt;html&gt; &lt;head&gt; &lt;title&gt;&lt;?=$data&#91;&#039;title&#039;]?&gt;&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;big&gt;&lt;?=$data&#91;&#039;user_id&#039;]?&gt;&lt;/big&gt; &lt;/body&gt; &lt;/html&gt; </pre> <br> Обьясни тогда,что под словом &quot;Фильрируй &quot;ты имел ввиду?а еще лучше покажи на этом примере) https://visavi.net/topics/42520/684944 Нативный php.Что за этим стоит? lolpetyaz Fri, 31 Jul 2015 23:18:43 +0300 Сообщения https://visavi.net/topics/42520/684944 15. <strong>lolpetyaz</strong>, просто фильтруй переменные которые поступают от пользователя (желательно учитывая тип) и проблем не будет.<br> Ну и как-то проверяй, что инклудиться будет именно нужный файл. (у меня например кэшируется список шаблонов, если подключаемого шаблона нет в списке, то он не подключится) https://visavi.net/topics/42520/684942 Нативный php.Что за этим стоит? /7o/loTeH4I1k Fri, 31 Jul 2015 21:46:39 +0300 Сообщения https://visavi.net/topics/42520/684942 14. <strong>Shamsik</strong>, причем тут tpl шаблонизатор к нативноому php?Я тоже пользовался smarty и писал класс свого небольшого шаблонизатора для tpl,яя немогу понять как мне работать с нативным php и еще если с ним разобраться то никакие шаблонизаторы не дадут тебе такую скорость работы!Только вот надо понять все доконца)<br> <br> <em><span style="font-size:x-small">Добавлено через 01:11 сек.</span></em><br> 13. <strong>Башка</strong>, ну а что ты скажешь насчет этого?пользовательских переменных? https://visavi.net/topics/42520/684940 Нативный php.Что за этим стоит? lolpetyaz Fri, 31 Jul 2015 20:54:27 +0300 Сообщения https://visavi.net/topics/42520/684940 Правильно говорят все для таких вещей используют шаблонизатор, <br> <br> Зачем писать Слова или HTML тэги в классах или в функциях если это можно сделать в одной отделом файле<br> <br> <em><span style="font-size:x-small">Добавлено через 01:15 сек.</span></em><br> Я к примеру всегда пользовался Twig очень понятный и отличный Шаблонизатор https://visavi.net/topics/42520/684939 Нативный php.Что за этим стоит? Shamsik Fri, 31 Jul 2015 19:53:24 +0300 Сообщения https://visavi.net/topics/42520/684939 7. <strong>lolpetyaz</strong>, а речь не шла о пользовательских переменных, данных. https://visavi.net/topics/42520/684937 Нативный php.Что за этим стоит? Артур Fri, 31 Jul 2015 18:03:34 +0300 Сообщения https://visavi.net/topics/42520/684937 если $name приходит от пользователя там могут быть символы типа ../../test.php и символ нулевого байта то есть по сути сработает конструкция типа include &#039;../../test.php&#039;; а не include &#039;../../test.php.phtml&#039;; как ты того будешь ожидать<br> поэтому или список или регулярное выражение https://visavi.net/topics/42520/684935 Нативный php.Что за этим стоит? Вантуз-мен Fri, 31 Jul 2015 17:07:40 +0300 Сообщения https://visavi.net/topics/42520/684935 10. <strong>Vantuz</strong>, ну все пишут,что это не самый безопастный код,типа надо нативный шаблонизатор для рааботы с данными!) https://visavi.net/topics/42520/684934 Нативный php.Что за этим стоит? lolpetyaz Fri, 31 Jul 2015 17:06:53 +0300 Сообщения https://visavi.net/topics/42520/684934 7. <strong>lolpetyaz</strong>, почему нельзя, можно, или я не понимаю вопроса https://visavi.net/topics/42520/684933 Нативный php.Что за этим стоит? Вантуз-мен Fri, 31 Jul 2015 17:05:01 +0300 Сообщения https://visavi.net/topics/42520/684933 8. <strong>Vantuz</strong>, не совсем понял,примерно как? https://visavi.net/topics/42520/684932 Нативный php.Что за этим стоит? lolpetyaz Fri, 31 Jul 2015 17:04:18 +0300 Сообщения https://visavi.net/topics/42520/684932 7. <strong>lolpetyaz</strong>, для них проверяй через регулярку типа /[a-z0-9\-_]/i https://visavi.net/topics/42520/684931 Нативный php.Что за этим стоит? Вантуз-мен Fri, 31 Jul 2015 17:03:46 +0300 Сообщения https://visavi.net/topics/42520/684931 4. <strong>Башка</strong>, но а как же быть с пользовательскими переменными?данными?<br> <br> <em><span style="font-size:x-small">Добавлено через 01:05 сек.</span></em><br> 6. <strong>Vantuz</strong>, да суть не в этом,но на заметку возьму,мне интересно почему нельзя работать с пользовательскими данными без какого либа шаблонизатора? https://visavi.net/topics/42520/684930 Нативный php.Что за этим стоит? lolpetyaz Fri, 31 Jul 2015 17:01:46 +0300 Сообщения https://visavi.net/topics/42520/684930 1. <strong>lolpetyaz</strong>, прям как в 1 посте конечно небезопасно, если список файлов небольшой безопаснее всего использовать следующий пример<br> <br> это актуально если name будет приходить от пользователя<br> <pre class="prettyprint linenums pre-scrollable">&lt;?php function new_view($name,$data = null) { switch ($name) { case &#039;page1&#039;&#58; include &#039;page1.phtml&#039;; break; case &#039;page2&#039;&#58; include &#039;page2.phtml&#039;; break; case &#039;page3&#039;&#58; include &#039;page3.phtml&#039;; break; default&#58; echo &#039;Шаблон не найден&#039;; } } </pre> https://visavi.net/topics/42520/684929 Нативный php.Что за этим стоит? Вантуз-мен Fri, 31 Jul 2015 17:01:09 +0300 Сообщения https://visavi.net/topics/42520/684929 Все нормально там, если нет необходимости испольновать сторонний шаблонизатор то php с этим и сам нормально справляется. https://visavi.net/topics/42520/684928 Нативный php.Что за этим стоит? Tegos Fri, 31 Jul 2015 16:05:18 +0300 Сообщения https://visavi.net/topics/42520/684928