2013-06-22 8 views
0

Я хочу включить файл, но с $_get, я не знаю, как объяснить, но я пытаюсь привести примеры.

мне нужно включить файл с URL, как этот

mysite.com/?=MYINCLUDETEXT 

и писать на <?php include('MYINCLUDETEXT.php'); ?>

Кто-нибудь сказать мне, спасибо.

+5

Пожалуйста, не делайте этого. Это риск позволить кому-то включать случайные файлы с вашего сайта, те, которые вы, возможно, не обязательно хотите, в том числе. – andrewsi

+0

Нет, мне не нужно загружать файлы, просто чтобы указать Включить, что положить, если есть страница с тем же именем. – Fourtm

ответ

1

Это будет на самом деле делать то, что вы хотите

if (isset($_GET['file'])){ 
    include($_GET['file'].'.php'); 
} 

Вы также хотите, чтобы проверить, что файл, который вы пытаетесь включить существует file_exists и на самом деле является файлом is_file, а не папку.

Но вы должны понимать, что даже вы это делаете создают БОЛЬШОЕ нарушение в вашей системе и помогаете людям, которые хотят взломать ваш. Не только легче добавлять загруженные файлы (не только файлы, которые были действительно загружены), но также позволяет включать случайные файлы с вашего сервера.

0

Чтобы избежать проблем, описанных в ответ выше - поместить все файлы имена (которые должны быть включены) в массиве, как:

$pages_array=('home','services','contact'). 

А затем проверить GET вар: if(!in_array($_GET['page'], $pages_array) { die(); }

Потому что вы, вероятно, нужны некоторые другие значения $ _GET/vars, я предлагаю вам использовать $ _GET ['page'] - для включения ... Затем вы можете добавить mod rewrite для отображения страниц как «нормальных» URL-адресов ... например

www.yoursite.com/index.php?page=contact, может быть переписан: www.yoursite.com/contact.html

+0

Можете ли вы сказать мне, где именно это сделать, потому что im new для php и не знаю – Fourtm

+0

В вашем файле index.php. Все остальные страницы будут включены в файл index.php. – sinisake