Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 63 Ответов
  • 2348 Просмотров
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Так писали или нет? И если да, то что именно?

Извиняюсь, я уже запуталась. Я пробовала вариант который предложил capricorn, не помогло или у меня руки кривые. А вариант который предложил SmokerMan я не смогла попробовать, по причине, что не знаю куда писать код.
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
В варианте capricorn в строчке:

Код
$a=ip_in_range($_SERVER["REMOTE_ADDR"], '192.168.0.0/24');

вместо 192.168.0.0/24 я писала свой белый IP.
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Вроде все правильно написала.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Начинаем сначала.

Закачиваем в корень на хостинге php файл ip_not_in_range.php

Спойлер
[свернуть]

Мой IP 108.94.4.76 меняем на свой. Свой IP узнаем, открыв http://myip.ru/ Тестируем в браузере Opera с VPN и без VPN. Открываем http://мойдомен/ip_not_in_range.php

если меняется вывод, идем дальше.
« Последнее редактирование: 01.12.2016, 23:01:11 от capricorn »
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Цитировать
http://мойдомен/ip_not_in_range.php

Добавила файл в корень. Теперь если зайти с другого IP по такой ссылки, то выводится чистый бланк с одной надписью - что бы попасть на этот ресурс вы должны быть подключены к внутренней сети (правда кракозябры, надо подобрать кодировку файла). Если зайти по такой ссылке с своего IP то - сервер не найден и в адресной строке какие то кракозябры.
*

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Замените в этом файле русские буквы на латиницу или сохраните его в кодировке UTF-8 без BOM. Это можно сделать в Notepad++.

Теперь смотрите. Это тестовый файл, он выдает всего два сообщения - когда вы в своей сети и когда вне ее. Если все показывает корректно, вместо вывода сообщений можно поставить редирект или приинклудить нужные страницы.

Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Замените в этом файле русские буквы на латиницу или сохраните его в кодировке UTF-8 без BOM. Это можно сделать в Notepad++.

Это сделано сразу (кодировка), но не помогло. Латиница как то не айс.
*

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Это сделано сразу (кодировка), но не помогло. Латиница как то не айс.
Можно еще вставить в него код:
Код: php
<?php header("Content-Type: text/html; charset=utf-8"); ?>

Да она вам не нужна, вместо текста сообщений все равно у вас потом будет страница выводится. Поменяйте тогда на YES и NO, для простоты. Вам главное протестировать его работу.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Можно еще вставить в него код:
Код: php
<?php header("Content-Type: text/html; charset=utf-8"); ?>

Да она вам не нужна, вместо текста сообщений все равно у вас потом будет страница выводится. Поменяйте тогда на YES и NO, для простоты. Вам главное протестировать его работу.

С кодировкой разобралась. А что теперь? Добавила строчку в файл .htaccess:

Код
ErrorDocument 404 /ip_not_in_range.php

Как бы все по прежнему, при нажатии на ссылку - нет файла.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Цитировать
Добавила строчку в файл .htaccess:

Пока уберите.

Цитировать
Если зайти по такой ссылке с своего IP то - сервер не найден и в адресной строке какие то кракозябры.

Должно быть - я в диапазоне IP. Кодировка второй вопрос.
« Последнее редактирование: 02.12.2016, 00:24:16 от capricorn »
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Пока уберите.

Убрала.

Должно быть - я в диапазоне IP. Кодировка второй вопрос.


Извиняюсь, все работает, ну то есть надписи меняются в зависимости от внешнего IP. Просто скопировала первый Ваш код и не заметила, что второй отличается. Так да, все работает как Вы говорите.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
И что теперь вы хотите? сформулируйте задачу снова.
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
И что теперь вы хотите? сформулируйте задачу снова.

На внешнем сайте, где все это сейчас и делаю есть меню:



Нужно при нажатии на пункт - Личный кабинет, если IP мой, то открывать адрес http://192.168.0.1, а если IP не мой, то надпись - что бы попасть на этот ресурс вы должны быть подключены к внутренней сети.
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
На сколько я поняла, теперь в админке в пункте меню - Личный кабинет, нужно заменить url с http://192.168.0.1 на http://мойдомен/ip_not_in_range.php, а в файле нужно поправить, вместо - Я в диапазоне IP вставить - http://192.168.0.1, а все остальное оставить без изменений. Я не очень в php, можно сказать совсем. Я так понимаю просто заменить строчку не получится?
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Цитировать
то открывать адрес http://192.168.0.1

Это адрес из локальной сети. Юлия, подумайте сами. У меня вот роутер дома имеет адрес 192.168.0.1.

*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Я вам пытаюсь объяснить простыми словами. без сетевых терминов.

сервер может отдавать ответ если вы его спрашиваете. поэтому нужно знать к какому серверу идет запрос. и если нечто расположено вне интернета как оно может отвечать?
« Последнее редактирование: 02.12.2016, 01:38:46 от capricorn »
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Это адрес из локальной сети. Юлия, подумайте сами.

Именно так. Все правильно. Я нахожусь в локально сети и имею адрес 192.168.0.2 если мне на внешнем сайте дадут ссылку http://192.168.0.1 (а у меня в сети есть такой сервер с сайтом), то я попаду на этот сервер. Что не так?


P.S.
А вот Вы при такой ссылке не попадете на свой роутер, так как при заходе на мой сайт имеете не мой белый IP.
« Последнее редактирование: 02.12.2016, 01:39:36 от Julia_ »
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0

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


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

P.S.

Вы попробуйте на своем внешнем ресурсе сделать ссылку - http://192.168.0.1 куда Вы попадете? Правильно в админку своего роутера.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
а если я роутер выключу и воткну USB модeм куда я попаду по внутреннему адресу 192*?

я вам еще раз говорю - опишите архитектуру того, что вам нужно.
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
а если я роутер выключу и воткну USB модeм куда я попаду по внутреннему адресу?

Тогда Вы уже будете так сказать не в своей сети и при заходе на внешний сайт будет надпись - что бы попасть на этот ресурс вы должны быть подключены к внутренней сети. Если это касается моего варианта. А если Вы про свой случай, то при нажатии на внешнем сайте по ссылке - http://192.168.0.1 Вы получите отлуп, что нет такого ресурса. Как то так. Вроде все сходится. Вы не принимайте этот адрес за реальный, адрес локальной сети совсем другой и ни как не попадет под адреса сетевых устройств.
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
я вам еще раз говорю - опишите архитектуру того, что вам нужно.

Я даже уже и не знаю, что писать. Мне нужно, что бы при нажатии по пункту меню - Личный кабинет, если мой IP совпадает с IP который написан в файле ip_not_in_range.php, то перекидываем меня по ссылки http://192.168.0.1, а если IP не совпадает, то пишем надпись -  что бы попасть на этот ресурс вы должны быть подключены к внутренней сети.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Есть такое понятие DNS. Это значит, что доменному имени соответствует IP адрес.  То есть - набираешь вася и DNS отправляет тебя к васе.

как может DNS направить тебя на 192* если таких васей с 192* миллиарды?
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
короче, спросите админа внутреннего сервера что у него с выходом в инет. он поймет о чем речь. а вам голову забивать не надо всякими NAT-ми и firewall-ми
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Есть такое понятие DNS. Это значит, что доменному имени соответствует IP адрес.  То есть - набираешь вася и DNS отправляет тебя к васе.

как может DNS направить тебя на 192* если таких васей с 192* миллиарды?

Хорошо, давайте начнем с построения сетей. В локальной сети имеется ресурс http://вася, на роутере который раздает интернет в DNS есть статическая запись вася=192.168.0.1, у пользователей локальной сети DNS прописан этот роутер. Все пользователи в локальной сети набрав у себя в браузере http://вася попадают на локальный сайт. Теперь, дальше, на внешнем сайте есть пункт меню с ссылкой http://вася, пользователи нашей сети нажав на нее получают url в браузере, далее идет запрос к DNS серверу резольвить адрес, DNS выдает 192.168.0.1, так как это адрес из локальной сети и компьютер пользователя находится в той же сети, то поиск идет не мир а в локальную сеть и там находится сервер. Все работает по законам сетей, ни чего хитрого. А теперь помогите мне доделать, там вроде чутка осталось. Я уже спать хочу :)
*

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Вот зачем вы в эти дебри полезли? Пункт меню "Личный кабинет" завернуть на файл ip_not_in_range.php, внутри вместо вывода надписей прописать include подготовленных страниц. ВСЕ!
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Вот зачем вы в эти дебри полезли? Пункт меню "Личный кабинет" завернуть на файл ip_not_in_range.php, внутри вместо вывода надписей прописать include подготовленных страниц. ВСЕ!

я в php как в апельсинах. если в файле поменять вместо:

Код
echo "я в диапазоне IP";

поставить:

Код
include 'http://мой_внутренний_сайт.ru';

то ни чего не открывается, пустой экран.
*

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Не, не так. Вы должны создать две страницы, например, yes.php и no.php, внутри написать код, который будут видеть люди, и подключить их.
Код: php
include 'yes.php';

Либо создать свои странички (статичные Joomla), а в коде прописать не include, а что то типа:
Код: php
header("Location: /yournovalidip.php",TRUE,301);

То есть целиком этот кусок кода будет примерно такой:
Код: php
if ($a == true) {
header("Location: http://мой личный кабинет",TRUE,301);
}
 
elseif ($a == false) {
    header("Location: /yournovalidip.php",TRUE,301);
}
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Не, не так. Вы должны создать две страницы, например, yes.php и no.php, внутри написать код, который будут видеть люди, и подключить их.
Код: php
include 'yes.php';

Ни чего не поняла. У меня уже есть страничка на локальном сервере, которую должны видеть люди из локальной сети. Что я буду делать с новыми страничками?

Либо создать свои странички (статичные Joomla), а в коде прописать не include, а что то типа:
Код: php
header("Location: /yournovalidip.php",TRUE,301);

То есть целиком этот кусок кода будет примерно такой:
Код: php
if ($a == true) {
header("Location: http://мой личный кабинет",TRUE,301);
}
 
elseif ($a == false) {
    header("Location: /yournovalidip.php",TRUE,301);
}

Наверное то же самое, что и в первом случае, зачем мне новые странички на хостинге?
Наверное будет проще если я напишу, как сделать, что бы при совпадении адреса, открывало сайт yandex.ru
*

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Наверное то же самое, что и в первом случае, зачем мне новые странички на хостинге?
1. Этот код вы ставите на том сайте, который у вас в интернете и с которого к вашему локальному серверу доступа нет, следовательно, именно на нем создаете страничку о том, что в личный кабинет имеют доступ пользователи только внутренней сети.
2. Это была только одна единственная страничка, которую надо создать. Вторая ссылка перекидывает пользователя в личный кабинет, так как скрипт определил, что он (пользователь) находится во внутренней сети.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Ура, все получилось. В коде который предложил capricorn, поменяла эту строчку:

Код
echo "я в диапазоне IP";

на эту, предложенную SeBun:

Код
header("Location: http://мой_сайт_в_локальной_сети.ru",TRUE,301);

Больше ни чего не трогала. Может это как то неправильно, но работает как надо. Отдельное спасибо - capricorn, SeBun.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сохранить не удалось из-за ошибки: Содержимое превышает допустимые лимиты

Автор R31rus

Ответов: 21
Просмотров: 3425
Последний ответ 27.03.2024, 16:46:13
от Gorilla
Изменение отображения модуля от разрешения экрана

Автор mag_num83

Ответов: 5
Просмотров: 525
Последний ответ 17.05.2023, 09:35:23
от Театрал
jos-Error: Материал не найден вместо 404 ошибки

Автор bugmenot

Ответов: 4
Просмотров: 927
Последний ответ 10.01.2023, 11:32:11
от Mick_20
Ошибки при переходе на PHP 8.2

Автор Dram

Ответов: 6
Просмотров: 806
Последний ответ 30.12.2022, 13:44:32
от Dram
Ошибки при загрузке страниц сайта

Автор web_signal

Ответов: 3
Просмотров: 431
Последний ответ 08.11.2022, 20:26:13
от marksetter