Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Обработка допустимых $_GET (https://javascript.ru/forum/server/47914-obrabotka-dopustimykh-%24_get.html)

Duda.Ml1986@gmail.com 12.06.2014 12:24

Обработка допустимых $_GET
 
Всем привет.

Есть сайт на котором все ссылки вида mysite.com/yyyyyyyy
То есть если что то вдруг такое mysite.com/yyyyyyyy/ или такое mysite.com/yyyyyyyy/ххххх

То 404 ошибка

Но вот незадача. Есть страницы наборов типа mysite.com/yyyyyyyy/page1...n

Для того что бы их обрабатывать делаю проверку типа:
$acceptIndex = unserialize (INDEX);

!in_array($this->index, $acceptIndex)

$this->index хранит как раз часть урла (THIS_PART) mysite.com/THIS_PART

а хранятся слова так:
define ("INDEX", serialize (array ("news", "doctors")));


Короче все классно, но как сделать так что бы например я сделал тот же массив и для GET вида

mysite.com/?search=YYYYY
mysite.com/?404

Не хочу их писать руками, а то условия будут на пол страницы)

Благодарен за любую мысль.

Duda.Ml1986@gmail.com 12.06.2014 12:50

/* Проверка наличия ключевого слова по массиву определенных значений */
    protected function checkGetIncluding() {
        $acceptGet = unserialize (GET);

        foreach($acceptGet as $index => $get) {
            if(isset($_GET[$get])) {
                return true;
            }
        }
        return false;
    }


&& ! self::checkGetIncluding()


define ("GET", serialize (array ("404", "search")));


Может лучше что прийдет в голову?

Vlasenko Fedor 12.06.2014 23:03

function compliance($x = array(), $externalData)
    return array_intersect_assoc($x,  $externalData) == $x;
}

и соответственно примеры. 1 аргумент - значение - массив условий, второе где проверяем. Результат True если все условия из массива находятся в, $externalData, иначе False
if(compliance(array('option'=>'com_content', 'view'=>'article'), $_GET){}
if(compliance(array('page'=>'1'), $_POST){}

Duda.Ml1986@gmail.com 11.07.2014 11:43

очешуенно


Часовой пояс GMT +3, время: 14:24.