PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (4): [1] 2 3 4 »

> Найдено сообщений: 53
SindBAD Отправлено: 11 Марта, 2012 - 18:38:00 • Тема: вопросы по htaccess • Форум: Apache и другие веб-серверы

Ответов: 5
Просмотров: 749
Что-то не выходит. На всякий случай весь htaccess:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. ##
  3. # @version $Id: htaccess.txt 21064 2011-04-03 22:12:19Z dextercowley $
  4. # @package Joomla RE
  5. # @localized Авторские права (C) 2005 - 2011 Joom.Ru - Русский дом Joomla! Все права защищены.
  6. # @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
  7. # @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
  8. # Joomla! - свободное программное обеспечение.
  9. # Последнее изменение этого файла - 09.04.2011
  10. ##
  11.  
  12. #  Установка кодировки сайта по умолчанию. При необходимости, закомментируйте.
  13. #  Строка решает проблему с "крякозябрами" в редакторе TinyMCE и текста лицензии при установке
  14. #  на Денвере и некоторых серверах с жестко прописанной кодировкой. Это на 99,9% работающее решение.
  15. #  После переименования этого файла htaccess.txt в .htaccess проблема решится.
  16. #  Если проблема осталась - перечитайте предыдущее предложение (возможно неправильно переименовали).
  17.  
  18. AddDefaultCharset utf-8
  19.  
  20. #  Следующие строки - попытка исправить настройки PHP
  21. #  для полного соответствия системным требованиям Joomla.
  22. #  Раскомментируйте (символ комментария - #) нужные строки,
  23. #  если настройки вашего хоста не соответствуют рекомендациям
  24. #  системных требований Joomla.
  25. #  При возникновении 500 ошибки сервера, закомментируйте строку, вызывающую
  26. #  ошибку, или все строки с php_flag.
  27.  
  28. #  php_flag register_globals Off
  29. #  php_flag display_errors Off
  30. #  php_flag file_uploads On
  31. #  php_flag allow_url_fopen off
  32. #  php_flag magic_quotes_gpc On
  33. #  php_flag magic_quotes_runtime Off
  34.  
  35.  
  36. #  Пример явного указания каталога для записи сессий:
  37. #  Для Windows - c:/temp
  38. #  для UNIX  - /tmp
  39.  
  40. #  Указанный каталог должен физически существовать и быть доступен для записи
  41.  
  42. #  При необходимости, раскомментируйте строку ниже этой
  43. #  php_value session.save_path c:/temp
  44.  
  45. #####################################################
  46. #  ПРОЧТИТЕ ПОЛНОСТЬЮ, ЕСЛИ БУДЕТЕ ИСПОЛЬЗОВАТЬ ЭТОТ ФАЙЛ
  47. #
  48. # Строка ниже этого раздела: 'Options +FollowSymLinks' может вызвать проблему
  49. # при некоторых конфигурациях сервера. Она необходима для использования модуля
  50. # Apache mod_rewrite, но может быть уже настроена администратором вашего
  51. # сервера и изменение этого параметра в .htaccess может быть запрещено.
  52. # Если эта директива вызывает ошибку сервера, то закомментируйте строку
  53. # (добавьте символ # в начало строки), перезагрузите в браузере сайт и
  54. # протестируйте работу SEF-ссылок. Если они работают, то вам не надо ничего
  55. # менять здесь, т.к. всё уже настроено администратором сервера.
  56. #
  57. # Строки, которые можно раскомментирвать (и использовать) имеют только один #.
  58. # Строки с двумя символами ## раскомментировать не надо. В разделах, которые вы
  59. # не используете, все строки должны начинаться с символа #
  60. #
  61. #####################################################
  62.  
  63. ##  Может быть закомментировано, если вызывает ошибку сервера. Смотрите примечания выше.
  64. # Options +FollowSymLinks
  65.  
  66. #
  67. #  Включение mod_rewrite
  68.  
  69. RewriteEngine On
  70.  
  71. RewriteRule (.*?)_(.*?).html $1$2.html
  72.  
  73. ########## Начало - Правила обработки запросов для блокировки распространенных эксплоитов
  74. ## Если у вас возникли проблемы с вашим сайтом, используйте ниже описанные операции
  75. ## Они пытаются заблокировать самые распространенные эксплоиты Joomla!
  76. #
  77. ## Код запрета доступа к xml-файлам расширений (раскомментируйте для активации)
  78. #<Files ~ "\.xml$">
  79. #Order allow,deny
  80. #Deny from all
  81. #Satisfy all
  82. #</Files>
  83. ## Конец кода запрета доступа к xml-файлам
  84. # Блокировать любой запрос, пытающийся установить значение mosConfig через URL
  85. RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
  86. # Блокировать любой запрос, пытающийся испортить base64_encode через URL
  87. RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
  88. # Блокировать любой запрос, содержащий тег <script> в URL
  89. RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
  90. # Блокировать любой запрос, пытающийся установить значение глобальных переменных PHP через URL
  91. RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
  92. # Блокировать любой запрос, пытающийся изменить _REQUEST переменную через URL
  93. RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
  94. # Перенаправлять заблокированные запросы на страницу 403 с запрещенными ошибками!
  95. RewriteRule .* index.php [F]
  96. #
  97. ########## Конец правил обработки для блокировки распространенных эксплоитов
  98. #  Раскомментируйте следующую строку, если URL вашего web-сервера
  99. #  не связаны напрямую с физическими путями файлов.
  100. #  Обновите ваш каталог Joomla (используйте "/" для обозначения корня сервера)
  101. RewriteBase /
  102.  
  103.  
  104. ########## Начало раздела SEF ядра Joomla!
  105. #
  106. RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  107. #
  108. # Если запрошенный путь и файл не содержат /index.php и запрос еще
  109. # не был перенаправлен на скрипт index.php
  110. RewriteCond %{REQUEST_URI} !^/index\.php
  111. # и запрашивается URL корня или расширения, или
  112. # запрашиваемый URL оканчивается на одно из перечисленных расширений
  113. RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?|feed|pdf|raw))$ [NC]
  114. # и запрошенный путь не соответствует пути к физическому файлу
  115. RewriteCond %{REQUEST_FILENAME} !-f
  116. # и запрошенный путь не соответствует пути к физической папке
  117. RewriteCond %{REQUEST_FILENAME} !-d
  118. # то перенаправить запрос на скрипт index.php
  119. RewriteRule .* index.php [L]
  120.  
  121. #
  122. ########## Конец раздела SEF ядра Joomla!
  123.  
SindBAD Отправлено: 11 Марта, 2012 - 17:43:28 • Тема: вопросы по htaccess • Форум: Apache и другие веб-серверы

Ответов: 5
Просмотров: 749
Не вариант, необходимо решить задачу именно так, как она поставлена.
SindBAD Отправлено: 11 Марта, 2012 - 17:20:39 • Тема: вопросы по htaccess • Форум: Apache и другие веб-серверы

Ответов: 5
Просмотров: 749
Всем привет!
Нужно сделать такой рерайт ссылок, чтобы, например, /cargo_refrigerator.html заменаялась на лету на /cargorefrigerator.html (таких ссылок много) и /st.petersburg.html на /stpetersburg.html (такая ссылка одна).
Подскажите, как это делается?
SindBAD Отправлено: 29 Июня, 2011 - 21:21:39 • Тема: Реально ли переопределить метод, вызываемый в статике? • Форум: Объектно-ориентированное программирование

Ответов: 4
Просмотров: 2099
Ясно. Никак, значит...
Тут дело к сожалению не в том, хочу я или не хочу, а в том, что код ядра реализован топорно. Если я изменю его, то последующие обновления могут поломать мои доработки. Хуки ядра тоже не предусмотрены. А в скриптах joomla данный метод везде вызывается только как JRoute::_() , и это тоже не перепишешь - это почти весь фронтенд движка.
Вот такая петрушка...(
SindBAD Отправлено: 29 Июня, 2011 - 20:56:36 • Тема: Реально ли переопределить метод, вызываемый в статике? • Форум: Объектно-ориентированное программирование

Ответов: 4
Просмотров: 2099
Без вмешательство в JRoute никак? Ядро трогать не хочется, а так бы я тупо метод переписал.
SindBAD Отправлено: 29 Июня, 2011 - 18:49:39 • Тема: не повторяющееся поле int в php • Форум: Хранение данных, их вывод и обработка

Ответов: 3
Просмотров: 1063
vaden автоинкремент при каждом вызове - это только с кэшированием промежуточого результата.
Типа того:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. include 'ai.php';
  4. file_put_contents('ai.php', '<? $ai = '.($ai++).';');
  5. //....e t c
  6.  

Ещё, как вариант, сессии. Но о свойствах сессий сами знаете, это зависит от конкретных задач.
SindBAD Отправлено: 29 Июня, 2011 - 18:38:28 • Тема: Реально ли переопределить метод, вызываемый в статике? • Форум: Объектно-ориентированное программирование

Ответов: 4
Просмотров: 2099
Всем привет.
Потребовалось изменить в Joomla метод ядра.
PHP:
скопировать код в буфер обмена
  1. <?
  2. JRoute{
  3.         function _($url, $xhtml = true, $ssl = null){
  4.                 ...
  5.                 return $url;
  6.         }
  7. }
  8.  

Добавил плагином такой код:
PHP:
скопировать код в буфер обмена
  1. class SEFreplaceRoute extends JRoute{
  2.         function _($url, $xhtml = true, $ssl = null){
  3.                 $url = parent::_($url, $xhtml, $ssl);
  4.                 ...
  5.                 return $url;
  6.         }
  7. }

Но загвоздка в том, что в двмжке метод всегда вызывается без объявления класса,
JRoute::_(...), и поэтому переопределить его не удаётся. Можно как-то это обойти?
SindBAD Отправлено: 28 Мая, 2011 - 18:47:43 • Тема: Виртуальные поддомены • Форум: Apache и другие веб-серверы

Ответов: 0
Просмотров: 196
Всем привет.
Нужно организовать динамическую подмену lang.site.com/URI на site.com/lang/URI.
Папки lang в реальности не существует, это путь ЧПУ. Ни разу такого не делал, и не могу найти наиболее полного руководства. Есть лишь разрозненные сведения, что нужно присваивать DNS в панели провайдера и править httpd.conf.
Кто уже делал подобное, просветите пошагово, пожалуйста!
SindBAD Отправлено: 28 Декабря, 2010 - 14:24:22 • Тема: Куки и путь с параметрами • Форум: Программирование на PHP

Ответов: 3
Просмотров: 247
Соединил имя модуля с именем куки:
PHP:
скопировать код в буфер обмена
  1. setcookie($this->module.'-pagesnumber', $pagesnumber, time()+date::days2sec(120), '/');

Вообще думал, что привязку можно сделать более "чистым" методом.
SindBAD Отправлено: 28 Декабря, 2010 - 13:26:20 • Тема: Куки и путь с параметрами • Форум: Программирование на PHP

Ответов: 3
Просмотров: 247
Всем привет.
Есть такая задача: нужно установить куку, которая будет срабатывать только для одного модуля. Ссылки на модули выглядят так:
/admin.php?module=adminmenu
/admin.php?module=users
К примеру, такая конструкция работает:
PHP:
скопировать код в буфер обмена
  1. setcookie('sort', $sort, time(), '/admin.php?module=adminmenu');

но если к пути добавляется, например, номер страницы
/admin.php?module=adminmenu&page=4
или еще что-нибудь
/admin.php?module=adminmenu&filter=name+&page=4
то кука, установленная для /admin.php?module=adminmenu перестаёт работать.
Вопрос: можно как-то с этим бороться?
SindBAD Отправлено: 15 Марта, 2010 - 12:02:52 • Тема: Проблема с доступом к переменной класса • Форум: Программирование на PHP

Ответов: 7
Просмотров: 472
JustUserR пишет:
Как вариант можно было бы сделать наследование классов и все настройку класса core сохранить в статические поля - таким образом не пришлось бы держать экзмепляр одного класса внутри экземпляра другого


Я сделал вложенность экземпляров для того, чтобы все свойства и методы были доступны по одному указателю - тогда не возмникает путаницы с доступом.
Если просто применить extends, то так просто все не получится...
SindBAD Отправлено: 14 Марта, 2010 - 14:51:40 • Тема: Проблема с доступом к переменной класса • Форум: Программирование на PHP

Ответов: 7
Просмотров: 472
JustUserR пишет:
Хм вообще интересный вопрос но вы пишите
SindBAD пишет:
$this->params = core::getConfig();
- соответственно функция getConfig должна быть статической потому что классы не отнаследовны друг от друга и экземпляр не указан - таким образом и сам массив $config тоже должен быть статическим иначе у вас получается смесь сатических и инкапсулированных данных класса


Да это $this->params = core::getConfig(); появилось в ходе экспериментов и все равно желаемого результата не дает. Проблема собственно в чем: при объявлении класса создается объект $core->config, а вот как до него из других классов добраться и при этом не нарушить инкапсуляцию, я понять не могу.
(Добавление)
Ура, нашлось решение!
class Core{
public $config;
function loadClass($path){
require($path);
$classname = strtolower(substr(basename($path), 0, -strlen(strrchr($path, '.'))));
$this->$classname = new $classname($this)
}

class DataBase{
private $table;
private $limit;
public $dbhdl;
public $config;
private $core;
function __construct($core){
$this->core = $core;
}
}
SindBAD Отправлено: 14 Марта, 2010 - 14:01:10 • Тема: Проблема с доступом к переменной класса • Форум: Программирование на PHP

Ответов: 7
Просмотров: 472
JustUserR пишет:
SindBAD Попробуйте добавить модификатор global и объявить функцию как статическую

Я тоже об этом думал. Так же думал о передаче параметров через loadClass.
Но в случае с global ООП вообще потеряет смысл, т.к. объявлять глобальной придется каждую вторую переменную. А в случае с параметрами мне придется таскать много хвостов из класса в класс, причем неизвестно, какие параметры для уже написанных классов могут понадобиться в процессе разработки.
SindBAD Отправлено: 14 Марта, 2010 - 09:00:39 • Тема: Проблема с доступом к переменной класса • Форум: Программирование на PHP

Ответов: 7
Просмотров: 472
Всем привет!
Вобщем вот такое дело...
index.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. define('PATHTOCORE', 'mycms/');
  3. require(PATHTOCORE.'system/core.php');
  4. $core->loadClass(PATHTOCORE.'system/database.php');
  5. ?>


core.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class Core{
  3. //$config - Это та самая переменная, которую треба получить в классе database
  4. public $config;
  5. function __construct(){
  6.  $this->loadConfig();
  7. }
  8. //loadConfig - это функция, которая подключает конфиг и из простых переменных делает объекты
  9. function loadConfig(){
  10.  require(PATHTOCORE.'settings/config.php');
  11.  $config = get_defined_vars();
  12.  foreach($config as $k=>$v){
  13.   $this->config->$k = $v;
  14.  }
  15. }
  16. //изначально расчитывал на то, что этот метод будет возвращать $config класса Core,
  17. //а он ищет $config в классе, в котором его вызываешь(
  18.         function getConfig(){
  19.                 return $this->config;
  20.         }
  21. //а это функция, которая загружает класс и тут же объявляет его
  22. //при этом создается объект с именем класса, который содержит все объекты класса
  23. //то есть, если подключается класс database, то появится объект $core->database.
  24. function loadClass($path){
  25.  require($path);
  26.  $classname = strtolower(substr(basename($path), 0, -strlen(strrchr($path, '.'))));
  27.  $this->$classname = new $classname();
  28. }
  29. }
  30. $core = new Core();
  31. ?>


database.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class DataBase{
  3. private $table;
  4. private $limit;
  5. public $dbhdl;
  6. public $params;
  7. function __construct(){
  8. /*вот собственно проблемный участок. getConfig() мне не удалось заставить работать так, как мне нужно. Метод начинает искать $config в классе DataBase. Собственно, в том и вопрос: как заполучить сюда $config?*/
  9.  $this->params = core::getConfig();
  10. }
  11. }
  12. ?>


См. комментарии в коде. Если что-то пояснил непонятно - спрашивайте, допоясню)

UPD: Оказалось, core::getConfig() возвращает именно core->config, но почему-то пустую, т.е. в том виде, в каком она была объявлена...
SindBAD Отправлено: 13 Декабря, 2009 - 14:57:34 • Тема: Котирвоки forex и российских фондовых рынков в реальном времени • Форум: Программирование на PHP

Ответов: 4
Просмотров: 341
JustUserR, здесь засада в том, что в реальном времени эти данные не дают, а выносят на сайты с задержкой в 15-30 минут. Я уже выяснил, что к примеру РТС и ММВБ дают такие данные только по платной подписке и запрещают бесплатную раздачу с задержкой менее чем в 15 минут.

Страниц (4): [1] 2 3 4 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB