• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

динамический Sitemap

  • Автор темы Kauperwood
  • Дата начала
K

Kauperwood

нормально так будет?
PHP:
function sitemapgenerator() {
$urls = "";
$head = '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">'."\n";
$legs = '</urlset>';
$sql = mysql_query('SELECT * FROM content');// выводим поля
while($record = mysql_fetch_array($sql)) {
$urls .= "<url>\n<loc>index.php?pageid=".$record['pageid']."</loc>\n<lastmod>".date("Y-m-d")."</lastmod>\n<changefreq>weekly</changefreq>\n<priority>0.5</priority>\n</url>\n";
}
$smaps = "sitemap.xml";
if(is_file($smaps)){
$fo = fopen($smaps, "w"); 
$fw=fputs($fo,$head.$urls.$legs);
fclose($fo);
}
else {
print "error"; 
}
}
 
V

vital

Нет, не норм.
Первое бросается в глаза - SELECT * FROM content, когда все что юзаете $record['pageid']. Зачем тягать остальные поля?
Оставьте SELECT 'pageid' FROM content

if(is_file($smaps)) зачем? Типа если файла нету, то и не надо его создавать? Бред же.
да и вообще file_put_contents лучше юзайте.


Добавлено: И вот эта штука по крону будет вам генерить сайтмап? Мне кажется, лучше пусть скрипт выдает хмл по запросу. Ну т.е вместо вывода в файл выводите в стдаут(через echo типа).
 
K

Kauperwood

по первым двум замечаниям,
спасибо поправлю.

И вот эта штука по крону будет вам генерить сайтмап?
у меня получается что генератор вызывается из начала дефолтной функции, т.е каждый раз это все сейчас обновляется.

Мне кажется, лучше пусть скрипт выдает хмл по запросу
т.е по запросу робота?

вместо вывода в файл выводите в стдаут(через echo типа)
, появились вопросы, пока что немного не поянтно как это работает, как это отдать роботу потом?
 
V

vital

Не, не стоит в такие дебри лезть=) Оно не для того.
А я имел ввиду
header('Content-type: text/xml');
echo $head.$urls.$legs;

И не надо файлов никаких.
 
K

Kauperwood

аа всмысле через header, теперь понял!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!