<?php
if ($_GET['p'] == 1)
{
echo '<a href="odom.php?p=1"><strong>1</strong></a><a href="odom.php?p=2">2</a><a href="odom.php?p=3">3</a>';
}
elseif ($_GET['p'] == 2)
{
echo '<a href="odom.php?p=1">1</a><a href="odom.php?p=2"><strong>2</strong></a><a href="odom.php?p=3">3</a>';
}
elseif ($_GET['p'] == 3)
{
echo '<a href="odom.php?p=1">1</a><a href="odom.php?p=2">2</a><a href="odom.php?p=3"><strong>3</strong></a>';
}
else
{
echo '<a href="odom.php?p=1"><strong>1</strong></a><a href="odom.php?p=2">2</a><a href="odom.php?p=3">3</a>';
}
?>
<?php
switch($_GET['p'])
{
case 1:
if (file_exists('pages/odom1.html')) {
include('pages/odom1.html');
} else { echo 'файл <b>pages/odom1.html</b> не найден '; }
break;
case 2:
if (file_exists('pages/odom2.html')) {
include('pages/odom2.html');
} else { echo 'файл <b>pages/odom2.html</b> не найден '; }
break;
case 3:
if (file_exists('pages/odom3.html')) {
include('pages/odom3.html');
} else { echo 'файл <b>pages/odom3.html</b> не найден '; }
break;
default:
if (file_exists('pages/odom1.html')) {
include('pages/odom1.html');
} else { echo 'файл <b>pages/odom1.html</b> не найден '; }
};
?>
Спустя 1 час, 16 минут, 27 секунд (30.08.2012 - 13:23) Игорь_Vasinsky написал(а):
циклом ни как, но можно попробывать так
не проверял
2й код по анологии
$page = isset($_GET['p']) ? (!file_exists('pages/odom'.$_GET['p'].'html') ? 'pages/odom'.$_GET['p'].'html' : 'pages/odom1.html') : 'pages/odom1.html';
if(!file_exists("pages/odom1.html"))
exit("Error load page!");
switch($_GET['p'])
{
case $_GET['p']:
include($page);
break;
default:
include "pages/odom1.html";
};
не проверял
2й код по анологии
Спустя 1 час, 28 минут, 38 секунд (30.08.2012 - 14:52) eLDeR написал(а):
Спасибо! гдето была ошибка но опираясь на ваш код я построил его немного по другому..
Вопрос! надежен ли этот код от инъекций с других сайтов ?
Вопрос! надежен ли этот код от инъекций с других сайтов ?
if (isset($_GET['p'])) /* если есть такой параметр */
{
$page = 'pages/odom'.$_GET['p'].'.html';
echo $page;
switch($_GET['p'])
{
case $_GET['p']:
include($page);
break;
};
}
else
{
include "pages/odom1.html";
}
Спустя 4 минуты, 47 секунд (30.08.2012 - 14:57) Игорь_Vasinsky написал(а):
каких инъексий? чтоб от чего то защищаться знадо знать что это.
нормально всё.
пысы. мой клд круче
нормально всё.
пысы. мой клд круче
Спустя 2 минуты, 39 секунд (30.08.2012 - 14:59) eLDeR написал(а):
Все равно спасибо!
P.S. Ваш код инклудит все время одну и ту же страницу
P.S. Ваш код инклудит все время одну и ту же страницу
include ('pages/odom1.html');И я к сожалению не увидел в чем причина
Спустя 11 минут, 28 секунд (30.08.2012 - 15:11) Placido написал(а):
Входящие данные нужно фильтровать. Первый код со свитчем можно переписать в таком ключе:
А вот этот свитч вообще не понятно, зачем нужен:
$page = 'pages/odom' . (int)$_GET['p'] . '.html';
if (file_exists($page)) {
include $page;
} else {
echo 'файл <b>' . $page . '</b> не найден ';
}
А вот этот свитч вообще не понятно, зачем нужен:
switch($_GET['p'])
{
case $_GET['p']:
include($page);
break;
};
Спустя 37 секунд (30.08.2012 - 15:11) killer8080 написал(а):
Цитата (eLDeR @ 30.08.2012 - 15:52) |
Вопрос! надежен ли этот код от инъекций с других сайтов ? |
Тут не инъекции, а чистая LFI уязвимость
Ну может не совсем чистая. будет зависеть от настроек и конфигурации сервера, но есть!
Спустя 1 час, 13 минут, 16 секунд (30.08.2012 - 16:25) eLDeR написал(а):
Пишет
файл pages/odom0.html не найденМожно ли сделать вот так ?
if (isset($_GET['p']))
{
$page = 'pages/odom' . (int)$_GET['p'] . '.html';
if (file_exists($page))
{
include $page;
}
else
{
echo 'файл <b>' . $page . '</b> не найден ';
}
}
else
{
include ('pages/odom1.html');
}