Как да ползвам файл от един домейн

cHuBakA

Registered
Привет.
Имам файл който инклудвам. - include_once
Как мога да му задам чрез код вътре, този файл да бъде разрешен само за определен домейн? (не с .htaccess и др.)

Пример login.php да може да се инклудне само от www.sait-5.com

А от други сайтове и директен достъп да е забранен
 
Провери в началото кой е домейнът на текущия request.
Ако не съвпада с желания, правиш return (глобално за файла) и няма да се изпълни надолу.
 
Благодаря. Но аз точно тава не успявам да направя

Идеята е да дам достъп до файла от външен домейна но да е само за него. Да не се закачат и други без да знам
 
cHuBakA каза:
Благодаря. Но аз точно тава не успявам да направя

Идеята е да дам достъп до файла от външен домейна но да е само за него. Да не се закачат и други без да знам
Aхаa, може би нещо не сме се разбрали. Имах предвид, че ако имаш един скрипт на 3 сайта, и искаш при include на файла от други скритове, то въпросният скрипт да не се зарежда под други домейни, освен един конкретен.

Сега споменаваш нещо за "външен домейн", което не съм сигурен как да разбирам.

В първия случай, можеш да използваш каквато си искаш информация от $_SERVER - виж какви възможности има: https://www.php.net/manual/en/reserved.variables.server.php
И след това правиш така:

Код:
<?php
/* някакво условие - по домейн, IP, име на файл, каквото и да е: */
if($_SERVER["SERVER_ADDR"] == "123.45.67.89") return;

// всичко останало от файла
 
Благодаря много. Сега ще пробвам .

По конкретното е имам файл login.php на моя сайт (sait-1.com) който да разреша да могат да го инклуднат в друг сайт (sait-2.com) на друг хостинг.
Идеята е да задам само от sait-2.com да могат да го инклуднат.
и съответно никои други освен sait-2.com да не могат да го отварят или инклудват.

В примера, който сте ми дали като пример, може ли да се замени IP-то с домейн?
 
cHuBakA каза:
Благодаря много. Сега ще пробвам .

По конкретното е имам файл login.php на моя сайт (sait-1.com) който да разреша да могат да го инклуднат в друг сайт (sait-2.com) на друг хостинг.
Идеята е да задам само от sait-2.com да могат да го инклуднат.
и съответно никои други освен sait-2.com да не могат да го отварят или инклудват.

В примера, който сте ми дали като пример, може ли да се замени IP-то с домейн?

Ами значи все пак грешно съм те разбрал.
Мислех, че този файл живее на няколко сървъра, т.е. има копия тук и там, и искаш да има различно поведение според това на кой сървър се намира.
Кодът, който предложих, сравнява адреса на *текущия* сървър с дадения низ.

Иначе, адресът на клиента стои в $_SERVER['REMOTE_ADDR'], и в твоя случай него ще трябва да сравняваш. И то, обърни внимание, по IP - а не по домейн - защото клиент може да съм аз или ти, които нямаме имена (домейни), закачени към нашите IPта.

Също, не съм сигурен какво означава "include" от друг сървър, но от тази променлива си взимаш IPто на клиента. По идея с "include" включваш скриптове от своя проект, а не правиш заявки към други сървъри :think:
 
Благодаря. Горе долу ми се изяснява.
А има ли начин да се предотврати директен достъп до php файл. Но да е разрешен само за заявка от определен домейн?
 
cHuBakA каза:
Благодаря. Горе долу ми се изяснява.
А има ли начин да се предотврати директен достъп до php файл. Но да е разрешен само за заявка от определен домейн?
Може - в $_SERVER['REMOTE_ADDR'] e записано IPто на клиента от текущата заявка, можеш да го сравниш с желаното и да правиш различни неща, според това кой е достъпил адреса.

Код:
<?php 
if($_SERVER['REMOTE_ADDR'] === "12.34.56.78") {
    echo "Разрешено!";
} else {
    echo "Забранено!";
}
 

Горе