2017-02-22 42 views
1

С помощью этого кода я создавать новые файлы с информацией из базы данных:PHP Открыть файл и дать ему параметры/переменные

function getLocations() { 
    $query = mysql_query("SELECT DISTINCT `plaats` FROM `plaatsen` ORDER BY `plaats` "); 

    while ($row = mysql_fetch_assoc($query)){ 
     $city = $row['plaats']; 

     $handle = fopen("cities/$city.php",'w'); 

     echo "<a href='cities/".$row['plaats'].".php' class='col-md-4'>"."<div class='steden'>".$row['plaats']."</div>"."</a>"; 

     fwrite($handle, '<?php include("../stad.php") ?>'); 
     fwrite($handle, $city); 
    } 
} 

Выход несколько ссылок и файлов с различными городами как: Амстердам, Роттердам, Ден Haag. Теперь контент на этих страницах должен отличаться в зависимости от города. Таким образом, в основном страница должна знать, в каком городе она находится, и dan загрузить контент для этого города из базы данных.

Я попытался сделать это с написанием var на страницах, которые записывают название города на страницу, но я не могу (насколько я знаю) сделать что-либо с этой информацией.

Кто-нибудь знает, как это сделать? Благодаря!

+0

вы хотите передать '$ значения на другой' международной страницы? – gaurav

ответ

0

$handle = fopen("cities/$city.php",'w'); - ERK! Это действительно плохо для безопасности. Разрешение вашего веб-сервера uid на запись на файлы, которые затем будут обрабатываться PHP, само по себе не является уязвимостью, но обеспечивает вектор для эскалации атаки.

Возможно, есть причина, по которой вы хотите кэшировать содержимое за пределами вашей базы данных, но использовать кэширование обратного прокси или ESI или (в крайнем случае) реализовать кэширование фрагментов HTML в вашем PHP-коде НЕ ИСПОЛЬЗУЙТЕ PHP КОД КАК КАЧЕСТВО.

Что касается вопроса идентификации имени файла, в котором работает PHP-код, PHP может получить это из константы __FILE__. например

<?php 

print "I am in " . strtok(basename(__FILE__), '.'); 

Для определения имен файлов, участвующих в иерархии включает в себя, посмотреть на debug_backtrace()

+0

Спасибо, я об этом не думал. Я решил его с помощью функции $ _GET: \t $ query = mysql_query ("SELECT DISTINCT' plaats' FROM 'plaatsen' ORDER BY' plaats'); while ($ row = mysql_fetch_assoc ($ query)) { $ city = $ row ['plaats']; echo ""."

".""; } И с другой стороны: $ stad = $ _GET ['city']; echo $ stad; –