Доброго времени суток. Подскажите пожалуйста. Я слаб в php. На стадии обучения. Учусь по видео и разным статьям. У меня есть личный кабинет учета клиентов. Есть страница на которой выводится список всех клиентов. Мне нужно так, чтоб при нажатии на номер договора, чтоб открывалась страница с данными, которые относятся к договору. Нашел вариант, что-то типа site/com/page?title=id. Но проблема в том, что сам сайт реализован таким образом, что обрезается .php и все страницы работают так site.com/page, site.com/login, site.com/profile и т.д. Соответственно не подходит мне такой вариант. Каким образом можно реализовать подобрый вариант? site.com/page/id ? Как минимум не понимаю как правильно запрос в поиск задать, чтоб найти то-что нужно. Подскажите пожалуйста
а может для понимания, сделать это без ЧПУ? Сделайте это на простых гет параметрах и потом всё потихоньку усложняйте.
Имеете введу через аякс подругужать данные относительно нажатой кнопки? Но тут проблема т.к. нужно будет сделать доступ к страницам клиента. Я хз как это реализовать
если это минутное дело - то можешь пример показать? Бо опыта у меня маловато. Даже с ссылкой не соображаю как применять
Ничего там не может обрезаться. site.com/cto_ugodno/cto_ugodbo/cto_ugodno?id=1&name=jhon&surname=smith
Все. Спасибо всем, кто участвовал в помощи. Мне помогли из телеграм. Кому полезно будет. if ( $_SERVER['REQUEST_URI'] == '/' ) $page = 'home'; else { $path = explode('/', substr($_SERVER['REQUEST_URI'], 1)); // проверим, есть ли элементы адреса if (count($path)) { $page = $path[0]; if (isset($path[1])) $id = $path[1]; } // тут дальше проверки if ( !preg_match('/^[A-z0-9]{3,13}$/', $page)) not_found(); }; А потом уже $id сравниваем с нужным столбцом в базе данных и таким образом все, что пишем после site.com/post/*** если совпадает с данными из того поля, в моем случае номер договора - то выводит данные
@maksimbrilliant, прежде чем работать с путем, не мешало бы прежде отделить строку параметров. Пример тут.
Я с WP не дружу, но насколько знаю, он способен работать со строкой параметров и после рерайта (внутр. редиректа). Наверно это наследие «тяжелого прошлого». Вот тут комменты почитайте (саму статью писал не я, а мой единомышленник, так сказать). Если вы спрашивали в общем про единую точку входа, то да. Сейчас она используется практически везде, вот только форумные движки немного отстают
Вы чушь написали никому не нужную. То, что по ссылке уже есть в файле .htaccess и путь описывающейся по ссылке не соответствует тому, что мне надо. Мое решение отличное, без всяких там ?id=1 и т.п. Все четко теперь site.com/client/id --- Добавлено --- Вот ты красава. Описал именно то, что мне нужно
@maksimbrilliant, вижу, вы еще тот незнайка, раз даже не смогли понять суть написанного мной поста. igordata действительно красава, т.к. дал вам ссылку на описание parse_url, с помощью которой можно проделать названный мной шаг, а также упомянул explode, которая может быть универсальным решением как для отделения строки параметров, так и для деления пути. В статье по ссылке есть пример использования explode в том числе и для выполнения первого шага. Вы уверены, что без всяких там «?id=1»? Попробуйте-ка скормить вашему отл. решению к примеру адрес /client?id=1/100500. Думаю, сильно удивитесь Впрочем, я наверно много прошу от такого важного человека, как вы. Делайте, что хотите. Кому действительно надо, тот меня услышит.
Ооо... в выложенном вами коде зачем-то показана как раз валидация для $page, ну тогда можно порезвиться непосредственно со значением $id (/client/100500?id=1). --- Добавлено --- Про SQL-инъекции и проч. подобные шалости, борьба с которыми в выложенном коде никак не отражена, я уже молчу.
Да к чему это все? Прописал 3 строки кода и все работает через слеш, как я хотел. Зачем все усложнять и костылярить