[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Преобразование в цикл
eLDeR
Можно ли преобразовать в цикл следующих 2 кода?

<?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 написал(а):
циклом ни как, но можно попробывать так

$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 написал(а):
каких инъексий? laugh.gif чтоб от чего то защищаться знадо знать что это.

нормально всё.

пысы. мой клд круче

Спустя 2 минуты, 39 секунд (30.08.2012 - 14:59) eLDeR написал(а):
Все равно спасибо!
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 уязвимость rolleyes.gif
Ну может не совсем чистая. будет зависеть от настроек и конфигурации сервера, но есть!

Спустя 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');
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.