Php условие от адреса страницы

Вывод разных страниц на основе параметров URL

У меня есть папка all , в которой лежит файл info.php . Предполагается, что при вводе в адресную строку после http://127.0.0.1/okt/ слова info должен открыться файл info.php из папки all . Но этого не происходит: постоянно срабатывает условие else и я получаю СТРАНИЦА НЕ НАЙДЕНА . Помогите, уже замучился искать ошибку.

1 ответ 1

Вне зависимости от того, что у вас в .htaccess файле (что само по себе важно). Укажите полный путь до файла или используйте переменную $_SERVER[‘DOCUMENT_ROOT’] , к примеру:

$_SERVER['DOCUMENT_ROOT'].'/okt/all/'.$page.'.php' 

При таком варианте все должно работать корректно.

В .htaccess у меня: AddDefaultCharset utf-8 RewriteEngine on RewriteBase /okt/ RewriteRule ^(.*)$ index.php

Пожалуйста скажите куда конкретно я должен вставить $_SERVER[‘DOCUMENT_ROOT’].’/okt/all/’.$page.’.php’ я не особо понял где его использовать

Огромное спасибо! Помогло! А почему именно так решаеться вопрос? Я прохожу уроки по ютюбу у автора работает без $_SERVER[‘DOCUMENT_ROOT’]

Видимо разница все-таки есть, может в настройках сервера или дело в именах папок. Можете попробовать заменить ‘okt/all/’.$page.’.php’; на ‘all/’.$page.’.php’; . Такой вариант тоже должен сработать, но все-таки надежнее указывать полный путь с использованием или без использования $_SERVER[‘DOCUMENT_ROOT’] . По идее если у вас директория на сервере okt/ имеется то, сервер осуществляет сначала переход в нее, а вот потом уже ищет проверяемый файл ‘okt/all/’.$page.’.php’ , т.е. конечный путь будет ‘okt/okt/all/’.$page.’.php’ от корня сайта (а его таки там нет).

Читайте также:  Using shortcodes in php

Источник

Сотавление условия с адресом сайта.

Мну нужо составить условие. Нужно чтобы если в адресе содержиться слово «page» напимер http://site.ru/page/01/ , то выводилось одно, а когда этого слова не содержиться (http://site.ru/trololo/), то выводилось другое. Как это реализовать.

Каталог перед адресом сайта
Что нужно сделать для того, чтобы можно было заходить в нужный раздел сайта не через.

Что делать с адресом сайта
Здравствуйте. Есть сайт например site.com.ua он на вордпрессе, было решение сделать.

Вписание любых слов перед адресом сайта
Привет. Вот такая проблема у меня. зашел недавно на один сайт имясайта.ru перед адресом сайта.

Автоматизация сохранения страниц с возрастающим адресом с веб-сайта
Здравствуйте. Хочу решить одну проблему. Есть сайт, в нем есть набор картинок, каждая картинка — на.

Вы не поняли. Мне нужно написать скрипт, который будет выводить на странице текст в зависимости от URL страницы.

 $shablon = '/page/i'; if (preg_match($shablon, $_SERVER['QUERY_STRING'])) echo 'Какой-нибудь текст';

Вместо $_SERVER[‘QUERY_STRING’] можешь написать $_SERVER[‘REQUEST_URI’], тогда с корнем возьмет, но это думаю не нужно

Добавлено через 1 минуту
в $shablon можешь передать любое слово, и preg_match будет искать уже его в адресной строке

Love_and_Peace, только надо сделать оговорку, что все запросы должны быть перенаправленны на этот скрипт. Для этого нужен .htaccess и подключенный модуль апача mode_rewrite.

Добавлено через 7 минут
да что уж там, для любого чпу нужен этот модуль. А вывод в зависимости от урл — это надо смотреть как работает маршрутизация. Например если /page/01 это перенаправление на дефолтный контроллер и его дефолтный метод, тогда могу предположить что в параметрах придет page = 01. Если нет маршрутизации урл, то и запросы такие сделать нельзя, а если маршрутизация есть, то не должно быть таких глупых вопросов. Хотя наверно за исключение того случая, что вы сами пишете эту маршрутизацию =)

forgergg, ниче не понял
первое, причем тут ЧПУ? Как я понял надо было в зависимости от строки вывести какой-то текст. Какая разница какого вида эта строка?
Вот у меня например, всегда сперва идет буква с (от controller). Если вкл ЧПУ — то юрл -> /c/тут_что_то, а если нет ЧПУ, тогда -> c=тут_что_то
и второе — незнаю что такое маршрутизация. объясни пожалста

ЦитатаСообщение от Love_and_Peace Посмотреть сообщение

При том, что site.ru/page/01 или site.ru/trololo это и есть чпу. site.ru?page=01 не чпу.
Для создания урлов первого типа(считай чпу) необходимо все запросы обрабатывать одним скриптом/файлом. В этом скрипте должны быть механизм управления запросами, так называемый роутер/маршрутизатор. Именно с помощью него можно узнать какие параметры были переданы через урл. тема эта обширная, в фреймворке Symfony для этих целей был создан даже «мини-фреймворк».

ЦитатаСообщение от Love_and_Peace Посмотреть сообщение

Перенаправление в зависимости от урл. Например site.ru///.
Т.е. при запросе вида site.ru/materials/show/12 маршрутизатор сопоставит его с имеющимися шаблонами(путями/routes), выберет нужный и запустит определенный метод, определенного класса.
site.ru/materials/show/12 подходит по шаблону к site.ru///. Роутер перенаправит запрос в котроллер materials, запустит акшен show и передаст параметр/> Хотя на деле роутер только обрабатывает шаблон и сравнивает его с урл, затем уже передает данные о контроллере, акшене и параметрах в другие механизмы. Потом остается только создать екземпляр класса Controller и выполнить метод Action. Параметры можно как передать в метод, так и хранить где-нить в специальном месте =)

Добавлено через 49 секунд
Не знаю понятно ли я объяснил, но уж как получилось )

Источник

PHP if else Request URI help

to see the sample click here see the block where it says Our services in the bottom I don’t want it to be shown on ths page but visible to all other pages.

and why, can I ask, did you try this? have anyone on here suggested it? you’ve completely changed your answer, that’s not nice at all.

I have tried all the suggested answer here and it didn’t worked. I haven’t changed anything I just applied one of the suggestion here and to ask programmers who has more experienced than me.

9 Answers 9

Always indent your code — it’s simplier to see errors

 whatever
"; > else < echo "
do not show
"; >; ?>

Note the placement of curly brackets.

I’m being pedantic here i think, but his syntax was fine except that he was missing the word echo directly after ‘else’. But yes syntax was weird, but legal I think?

Or you could use the ternary operator. All on one line if you like — I broke it up to avoid the evil scrollbars.

echo ($url == "http://www.sample.com/test.php") ? "
Whatever
" : "";

You’re using the wrong values.

// REQUEST_URI is the requested URI path plus the requested URI query, so let’s strip the latter $_SERVER['REQUEST_URI_PATH'] = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']); // HTTP_HOST may not be set if the request didn’t contain the Host header field (just HTTP/1.0) if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST']=='www.testground.idghosting.com' && $_SERVER['REQUEST_URI_PATH'] == '/idi/our-production/') < // host is "www.testground.idghosting.com" and requested URI path is "/idi/our-production/" >

See the manual for what values the $_SERVER contains.

whatever
"; > else < echo "
do not show
"; > ?>

Your syntax was just a little wrong.

There does not currently seem to be a direct way. What you’ll have to do is to reconstruct the URL by combining entries from the $_SERVER array. You can check the results of the phpinfo() to see what entries you need.

At a higher level, have you considered changing your approach for getting this onto the pages where you want it? You could put the section within the then part of your code into a separate file which you include into those files in which you want it to appear.

The problem here is that in the echo string, you open a php tag, but that is already php code, so you don’t have to open that tag. You’d have to one one if you were in HTML code.

Источник

PHP REQUEST_URI – разный текст в зависимости от адреса страницы

Есть неприятная особенность при разбивке сайта на include() — из-за особенностей дизайна приходится переносить элементы шаблона на страницу с текстом. Например, DIV-блок, в который внедрен тег H1 и его никак не получается переделать.

Такой подход приведет к тому, что в будущем, когда мы захотим переписать шаблон, нам придется лазить по всем файлам с текстом и сносить этот кусок кода. Так вот, есть решение – PHP

Скрипт определяет текущий УРЛ и подставляет текст из переменной по условиям ниже:

 if (($rurl=="/register.php" ) || ($rurl=="/reg" )) if (($rurl=="/stats.php" ) || ($rurl=="/stat" )) if (($rurl=="/members.php" ) || ($rurl=="/mem")) if ($rurl=="/403.php") if ($rurl=="/404.php") //Выводим текст на странице echo"$pagename"; /* Задаем файлу любое имя, например pagename.php и вставляем на сайт через инклуд следующей конструкцией: */ ?> 

В комментариях к скрипту описана вся последовательность действий. Если вы очень далеки от PHP то достаточно просто включить \”логику\” и через две минуты скрипт станет понятен любому! Так же вы можете скачать готовый пример!

В DLE эту функцию выполняет один из тегов встроенного метаязыка

Похожие записи

PHP — это серверный язык программирования со своими плюсами и минусами. Его давно хоронят, но он прочно закрепился в своей.

В современном мире практически каждый человек может ощутить на себе серьезное влияние технологий. Технические средства начинают внедряться практически во все.

Laravel — масштабный PHP фреймворк, который отлично подойдет для повышения навыков разработки на данном языке и будет хорошей альтернативой не.

Каждый, кто работает с PHP кодом в определенный момент осознает, что привычные реакторы, для написания HTML / CSS / JS.

В свое время баловался переделкой движков и плагинов финансовых проектов (CAP, MLM) и была проблема с автоматизацией продаж. Точнее, с.

Источник

Как на php сверить заданный параметр с именем домена?

Михаил Миргородский,
1. Вы сравниваете ‘http://’ с ‘https://’ — строки явно не совпадут. Зачем вы добавляете схему, вам же надо только проверить доменное имя?

2. $_SERVER[‘REQUEST_URI’] содержит запрошенный путь на сайте и имя файла:

/ // запрос морды сайта /config.php // запрос скрипта на сайте /upload/get.php // запрос скрипта из папки

Зачем вы их добавляете в проверку? Они ни как не влияют на проверку доменного имени.

3. запрос к вашему сайту по HTTP/1.1:

GET /path/page.php HTTP/1.1 // относительный URL Host: domain.ru
GET http://domain.ru/path/page.php HTTP/1.1 // абсолютный URL с доменом Host: любой_текст_тут

$_SERVER[‘HTTP_HOST’] всегда будет содержать значение из поля Host:. А там можно прислать что угодно, если в GET передаётся абсолютный URL с доменом. Спецификация требует игнорировать заголовок Host:, если в GET содержится абсолютный url — вы уверены, что ваш веб-сервер делает это?
$_SERVER[‘HTTP_HOST’] присылается пользователем, доверять ему нельзя. Там может быть и IP-адрес сайта — вполне легальный запрос при определённых настройках веб-сервера.

4. $_SERVER[‘SERVER_NAME’] устанавливается веб сервером и содержит имя домена из конфигурации вашего веб-сервера. Ему можно доверять, но есть и грабли. Вот кусок конфига Apache:

ServerName domain.com # основной домен ServerAlias www.domain.com # домен с www ServerAlias m.domain.com # мобильная версия сайта

Источник

Оцените статью