@chernousovkgb

Почему в php не срабатывает условие if в роутере?

Здравствуйте товарищи, подскажите пожалуйста почему не срабатывает просто условие if.
<?php 

$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

$ur=explode('/', trim($uri, '/'));

 foreach($ur as $element) {
                if(!empty($element)){
                    $urll[] = $element;
                }
            }
    
 $a=count($urll);

  if ($a==2) {
      
       
        $urla=$urll[1];
        $categor=$urll[0];
    
   $list_new = mysqli_query($db, "SELECT * FROM page WHERE categor='".$categor."' AND url='".$urla."';");
   
   while (  $rows = mysqli_fetch_assoc($list_new))
{
   
if ($categor==$rows['categor'] && $urla==$rows['url']) {


}   

}  
  
if ($categor!=$catt && $urla!=$urlii) {
     
	 header ('HTTP/1.0 404 Not Found');
	 header( 'Refresh: 0; url=/404.php' );
    

}

   
    
 }
      ?>


Здесь у меня берется значение из бд $catt и я его сравниваю с значением после первого слеша в адресной строке

site/perviyslash/vtoroy

Если значение в первом слеше не равно значению из бд - то 404, ввсе работает до тех пор пока я не прописываю в пером слеше "0", если я пишу site/0/vnfkds вывводит страницу второго слеша, если прописыавю любую другую цифру или любое другое значение отличное от бд, то срабатывает правильно 404.

Я делаю ЧПУ и мне нужно, чтобы срабатывал 301 редирект если эти 2 переменных не равны.

Я даже не знаю как правильно загуглить, наверное я не знаю каких то фундаментальных принципов работы.

Помогите пожалуйста.)
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 1
olejkaok
@olejkaok
Используйте для обработки адресной строки файл .htaccess
С помощью него не нужно будет резать адресную строку самостоятельно, а выводить все эти ответы сразу в переменную $_GET.
Так же рекомендую начать использовать RedBeanPHP(хотя бы) для работы базой данных, это просто и удобно.
Можешь отписаться мне в телеграмм @Alkayde.
Может быть я тебе чего и подскажу.
Ответ написан
Ваш ответ на вопрос

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

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