Нативный php.Что за этим стоит?

Печать RSS
428

L
Автор
Пришелец
0
Привет ребята,вот покопался по форумам и много где увидил,что таким способом писать нельзя,так как это небезопастно!(
Код ниже

<?
	function new_view($name,$data = null) {
		include $name.'.phtml';
	}
	
	$data['title'] = 'Тест титл';
	
	new_view('test');
	
?>


и вот код в test.phtml

<html>
	<head>
		<title><?=$data['title']?></title>
	</head>
</html>

Только один нюанс,на форумах так и не было описано почнму это не безопасно,говорили только что обязательно нужен шаблонизатор для таких дел,подскажите в чем же проблема?
Б

Оранжевые штаны
0
Там нет пользовательских переменных потому и опасности нет.
А

Оранжевые штаны
0
Вполне себе безопасный код. Микрошаблонизатор своего рода.

Пацак
0
Все нормально там, если нет необходимости испольновать сторонний шаблонизатор то php с этим и сам нормально справляется.

Господин ПЖ
0
1. lolpetyaz, прям как в 1 посте конечно небезопасно, если список файлов небольшой безопаснее всего использовать следующий пример

это актуально если name будет приходить от пользователя
<?php
function new_view($name,$data = null) { 

switch ($name) {
    case 'page1':
        include 'page1.phtml';
        break;
    case 'page2':
        include 'page2.phtml';
        break;
    case 'page3':
        include 'page3.phtml';
        break;
    default:
       echo 'Шаблон не найден';
}
    } 
Изменил: Вантуз-мен (31.07.2015 / 17:02)
L
Автор
Пришелец
0
4. Башка, но а как же быть с пользовательскими переменными?данными?

Добавлено через 01:05 сек.
6. Vantuz, да суть не в этом,но на заметку возьму,мне интересно почему нельзя работать с пользовательскими данными без какого либа шаблонизатора?

Господин ПЖ
0
7. lolpetyaz, для них проверяй через регулярку типа /[a-z0-9\-_]/i
L
Автор
Пришелец
0
8. Vantuz, не совсем понял,примерно как?

Господин ПЖ
0
7. lolpetyaz, почему нельзя, можно, или я не понимаю вопроса
L
Автор
Пришелец
0
10. Vantuz, ну все пишут,что это не самый безопастный код,типа надо нативный шаблонизатор для рааботы с данными!)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск