PHP «Страница не перенаправляет должным образом» после добавления двух функций заголовка - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь проверить URL-адрес, и если в нем отсутствуют какие-либо из моих параметров get, я пытаюсь перенаправить, и есть вторая функция, которая проверяет, не заканчивается ли параметр папки на «/», она добавляет его.Но по какой-то причине я получаю сообщение об ошибке «Страница неправильно перенаправляется» в Firefox и Chrome для главной целевой страницы без параметров.Вот мой код

<?php
//checking if none of the methods are present and assigning them to url
if (!isset($_GET['page']) || !isset($_GET['sort']) || !isset($_GET['type']) || !isset($_GET['folder']) || $_GET['folder']==="/" || $_GET['folder']==="\\" || $_GET['folder']==="uploads") {
    header('location:' . URL .'?page=0&sort=name&type=asc&folder=uploads/');
}
//Checking if core direcotry doesnt exists and creating it
if(!is_dir("uploads")){
  mkdir("uploads");
}

function endsWith($haystack, $needle)
{
    $length = strlen($needle);
    if ($length == 0) {
        return true;
    }
    return (substr($haystack, -$length) === $needle);
}
if (!endsWith($_GET['folder'], "/")) {
    $boom = explode("/", $_GET['folder']);
    $newurl = end($boom);
    header('location:' . URL .$newurl.'/');
}

Я пытался удалить вторую функцию, она работает, но мне нужно добавить косую черту в конце параметра папки.Как мне этого добиться?

1 Ответ

0 голосов
/ 28 марта 2019

Изменена вторая функция на эту. И теперь это работает

function endsWith($haystack, $needle)
{
    $length = strlen($needle);
    if ($length == 0) {
        return true;
    }
    return (substr($haystack, -$length) === $needle);
}
if (isset($_GET['folder'])) {
  if (!endsWith($_GET['folder'], "/")) {
    $boom = explode("/", $_GET['folder']);
    $newurl = end($boom);
    header('location: ' . URL .$newurl.'/');
  }
}
...