Решил попрактиковаться немножко и сделал динамический сайт.
Все вроде бы работает, но.....
Мне очень важно ваше мнение о правильности написания кода и его защита.
Правильно ли он написан и есть ли уязвимости, и что не так пожалуйста подскажите.
Вот еще интересует:
1) Как же сделать из такой ссылки /index.php?page=about
нормальную что то вроде /index.php/about или похожее?
2) плюс проблема с кнопками, пытался сделать так чтоб при посещении страницы нужная
кнопка имела свой стиль, но получилось что все кнопки имеют один стиль при переходе на одну страницу. Скрин приложу ниже.
Вот сам код страницы
<?php
// Здесь я подключаю переключатель шаблонов
include_once './vibor.php';
?>
<!DOCTYPE HTML>
<html itemscope itemtype="http://schema.org/WebPage" lang="ru-RU">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title><?php echo $title; ?></title>
<link rel="icon" href="http://адрес-сайта.ru/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="http://адрес-сайта.ru/favicon.ico" type="image/x-png" />
<meta itemprop="description" name="description" content="<?php echo $description; ?>" />
<meta itemprop="keywords" name="keywords" content="<?php echo $keywords; ?>" />
<meta name="robots" content="noindex,nofollow,noodp,noydir" />
<link rel="stylesheet" type="text/css" href="<?php echo $css; ?>" />
<link rel="stylesheet" type="text/css" href="./css/animate.css" />
</head>
<body>
<header id="header">
<div class="header-inner">
<div class="header-top">
<a href="#"><div itemscope itemtype="http://schema.org/ImageObject">
<img class="logo" src="./images/logo.png" alt="Ломбард" itemprop="contentUrl" /></div></a>
<div itemscope itemtype="http://schema.org/WPHeader" class="names">
<h1 itemprop="name">All-Loans.kz</h1>
</div>
<div itemscope itemtype="http://www.schema.org/SiteNavigationElement" class="call">
<p itemprop="name">Свяжитесь с нами</p><p>8-xxx-xxx-xx-xx</p>
<p><a target="_blank" href="index.php?page=call"><img class="call-img" src="./images/call.png" alt="Обратный звонок" title="Заказать обратный звонок" /></a>
</p>
</div>
</div>
<div id="menu">
<nav itemscope itemtype="http://www.schema.org/SiteNavigationElement" class="topMenu">
<ul>
<!-- А вот здесь проблема со стилями кнопок class="<?php echo $clas; ?> -->
<li itemprop="name"><a href="./">Главная</a></li>
<li itemprop="name"><a class="<?php echo $clas; ?>" href="index.php?page=zayvka">Заявка на кредит</a></li>
<li itemprop="name"><a class="<?php echo $clas; ?>" href="index.php?page=about">О нас</a></li>
<li itemprop="name"><a class="<?php echo $clas; ?>" href="index.php?page=faq">FAQ</a></li>
<li itemprop="name"><a class="<?php echo $clas; ?>" href="index.php?page=">Контакты</a></li>
</ul></nav></div>
</div><!-- конец header-inner -->
<div class="line"></div>
</header>
<div id="wrapper"><!-- начало врапер -->
<?php
// Здесь идет вывод шаблонов
include 'skins/'.$file;
?>
</div><!-- Конец врапер -->
<footer id="footer"><!-- начало footer -->
<div class="footerInner">
<?php
// Здесь я отдельно вывожу шаблон футера
include_once './skins/foter.tpl';
?>
</div><!-- конец footerInner -->
</footer><!-- конец footer -->
<script type="text/javascript" src="js/wow.min.js"></script>
<script>
new WOW().init();
</script>
</body>
</html>
А вот и сам файл vibor.php в котором переключатели шаблонов, вот он меня
больше всего интересует, правильный он или нет?
Есть ли уязвимость в нем?
<?php
// Ну вот эту функцию я стырил у Twina
// Которая убивает магические кавычки
function stripslashesDeep($data)
{
if(is_array($data))
$data = array_map("stripslashesDeep", $data);
else
$data = stripslashes($data);
return $data;
}
if(get_magic_quotes_gpc())
{
$_GET = stripslashesDeep($_GET);
$_POST = stripslashesDeep($_POST);
}
$page = isset($_GET['page']) ? $_GET['page'] : false;
// Здесь, если page не передана то выбираем шаблон главной страницы
if(!isset($_GET['page'])){
$page = 'indx';
}
// Переключатель шаблонов
switch($page) {
case 'indx' :
$file = 'indx.php';
$title = 'Главная';
$description = 'Интернет займы для всех.';
$keywords = 'кредиты, онлайн';
$css = 'style.css';
break;
case 'about' :
$file = 'about.tpl';
$title = 'О компании онлайн-займов';
$description = 'О компании онлайн-займов';
$keywords = 'интернет, займы';
$css = 'stylet.css';
$clas = 'abouts';
break;
case 'faq' :
$file = 'faq.tpl';
$title = 'Вопрос - ответ';
$description = 'У Вас есть вопросы? У нас есть ответы.';
$keywords = 'Вопрос - ответ';
$css = 'stylet.css';
$clas = 'faqs';
break;
case 'zayvka' :
$file = 'zayvka.tpl';
$title = 'Онлайн заявка на кредит';
$description = 'Подать онлайн заявку на кредит без Отказа';
$keywords = 'заявка на кредит,подать заявку на кредит';
$css = './css/newzv.css';
$clas = 'zayvk';
break;
case 'call' :
$file = 'call.tpl';
$title = 'Обратный звонок';
$description = 'Заказ обратного звонока';
$keywords = '';
$css = './css/cals.css';
break;
default :
include_once './skins/indx.php';
}
Ооочень буду рад выслушать все ваши рекомендации. Очень хочется узнать что не так и что нужно поправить
А вот скрин кнопок, которые не получается сделать нормально