Php include

Pozdrav svima sa webmajstora zanima me dali je moguce ikako napraviti recimo ovo mi je php include

include(‘basic.php’); ovo radi dal je moguce nekako napraviti
include(‘http://mojadomena.com/basic.php’); ovo neradi ali dal je moguce tako napraviti.

Meni je zamisao recimo imam 2 weba i sad recimo imam kod i unutra izbrisem dio i padne stranice dal imate vi ideju kako to napravit Hvala

PHP: file_get_contents - Manual

Isprobo jesam ali ni jedno neradi od ovo dvoje sta mi ti preporucujes da bi valjalo Hvala :smiley:
$homepage = file_get_contents(‘http://www.example.com/’);
$file = file_get_contents(‘http://www.example.com/’, false, $context);

Šta ti ne radi ?
Šta ti zapravo hoćeš ?

Ja ti ovo “recimo imam 2 weba i sad recimo imam kod i unutra izbrisem dio i padne stranice” uopće ne razumijem, objasni malo detaljnije.

Pretpostavljam da želi napraviti dio php koda unutar jedne stranice (nazovimo “stranica 1”) koji uzima (ajmo reć) “ključ za identifikaciju” sa drugog site-a (nazovimo “stranica 2”), pa ako taj ključ postoji na toj drugoj adresi (“stranici 2”) i ako je ispravan da “stranica 1” radi, a ako ne postoji ili je neispravan - da “stranica 1” ne funkcionira.
Ja sam radio nešto slično tome, i radio sam to sa CURL, međutim moraš provjerit dozvoljava li hosting pokretanje CURL funkcije.

dmitrecic, može neki konkretan primjer iz stvarnog života u kojem bi to nekome trebalo ?

Pa kakve to veze ima zašto bi to nekome trebalo?
Totalno nebitno. Čovjek pita kako, a zašto mu to treba zabole i mene, a bogme i tebe (bez ljutnje, ne vrijeđam) :slight_smile:

Svako ima svoje razloge. Ja sam htio sa jednog mjesta kontrolirat prikaz stranica (mojih) koje su na drugom hostu.
Lakše mi je bilo preko CURL-a nego tražit od prvog i drugog hosta da mi stave dozvolu da mogu pristupat MySQL serveru sa prvog hosta na drugom hostu.

Možda čovjek želi napraviti “zaštitu” da ukoliko mu netko ne plati da mu može zaustavit rad site-a, iako se to riješi jednim potezom ali nema veze.

Ima veze, jer ne razumijem što se traži, a kad bih razumio zašto se traži, vrlo vjerovatno bi se ispostavilo da postoji elegantnije rješenje.
Recimo, ne razumijem zašto bi ti host morao stavljati (kakvu to?) dozvolu da možeš pristupati MySQL-u, to mi nikako nema smisla.
Imaš pristupne podatke i to je to.

Ovdje pokušavam napraviti dvije stvari:

  • pomoći wampiru, kao mogu
  • popraviti svoje znanje, ako je krivo ili nepotpuno

to sto ti zelis, pretpostavljam, je cross site include… i to je pomocu php-a nemoguce napraviti
dakle, nemozes napraviti ako si na npr. server1.com, da imas liniju

include("http://server2.com/neka_skripta.php");

mozes, jedino ako su na istom serveru, pa koristis absolute path do skripte

sam ispis, dakle html koji generira php skripta, mozes ubaciti, odnosno ‘pokupiti’, bilo koristeci curl, bilo fopen, ili bilo koju funkciju koju mozes koristiti na odredjenom serveru

dakle, moze koristiti curl/fopen da bi dobio sljedece

npr. imas file
1.php

<?php
function Test(){
     echo "test 2";
}
echo "test";
?>

ako s curlom pokupis content 1.php, dobit ces html ispis "test"
ako zelis includat 1.php, pa poslije koristiti funkciju test, unutar tog file-a, to ne mozes, ako skripte nisu na istom serveru…

dakle, mozes pokupiti samo ispis odredjene skripte, ako ti je to ok, i to sto trazis, koristi curl/fopen…
ako zelis includati odredjenu skriptu zbog funkcija unutra, to ne mozes, ukoliko fileovi nisu na istom serveru

s tim da obratis pozornost na sljedece, mozda ti to moze pomoci

If “URL fopen wrappers” are enabled in PHP (which they are in the default configuration), you can specify the file to be included using a URL (via HTTP or other supported wrapper - see List of Supported Protocols/Wrappers for a list of protocols) instead of a local pathname. If the target server interprets the target file as PHP code, variables may be passed to the included file using a URL request string as used with HTTP GET. This is not strictly speaking the same thing as including the file and having it inherit the parent file’s variable scope; the script is actually being run on the remote server and the result is then being included into the local script.

[quote=“dmitrecic”]
Možda čovjek želi napraviti “zaštitu” da ukoliko mu netko ne plati da mu može zaustavit rad site-a, iako se to riješi jednim potezom ali nema veze.[/quote]

Da to mi treba :smiley: na tu caku da slozim php jel se moze na neki drugi nacin ili jedino preko curl-a
i naravno ako može par primjera uz to :smiley:

Ma nikakav curl ni ništa.

Opiši detaljno svoj problem.

Ja bi recimo htio recimo imam napravljen web u php skripti i sad ga dam svom prijatelju i recimo ja mu mogu ukinuti web recimo sa tim includom da je na mojoj stranici samo napisem na kraju ovog taga ?> neko slovo i citava skripta kreša i padne sistem :smiley: ako me razumijes :smiley:

i šta je bilo kad si se probudio?

ne možeš ti pozvati kod php skripte sa drugog servera jer ce web server na drugoj masini izvrsiti prvo php skriptu i printati html…

Dal postoji koji nacin da se napravi uopce to pozivanje sa drugog servera

postoji nacin da prenosis podatke, ali ne na nacin da includeas php file kod sebe na serveru…

Npr ako zelis nekome dati php skriptu sa odredjenim vremenom trajanja, za to upotrijebi ioncube encoder…

Sa CURLom primjer:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.tvojglavnisite.com/naziv_datoteke.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_FAILONERROR,true);
if(curl_exec($ch) === false)
	{
		$sadrzaj=0;
	}
else
	{
		$sadrzaj = curl_exec($ch);
	}
curl_close($ch);

U $sadrzaj varijablu ti se sprema ono što se nalazi u datoteci naziv_datoteke.txt na siteu
http://www.tvojglavnisite.com

Jednostavan primjer kako iskoristiti:

  • u naziv_datoteke.txt staviš neki string, pa da ti naziv_datoteke.txt kad ga otvoriš npr. u Notepadu izgleda ovako:

    12345

  • dakle, u varijablu $sadrzaj biti će ti spremljeno “12345”, pa onda primjerice možeš napraviti u index.php fileu na serveru tvog klijenta:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, “http://www.tvojglavnisite.com/naziv_datoteke.txt”);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch,CURLOPT_FAILONERROR,true);
    if(curl_exec($ch) === false)
    {
    $sadrzaj=0;
    }
    else
    {
    $sadrzaj = curl_exec($ch);
    }
    curl_close($ch);

    if ($sadrzaj!=“12345”)
    {
    echo “Nisi platio pa skripta neće radit”;
    die();
    }

Ako promjeniš naziv_datoteke.txt i upišeš u nju “15” umjesto “12345” onda će naravno skripta prestat radit i pokazat će mu “Nisi platio pa skripta neće radit”.

Ovo je primjer i iako bi radilo, nije pravo rješenje. Međutim ako radiš nekome tko ne zna ništa o programiranju, onda će i ovo biti dovoljno.

Naravno, možeš kriptirat url koji se poziva, možeš kriptirat podatke koje uspoređuješ, možeš pozivat dvije različite datoteke koje se uspoređuju, ili pozivat tri različite datoteke od koje se u dvije nalaze podaci za izračun a u trećoj rezultat, itd…

A ako baš želiš, možeš napraviti i skriptu unutar naziv_datoteke.txt da izgleda ovako:

echo 'Ovo je sa moje glavne stranice';

A u .php file na drugom serveru samo taj sadrzaj ubaciš u eval() funkciju koja će tekst u $sadrzaj varijabli tretirati kao php code:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.tvojglavnisite.com/naziv_datoteke.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_FAILONERROR,true);
if(curl_exec($ch) === false)
	{
		$sadrzaj="die();";
	}
else
	{
		$sadrzaj = curl_exec($ch);
	}
curl_close($ch);

eval($sadrzaj);

Imaš hrpu mogućnosti, samo upogoni maštu pa poveži sve to i možeš napraviti dobru zaštitu, pogotovo ako taj code ubaciš na nekoliko mjesta u skriptu kod korisnika.
Možeš čak i provjeravati u skripti koja se vrti kod korisnika, da li je neka datoteka izmjenjivana i da li je veća ili manja nego što bi trebala biti, pa ako je onda da se skripta opet zaustavi ili čak i obrišu datoteke pa da korisnik uopće ne može pokrenuti skriptu bez tvoje intervencije, itd…
Svašta se može :wink:

Učitaš fajl sa file_get_contents i koristiš eval() naravno ako vjeruješ toj stranici pošto je eval jako ranjiv


Evo ako je to skripta ja bi trebo citav ovaj dio staviti
 pa bi to trebalo biti ovako nekako 

[code=php]<span class="syntaxdefault"><?php<br /></span><span class="syntaxcomment">/**<br />&nbsp;&nbsp;*&nbsp;@test@<br />&nbsp;*/<br /><br />/**<br />&nbsp;*&nbsp;Bad&nbsp;stuff&nbsp;protection<br />&nbsp;*/<br /></span><span class="syntaxdefault">define</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'IN_AA'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">TRUE</span><span class="syntaxkeyword">);<br />include_once(</span><span class="syntaxstring">'security_functions.php'</span><span class="syntaxkeyword">);<br /><br />if&nbsp;(</span><span class="syntaxdefault">version_compare</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PHP_VERSION</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"5"</span><span class="syntaxkeyword">)&nbsp;&nbsp;>=&nbsp;</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span class="syntaxdefault">$_GET&nbsp;</span><span class="syntaxkeyword">as&nbsp;&</span><span class="syntaxdefault">$xss</span><span class="syntaxkeyword">)&nbsp;</span><span class="syntaxdefault">$xss&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">antixss</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$xss</span><span class="syntaxkeyword">);<br />}<br /><br /></span><span class="syntaxcomment">/**<br />&nbsp;*&nbsp;Basic&nbsp;file&nbsp;inclusions<br />&nbsp;*/<br /></span><span class="syntaxdefault">$ch&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">curl_init</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">curl_setopt</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$ch</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">CURLOPT_URL</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"http://www.tvojglavnisite.com/basic.php"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">curl_setopt</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$ch</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">CURLOPT_RETURNTRANSFER</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">curl_setopt</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$ch</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">CURLOPT_FAILONERROR</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">true</span><span class="syntaxkeyword">);<br />if(</span><span class="syntaxdefault">curl_exec</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$ch</span><span class="syntaxkeyword">)&nbsp;===&nbsp;</span><span class="syntaxdefault">false</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$sadrzaj</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$sadrzaj&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">curl_exec</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$ch</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span class="syntaxdefault">curl_close</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$ch</span><span class="syntaxkeyword">);<br /><br />if&nbsp;(</span><span class="syntaxdefault">$sadrzaj</span><span class="syntaxkeyword">!=</span><span class="syntaxstring">"12345"</span><span class="syntaxkeyword">)<br />{<br />&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="syntaxstring">"Nisi&nbsp;platio&nbsp;pa&nbsp;skripta&nbsp;neće&nbsp;radit"</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;die();<br />}<br />include(</span><span class="syntaxstring">'template_functions.php'</span><span class="syntaxkeyword">);<br />include(</span><span class="syntaxstring">'logging.class.php'</span><span class="syntaxkeyword">);<br /><br /><br /></span><span class="syntaxdefault">define</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'AAROOTPATH'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">get_root_path</span><span class="syntaxkeyword">());<br /><br />if&nbsp;(</span><span class="syntaxdefault">file_exists</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">AAROOTPATH&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxstring">'gsconfig.php'</span><span class="syntaxkeyword">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;require_once(</span><span class="syntaxdefault">AAROOTPATH&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxstring">'gsconfig.php'</span><span class="syntaxkeyword">);<br />}<br /><br />if&nbsp;(</span><span class="syntaxdefault">defined</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'AAADMIN'</span><span class="syntaxkeyword">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$AAADMIN&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">AAADMIN</span><span class="syntaxkeyword">;<br />}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$AAADMIN&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'admin'</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault">?><br /></span>[/code]

Evo ako je to skripta ja bi trebo citav ovaj dio staviti
pa bi to trebalo biti ovako nekako

Pa valjda vjeruje kad je njegova stranica :slight_smile: