мой код:
<?php
if (isset($_GET['stranka']))
$stranka = $_GET['stranka'];
else
$stranka = 'index';
if (preg_match('/^[a-z0-9]+$/', $stranka))
{
$vlozeno = include('stranky/' . $stranka . '.php');
if (!$vlozeno)
echo('Chyba. Stránka nenalezena.');
}
else
echo('Chyba. Neplatný parametr.');
?>
У меня есть следующие предупреждения:
Warning: include(stranky/uzivatel.php): failed to open stream: No such file or directory in C:\xampp\htdocs\test\index.php on line 96
Warning: include(): Failed opening 'stranky/uzivatel.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\test\index.php on line 96
Chyba. Stránka nenalezena.
И я хочу спросить, как их отключить.
Он проверяет и записывает Error. Страница не найдена, но предупреждения:/
Спасибо за помощь
если файл существует после фактического включения файла, он не будет работать, вы всегда получите предупреждение, которое вы не должны просто отключать и игнорировать, лучший способ сделать это, если при первом тестировании, если файл существует, и включая его, или если он не существует, отобразите ошибку.
заменить:
$vlozeno = include('stranky/' . $stranka . '.php');
if (!$vlozeno)
echo('Chyba. Stránka nenalezena.');
От:
if(is_file('stranky/' . $stranka . '.php')){
include('stranky/' . $stranka . '.php');
}
else {
echo('Chyba. Stránka nenalezena.');
}
Вы хотите проверить, действительно ли файл существует. Как сказано выше, отключение предупреждений не поможет вам убедиться, что ваш код функционирует так, как он делает. Я не говорю на языке текста в сообщении, но я предполагаю, что если $ stranka не соответствует Regex, вы хотите сказать "Недопустимый параметр: не существует". Поэтому, помимо проверки соответствия переменной Regex, вы должны убедиться, что она существует до ее включения.
<?php
if (isset($_GET['stranka']))
$stranka = $_GET['stranka'];
else
$stranka = 'index';
$includeFile = 'stranky/' . $stranka . '.php';
if (preg_match('/^[a-z0-9]+$/', $stranka) && file_exists($includeFile))
{
$vlozeno = include($includeFile);
if (!$vlozeno)
echo('Chyba. Stránka nenalezena.');
}
else
echo('Chyba. Neplatný parametr.');
?>
file_exists