Diskuze: Zobrazení obsahu na jiné doméně
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 21 zpráv z 21.
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,
subdoména bývá z pravidla nějaký buď vedlejší adresář nebo
podadresář...
php soubor lze vložit funkcí include, require případně jejich *_once
variantou
mrkni se tu do tutoriálu,, třeba zde https://www.itnetwork.cz/…dani-stranek
Díky za odpověď, ale to není ten problém. Obsah se má zobrazit z
úplně jiné domény. Tady je iclude celkem k ničemu
Příklad:
formulář - contact.php
umístěn na https://subdomain.domain.cz/…/contact.php
stránka, kde se má zobrazit
http://anotherdomain.cz
To nebude fungovat. A to co se snažíš udělat nedává smysl. K čemu to má sloužit?
Prečo vôbec robíš takú silne neštandardnú vec? Môžeš napísať čo sa vlastne snažíš dosiahnuť? Možno k tomu existuje priamočiarejšia cesta.
Jak to chapu ja, tak tvuj kod dela to, ze v prvni casti vyrobi jakesi select
policko. A pod nej chces zobrazit asi dalsi kod. Ale curl ti stahne cizi
stranku. A prohlizec funguje tak, ze bud zobrazi prvni tag BODY a nebo tag BODY
prepise tim, co dostane pozdeji.
Jinymi slovy, kdyz si v prohlizeci das zobrazit zdrojovy kod stranky, tak tam by
mohl byt i ten tvuj select, jen proste neni videt.
Cili misto echo get_data($url); bys to mel ulozit do promenne. A pomoci reg.
vyrazu nebo jinak odstranit body tagy.
Napr, kurzovni listek nebo pocasi se stahuje csv soubor pomoci
file_get_content($url) a ty si ten textovy soubor uz pomoci php predelas na
peknou tabulku, doplnis vlajecky a pod.
Jde mi o to, že potřebuji zobrazit na více webech formulář, který se
časem bude i trochu měnit. A nechci abych každou úpravu musel kopírovat
třeba na 100 webů.
Věřím, že k tomu existuje i jiná cesta, ale já ji zatím nenašel.
Mozna by ti stacilo neco takoveho:
web1/gen_form.php
<?php echo vyrobMiFormular() ?>
web1/formular.php
<?php include 'gen_form.php' ?> nebo
<?php echo file_get_content('gen_form.php') ?>
web2/formular.php
<?php echo file_get_content('http://.../web1/gen_form.php'; ?>
Hlavni problem u takoveho formulare bude mozna adresa pro form action. Ale, pokud je mas vsechny stejne. Treba jen chces provozovat nekolik eshopu na ruznych domenach a chces tahat zakladni eshop z jedne a data drzet uzivateli na jeho domene.
Ale predpokladám, že každý ten formulár bude posielať mail na inú adresu, alebo zapisovať dáta do inej databázy. Je tak?
Víceméně jsem už vyřešil problém. Data se mi vypisují všechny tak
jak mají ale data z formuláře z nějakého důvodu nikoli.
V administraci mohu určit jaká položka bude povinná a jaká ne. To je
logicky napojeno na SQL. Jenže z nějakého důvodu mi to věčně říká, že
se nedaří připojit k tabulce i když je vše definované správně.
Příklad
$pole = Db::queryOne('SELECT * FROM polozky WHERE web=?', $_SERVER['SERVER_NAME'])
if(($pole['jmeno'] == 1) || ($pole['jmeno'] == 2))
{
include ('./polozky/jmeno.php')
}
else
{
echo '';
}
Mě se nenačte nic z $pole i přestože je doména na stejném serveru.
Zkusil jsem $pole napsat i na web, kde se má zobrazit formulář a nic.
Je samozřejmě i v souboru, který se má zobrazovat.
Bohužel toto mě nestačí. Z nějakého důvodu se stránka díky tomu
nedočte.
Co se týká form action, tak ta je přímo ve formuláři. Takže formulář je
v pohodě a data se taky budou odesílat bezproblému.
Ne. Data se budou zapisovat do jedné DB. Notifikační email se bude posílat i na jiné adresy ale to už si bude tahat z DB
Rozumím, ale řekl bych, že toto je špatný nápad. Ty weby budou
závislé na dostupnosti jiného webu.
Navíc si osobně dost dobře nedovedu představit, že 100 různých webů u
různých hosterů bude natolik obsahově stejných, že změna 'master'
formuláře proběhne u všech v pořádku.
Navíc, kdybych byl majitel takového webu, který si tahá z nějaké jiného
serveru kdoví jaký, pro mne neznámý php kód, tak bych takového vývojáře
co by mi chtěl prodat takový web poslal k šípku
Z mého pohledu je to docela bezpečnostní problém.
To už špekuluješ nad něčím co jsi si vydedukoval. A navíc vydedukoval špatně.
A proto se te ptame, co to ma presne delat?
Nase reseni ti nevyhovuje. Proc jsi nerekl. Co je na nem spatne?
Pokud se neco nedotahne, ze ta prvni aplikace asi spatne, co generuje formular.
Zkus ten muj priklad predelat na nejakou jednoduchou formu. Nahrej to na ty weby
a dej sem odkazy, na kterych muzeme videt, co ti to delat. Dej tam formular,
var_dump($_POST), mozna session. Co ja vim... Nemam ani zdani, co by mohlo byt
spatne.
Pokud je to cizi stranka, pokousis se neco vykradat a nemas prispu ke kodu nebo serveru, je celkem mozne, ze ma spustene ochrany. Ale pak by ti napsal spis error a nebo login nefungoval.
Kdyz se nalogujes na cizi stranku, tak ti login na cizi strance zustane. Pokud si ho nejakym zpusobem neposles zpet. Treba si tam pridas skryty input do formulare s adresou webu, na ktery ti ma poslat odpoved. Idealne nejaky druh hash, ktery jsi schopen na tom prvnim webu vyrobit. Rozhodne bych jako odpoved neposilal pavel, login=ok. To hacker snadno padela.
Chápem o čo ti ide. A môže ti to dokonca fungovať. Ale napriek tomu sa na to vykašli a čo doména, to vlastný form. To, čo chceš dosiahnuť, sa rieši zautomatizovaním deploymentu, nie zozdieľaním kódu. A už vôbec nie aj databázy.
Asi tak, nebo případně směrování více domén na jedno místo... kde pro každou doménu může být jiný vzhled, ale backend je stejný...
Díky za rady. Nicméně asi to budu muset nechat postaru. Každopádně
nejde o žádný hack. Všude mám přístup a domény jsou moje
file_get_content nefunguje. Je to formulář, který má v sobě položky pouze
pod podmínkou, že jsou povoleny v SQL.
Neměl jsem se do toho ani pouštět. Hodiny času v řiti
Ale zkusil jsem to. Každopádně díky.
'file_get_content nefunguje'
Auto se rozbilo. Z toho nikdo netusi, co tomu je, co selhava.
Zastavilo mi to načítání zbytku stránky.
Nevím teď už proč a nebudu se k tomu ani vracet. Ztráta času momentálně.
Snad někdy příště příjdu na lepší řešení. Ale i tak díky.
Zobrazeno 21 zpráv z 21.