Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Единая точка входа 
:(
    Опции темы
systemIV
Дата 11.6.2011, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 28.3.2011

Репутация: -1
Всего: -1



Привет.
Написал единую точку входа, и сейчас думаю как отображать посты. 
Вот что только полезло на ум.
Код

case "/read/post_$post_id": include $_SERVER['DOCUMENT_ROOT']."/view/read.php";
break;

Можете подсказать ещё идеи? Или эта прокатит?
PM ICQ Skype   Вверх
Absinthe
Дата 11.6.2011, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Классы загружать через spl autoload.
Получать $module из запроса.
Получаем список доступных модулей $modules из конфига или наличия соответствующих файлов или наличия соответствующих классов или....
Выбираем и выполняем модуль:
Код

if (!in_array($module, $modules)) {
    $module = 'page404';
}
$response = new $module($request);

PM MAIL   Вверх
systemIV
Дата 11.6.2011, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 28.3.2011

Репутация: -1
Всего: -1



Я просто хз, как отловить число, переданное через нижнее подчёркивание, можно через рег.выражения, можно черех сепаратор разделить строку, но это всё мутарно, может быть есь уже готовое решение?

Добавлено @ 17:50
нет, ты не понял. мне нужно поймать число переданое через нижнее подчёркивание и потом подставить запрос mysql. только как его отловить. вот весь скрипт, тут если вызвать просто /read то покажутся все посты, а если оно передано с числом, то вывести пост с тем же ИД что и переданое число.
Код

<?php
    switch( $_SERVER['REQUEST_URI']){
        case "/": include $_SERVER['DOCUMENT_ROOT']."/view/read.php";
        break;
        case "/read/post_333": include $_SERVER['DOCUMENT_ROOT']."/view/read.php?post_id=333";
        break;
        case "/admin": include $_SERVER['DOCUMENT_ROOT']."/view/admin.php";
        break;
        case "/create": include $_SERVER['DOCUMENT_ROOT']."/view/create.php";
        break;
        case "/update": include $_SERVER['DOCUMENT_ROOT']."/view/update.php";
        break;
        case "/delete": include $_SERVER['DOCUMENT_ROOT']."/view/delete.php";
        break;
        default: include $_SERVER['DOCUMENT_ROOT']."/view/404.php";
    }
?>



Добавлено через 4 минуты и 56 секунд
а вот как поймать это 333, я хз

Добавлено через 9 минут и 26 секунд
проблема решена

Это сообщение отредактировал(а) systemIV - 11.6.2011, 17:52
PM ICQ Skype   Вверх
Sanchezzz
Дата 11.6.2011, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



я бы сделал через mod_rewrite страницу  

/read/read/post_333        
и принимал нормально $_GET

в файл .htaccess
Код

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
  RewriteRule ^/(.*)/post_(.*)/$ /index.php?view=$1&post_id=$2 [L] #  L - прекратить дальше проверять условия 
  RewriteRule ^/(.*)/$ /index.php?view=$1  [L]
</IfModule>


индекс пхп
Код

<?
switch( $_GET['view']){
  case 'read' : 
     include $_SERVER['DOCUMENT_ROOT']."/view/read.php"; // $_GET['post_id'] == 333
  break;

}
?>



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
systemIV
Дата 11.6.2011, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 28.3.2011

Репутация: -1
Всего: -1



Щас пока не въехал, но идея нравится)
Я вообще сделал проверку на существование переменной в ГЕТ запросе, и если она есть, то показывать страницу, если нет, то список постов
PM ICQ Skype   Вверх
MoLeX
Дата 14.6.2011, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



systemIV, делай роутер. Принцип прост: есть файл настроек
Код

$router['admin'] = 'admin';
$router['delete'] = 'delete';
...

дальше проверяешь первую секцию урла http://site.local/delete/1 на соответствие и если оно есть то вызываешь этот контроллер 



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0881 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.