@dev400

Как расшифровать, как работает этот говнороутер?

Есть вот такой ужасный код
private function router(){

	   $route=$this->route;
	   if (empty($_GET['route']))
       {
         $route = 'index';
	   }
         else
	   {
            $route = $_GET['route'];				
			$rt=explode('/', $route);
			$route=$rt[(count($rt)-1)]; //product/monitor перенаправляем только на monitor

		
			if(isset($rt[(count($rt)-2)])){		
				$sql = "SELECT  c.url as category_url, p.url as product_url, p.id
						  FROM product p LEFT JOIN category c ON c.id=p.cat_id
						  WHERE p.url like '$route'";

				$result = parent::query($sql);
							
				if($obj = parent::fetch_object($result)){			
					if($rt[(count($rt)-2)]==$obj->category_url){			
						 $sql = "SELECT  p.id  FROM product p WHERE p.url like '%s'";
						 $result = parent::query($sql,$route);

						 if($row = parent::fetch_object($result))
						 {
							 $_REQUEST['id']=$row->id;
							 $route="product";
						 }					
					}
				}
			}
			else{
				$sql = "SELECT  c.url as category_url, c.id FROM category c WHERE c.url like '%s'";
				$result = parent::query($sql,$route);
				if($obj = parent::fetch_object($result)){
					$_REQUEST['category_id']=$obj->id;
					$route="catalog";
				}
			}
	   }
	    $this->route=$route;
		return $route;
    }

Он работает с каталогом товаров. в урл подставляет категорию.

Задача: сделать по аналогии этого роутера выборку по категориям новостей, и и страниц.
  • Вопрос задан
  • 238 просмотров
Пригласить эксперта
Ответы на вопрос 1
streetflush
@streetflush
Перепишите этот небезопасный код и сделайте его параметризуемым, как у вас в задаче.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы