- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Уважаемые умы, подскажите направление, ибо я запутался и не знаю куда копать.
На днях перенес сайт с одной машины на другую. Практически все продублировал на новом серверe.
Веб-сервер вида (связка) - apache (для php) + nginx (статика)+mysql + php 5.4
Попросил местных админов (хостера) поставить LAMP, остальное доработал руками. По началу порадовался, ибо все работало без единой зацепки, но потом один косячок таки всплыл. Почему то на DLE сайте косячно/неполно/одинестьдругойнет перестали передаваться GET через URL.
DLE 10.1, Тип ЧПУ - 1, остальные настройки по умолчанию.
По факту, в адресной строке я вижу все что передаю через <_form action="GET"_>, но через $_GET их вытянуть не получается, или из 3-4 переменных тянется всего один (это вообще непонятно, если бы не работало, то полностью, а тут один передался, другой нет)
Все это при заявленном QSA флаге в htaccess (который разрешает передачу GET, POST и т.д.).
Подскажите, я уже голову сломал. Любые мнения приветствуются, необходимый код по запросу кину/предоставлю.
Такое ощущение, что по пути часть GET просто проглатывается (и, кстати, это только в одном месте). Или какого то модуля php не хватает.
Быстрые ответы:
- мод_реврайт включен,
- Да, исполнение htaccess разрешено в конфиге апача,
- Нет, я не передаю мегабайты символов методом GET (и ведь раньше все работало!).
---------- Добавлено 21.10.2014 в 19:56 ----------
Если дело в каком-то модуле, то вот список:
root@localhost:~# php -m
Нигде ничего не "проглатывается", как обычно всегда дело в руках. Вы изначально не правильно подошли к проблеме. Начали с дле, продолжили с мод_реврайт, а в сабже говорите что не передаются ГЕТ параметры на сервер. Если следовать сабжу, то нужно создать простой скрипт с кодом print_r($_GET) и отправить к нему запрос с GET параметрами. Потом, таким же образом, продебажить параметры в своем скрипте отправив GET параметры, и в конце проверить работу своего реврайта.
Начали с дле
Да, ибо ЧПУ DLE режет GET. Вдруг...
продолжили с мод_реврайт
Тут тоже может крыться проблема, ибо по умолчанию он был выключен, поднимал руками.
не передаются ГЕТ параметры на сервер
Не совсем так, передаются частично... упоминал.
Как проверить работу реврайта? ЧПУ 1,2,3 прошли проверку и работают.
---------- Добавлено 21.10.2014 в 20:21 ----------
И коллеги, почему может не работать - bcpow? На это грешу тоже.
При вычислении используется эта функция:
пример $st=bcpow($srp, $sr, 10); (возведение в степень)
Отличается ли синтаксис в 5.3 и 5.4 php?
Не совсем так, передаются частично... упоминал.
Так передаются или передаются частично? Тут стоит спросить, а каким образом вы это проверяли?
Да, ибо ЧПУ DLE режет GET. Вдруг...
ЧПУ дле ничего не режет. Он сам на $_GET массиве работает, ибо у него реврайты пишутся отдельно для каждого адреса, а не парсится скриптом.
Так передаются или передаются частично? Тут стоит спросить, а каким образом вы это проверяли?
ЧПУ дле ничего не режет. Он сам на $_GET массиве работает, ибо у него реврайты пишутся отдельно для каждого адреса, а не парсится скриптом.
Вы в некотором роде навели меня на верный путь :)
$st=bcpow($srp, $sr, 10); - где тут неправильно?
echo $st - показывает ноль...а так быть не должно.
var_dump($srp, $sr, 10); покажет вам почему $st - показывает ноль. PHP он такой, нетипизированный язык.
var_dump($srp, $sr, 10); покажет вам почему $st - показывает ноль. PHP он такой, нетипизированный язык.
ответ адекватный: float(1,0175) string(2) "40" int(10)
Значит синтаксис!?
Видимо в php 5.3 (эта версия до переезда на новый сервер, сейчас 5.4) переваривал мой корявый код.
float(1,0175) string(2) "40" int(10)
Ошибка связана с запятой в нецелом числе. Если там будет стоять точка,то все работает. Умы, подскажите, в настройках php можно что-то подкрутить по этому поводу или придется искусственно менять запятую на точку? Кстати, если поможет только замена, то как это реализовать?
Подвох в том, что на преобразование float в string влияют региональные настройки то бишь локаль.
Помочь может setlocale или number_format.
Подвох в том, что на преобразование float в string влияют региональные настройки то бишь локаль.
Помочь может setlocale или number_format.
Спасибо, воспользовался number_format.